{"version":3,"file":"bundle.main.350d5a98971a44e75c38.js","mappings":"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AM,IACNsxD,QAAS,kCACR,CACDtxD,KAAM,IACNsxD,QAAS,UACR,CACDtxD,KAAM,IACNsxD,QAAS,mBACR,CACDtxD,KAAM,IACNsxD,QAAS,kBACR,CACDtxD,KAAM,IACNsxD,QAAS,wBACR,CACDtxD,KAAM,IACNsxD,QAAS,SACR,CACDtxD,KAAM,IACNsxD,QAAS,kBACR,CACDtxD,KAAM,IACNsxD,QAAS,sBACR,CACDtxD,KAAM,KACNsxD,QAAS,KACR,CACDtxD,KAAM,KACNsxD,QAAS,KACR,CACDtxD,KAAM,IACNsxD,QAAS,YACR,CACDtxD,KAAM,IACNsxD,QAAS,oBACR,CACDtxD,KAAM,KACNsxD,QAAS,KACR,CACDtxD,KAAM,KACNsxD,QAAS,KACR,CACDtxD,KAAM,IACNsxD,QAAS,+CACR,CACDtxD,KAAM,KACNsxD,QAAS,KACR,CACDtxD,KAAM,KACNsxD,QAAS,KACR,CACDtxD,KAAM,KACNsxD,QAAS,KACR,CACDtxD,KAAM,IACNsxD,QAAS,cACR,CACDtxD,KAAM,IACNsxD,QAAS,UACR,CACDtxD,KAAM,IACNsxD,QAAS,qBACR,CACDtxD,KAAM,IACNsxD,QAAS,qBACR,CACDtxD,KAAM,IACNsxD,QAAS,mBACR,CACDtxD,KAAM,KACNsxD,QAAS,KACR,CACDtxD,KAAM,IACNsxD,QAAS,sCACR,CACDtxD,KAAM,IACNsxD,QAAS,YACR,CACDtxD,KAAM,KACNsxD,QAAS,KACR,CACDtxD,KAAM,IACNsxD,QAAS,cACR,CACDtxD,KAAM,IACNsxD,QAAS,SACR,CACDtxD,KAAM,IACNsxD,QAAS,mBACR,CACDtxD,KAAM,IACNsxD,QAAS,kBACR,CACDtxD,KAAM,IACNsxD,QAAS,uCACR,CACDtxD,KAAM,KACNsxD,QAAS,KACR,CACDtxD,KAAM,KACNsxD,QAAS,OACR,CACDtxD,KAAM,KACNsxD,QAAS,KACR,CACDtxD,KAAM,KACNsxD,QAAS,KACR,CACDtxD,KAAM,KACNsxD,QAAS,MACR,CACDtxD,KAAM,KACNsxD,QAAS,KACR,CACDtxD,KAAM,IACN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","sources":["webpack://tobira/webpack/runtime/create fake namespace object","webpack://tobira/webpack/runtime/load script","webpack://tobira/./node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","webpack://tobira/./node_modules/stylis/src/Utility.js","webpack://tobira/./node_modules/stylis/src/Tokenizer.js","webpack://tobira/./node_modules/stylis/src/Enum.js","webpack://tobira/./node_modules/stylis/src/Serializer.js","webpack://tobira/./node_modules/stylis/src/Parser.js","webpack://tobira/./node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","webpack://tobira/./node_modules/stylis/src/Middleware.js","webpack://tobira/./node_modules/@emotion/react/dist/emotion-element-b4c8b265.esm.js","webpack://tobira/./node_modules/@emotion/react/dist/emotion-react.esm.js","webpack://tobira/./node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.esm.js","webpack://tobira/./node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","webpack://tobira/./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack://tobira/./node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","webpack://tobira/./node_modules/@emotion/hash/dist/emotion-hash.esm.js","webpack://tobira/./node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","webpack://tobira/./node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","webpack://tobira/../src/button.tsx","webpack://tobira/../src/card.tsx","webpack://tobira/../src/err.tsx","webpack://tobira/../src/colorScheme.tsx","webpack://tobira/../src/config.tsx","webpack://tobira/../src/util.tsx","webpack://tobira/../src/confirmationModal.tsx","webpack://tobira/../src/errorBox.tsx","webpack://tobira/./node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","webpack://tobira/./node_modules/@floating-ui/react/dist/floating-ui.react.esm.js","webpack://tobira/../src/floating.tsx","webpack://tobira/./node_modules/react-merge-refs/dist/index.mjs","webpack://tobira/./node_modules/react-icons/fi/index.esm.js","webpack://tobira/../src/header.tsx","webpack://tobira/../src/spinner.tsx","webpack://tobira/../src/modal.tsx","webpack://tobira/../src/index.tsx","webpack://tobira/./node_modules/extend/index.js","webpack://tobira/./node_modules/fbjs/lib/areEqual.js","webpack://tobira/./node_modules/fbjs/lib/emptyFunction.js","webpack://tobira/./node_modules/fbjs/lib/warning.js","webpack://tobira/./node_modules/focus-trap-react/dist/focus-trap-react.js","webpack://tobira/../index.js","webpack://tobira/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://tobira/./node_modules/inline-style-parser/index.js","webpack://tobira/./node_modules/invariant/browser.js","webpack://tobira/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://tobira/./node_modules/prop-types/index.js","webpack://tobira/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://tobira/./node_modules/react-dom/cjs/react-dom.production.min.js","webpack://tobira/./node_modules/react-dom/client.js","webpack://tobira/./node_modules/react-dom/index.js","webpack://tobira/./node_modules/react-icons/hi/index.esm.js","webpack://tobira/./node_modules/react-icons/lib/esm/iconsManifest.js","webpack://tobira/./node_modules/react-icons/lib/esm/iconContext.js","webpack://tobira/./node_modules/react-icons/lib/esm/iconBase.js","webpack://tobira/./node_modules/react-icons/lu/index.esm.js","webpack://tobira/./node_modules/react-is/cjs/react-is.production.min.js","webpack://tobira/./node_modules/react-is/index.js","webpack://tobira/./node_modules/react-relay/hooks.js","webpack://tobira/./node_modules/react-relay/index.js","webpack://tobira/./node_modules/react-relay/lib/ReactRelayContainerUtils.js","webpack://tobira/./node_modules/react-relay/lib/ReactRelayContext.js","webpack://tobira/./node_modules/react-relay/lib/ReactRelayFragmentContainer.js","webpack://tobira/./node_modules/react-relay/lib/ReactRelayLocalQueryRenderer.js","webpack://tobira/./node_modules/react-relay/lib/ReactRelayPaginationContainer.js","webpack://tobira/./node_modules/react-relay/lib/ReactRelayQueryFetcher.js","webpack://tobira/./node_modules/react-relay/lib/ReactRelayQueryRenderer.js","webpack://tobira/./node_modules/react-relay/lib/ReactRelayQueryRendererContext.js","webpack://tobira/./node_modules/react-relay/lib/ReactRelayRefetchContainer.js","webpack://tobira/./node_modules/react-relay/lib/RelayContext.js","webpack://tobira/./node_modules/react-relay/lib/assertFragmentMap.js","webpack://tobira/./node_modules/react-relay/lib/buildReactRelayContainer.js","webpack://tobira/./node_modules/react-relay/lib/getRootVariablesForFragments.js","webpack://tobira/./node_modules/react-relay/lib/hooks.js","webpack://tobira/./node_modules/react-relay/lib/index.js","webpack://tobira/./node_modules/react-relay/lib/isRelayEnvironment.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/EntryPointContainer.react.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/HooksImplementation.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/LRUCache.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/ProfilerContext.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/QueryResource.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/RelayEnvironmentProvider.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/SuspenseResource.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/legacy/FragmentResource.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/legacy/useFragmentNode.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/legacy/useRefetchableFragmentNode.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/loadEntryPoint.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/loadQuery.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/useClientQuery.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/useEntryPointLoader.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/useFetchTrackingRef.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/useFragment.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/useIsMountedRef.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/useIsOperationNodeActive.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/useLazyLoadQuery.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/useLazyLoadQueryNode.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/useLoadMoreFunction.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/useMemoOperationDescriptor.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/useMemoVariables.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/useMutation.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/usePaginationFragment.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/usePreloadedQuery.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/useQueryLoader.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/useRefetchableFragment.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/useRelayEnvironment.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/useStaticFragmentNodeWarning.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/useSubscribeToInvalidationState.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/useSubscription.js","webpack://tobira/./node_modules/react-relay/lib/relay-hooks/useUnsafeRef_DEPRECATED.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://tobira/./node_modules/memoize-one/dist/memoize-one.esm.js","webpack://tobira/./node_modules/react-select/dist/Select-c7902d94.esm.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://tobira/./node_modules/react-select/dist/index-a301f526.esm.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","webpack://tobira/./node_modules/react-select/dist/useAsync-ba7c6b77.esm.js","webpack://tobira/./node_modules/react-select/dist/useStateManager-7e1e8489.esm.js","webpack://tobira/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://tobira/./node_modules/react/cjs/react.production.min.js","webpack://tobira/./node_modules/react/index.js","webpack://tobira/./node_modules/react/jsx-runtime.js","webpack://tobira/./node_modules/relay-runtime/index.js","webpack://tobira/./node_modules/relay-runtime/lib/handlers/RelayDefaultHandlerProvider.js","webpack://tobira/./node_modules/relay-runtime/lib/handlers/connection/ConnectionHandler.js","webpack://tobira/./node_modules/relay-runtime/lib/handlers/connection/ConnectionInterface.js","webpack://tobira/./node_modules/relay-runtime/lib/handlers/connection/MutationHandlers.js","webpack://tobira/./node_modules/relay-runtime/lib/index.js","webpack://tobira/./node_modules/relay-runtime/lib/multi-actor-environment/ActorIdentifier.js","webpack://tobira/./node_modules/relay-runtime/lib/multi-actor-environment/ActorUtils.js","webpack://tobira/./node_modules/relay-runtime/lib/mutations/RelayDeclarativeMutationConfig.js","webpack://tobira/./node_modules/relay-runtime/lib/mutations/RelayRecordProxy.js","webpack://tobira/./node_modules/relay-runtime/lib/mutations/RelayRecordSourceMutator.js","webpack://tobira/./node_modules/relay-runtime/lib/mutations/RelayRecordSourceProxy.js","webpack://tobira/./node_modules/relay-runtime/lib/mutations/RelayRecordSourceSelectorProxy.js","webpack://tobira/./node_modules/relay-runtime/lib/mutations/applyOptimisticMutation.js","webpack://tobira/./node_modules/relay-runtime/lib/mutations/commitLocalUpdate.js","webpack://tobira/./node_modules/relay-runtime/lib/mutations/commitMutation.js","webpack://tobira/./node_modules/relay-runtime/lib/mutations/createUpdatableProxy.js","webpack://tobira/./node_modules/relay-runtime/lib/mutations/readUpdatableFragment.js","webpack://tobira/./node_modules/relay-runtime/lib/mutations/readUpdatableQuery.js","webpack://tobira/./node_modules/relay-runtime/lib/mutations/validateMutation.js","webpack://tobira/./node_modules/relay-runtime/lib/network/ConvertToExecuteFunction.js","webpack://tobira/./node_modules/relay-runtime/lib/network/RelayNetwork.js","webpack://tobira/./node_modules/relay-runtime/lib/network/RelayObservable.js","webpack://tobira/./node_modules/relay-runtime/lib/network/RelayQueryResponseCache.js","webpack://tobira/./node_modules/relay-runtime/lib/network/wrapNetworkWithLogObserver.js","webpack://tobira/./node_modules/relay-runtime/lib/query/GraphQLTag.js","webpack://tobira/./node_modules/relay-runtime/lib/query/PreloadableQueryRegistry.js","webpack://tobira/./node_modules/relay-runtime/lib/query/fetchQuery.js","webpack://tobira/./node_modules/relay-runtime/lib/query/fetchQueryInternal.js","webpack://tobira/./node_modules/relay-runtime/lib/query/fetchQuery_DEPRECATED.js","webpack://tobira/./node_modules/relay-runtime/lib/store/ClientID.js","webpack://tobira/./node_modules/relay-runtime/lib/store/DataChecker.js","webpack://tobira/./node_modules/relay-runtime/lib/store/OperationExecutor.js","webpack://tobira/./node_modules/relay-runtime/lib/store/RelayConcreteVariables.js","webpack://tobira/./node_modules/relay-runtime/lib/store/RelayErrorTrie.js","webpack://tobira/./node_modules/relay-runtime/lib/store/RelayModernEnvironment.js","webpack://tobira/./node_modules/relay-runtime/lib/store/RelayModernFragmentSpecResolver.js","webpack://tobira/./node_modules/relay-runtime/lib/store/RelayModernOperationDescriptor.js","webpack://tobira/./node_modules/relay-runtime/lib/store/RelayModernRecord.js","webpack://tobira/./node_modules/relay-runtime/lib/store/RelayModernSelector.js","webpack://tobira/./node_modules/relay-runtime/lib/store/RelayModernStore.js","webpack://tobira/./node_modules/relay-runtime/lib/store/RelayOperationTracker.js","webpack://tobira/./node_modules/relay-runtime/lib/store/RelayOptimisticRecordSource.js","webpack://tobira/./node_modules/relay-runtime/lib/store/RelayPublishQueue.js","webpack://tobira/./node_modules/relay-runtime/lib/store/RelayReader.js","webpack://tobira/./node_modules/relay-runtime/lib/store/RelayRecordSource.js","webpack://tobira/./node_modules/relay-runtime/lib/store/RelayRecordState.js","webpack://tobira/./node_modules/relay-runtime/lib/store/RelayReferenceMarker.js","webpack://tobira/./node_modules/relay-runtime/lib/store/RelayResponseNormalizer.js","webpack://tobira/./node_modules/relay-runtime/lib/store/RelayStoreSubscriptions.js","webpack://tobira/./node_modules/relay-runtime/lib/store/RelayStoreUtils.js","webpack://tobira/./node_modules/relay-runtime/lib/store/ResolverCache.js","webpack://tobira/./node_modules/relay-runtime/lib/store/ResolverFragments.js","webpack://tobira/./node_modules/relay-runtime/lib/store/TypeID.js","webpack://tobira/./node_modules/relay-runtime/lib/store/ViewerPattern.js","webpack://tobira/./node_modules/relay-runtime/lib/store/cloneRelayHandleSourceField.js","webpack://tobira/./node_modules/relay-runtime/lib/store/cloneRelayScalarHandleSourceField.js","webpack://tobira/./node_modules/relay-runtime/lib/store/createFragmentSpecResolver.js","webpack://tobira/./node_modules/relay-runtime/lib/store/createRelayContext.js","webpack://tobira/./node_modules/relay-runtime/lib/store/defaultGetDataID.js","webpack://tobira/./node_modules/relay-runtime/lib/store/defaultRelayFieldLogger.js","webpack://tobira/./node_modules/relay-runtime/lib/store/experimental-live-resolvers/LiveResolverSuspenseSentinel.js","webpack://tobira/./node_modules/relay-runtime/lib/store/experimental-live-resolvers/getOutputTypeRecordIDs.js","webpack://tobira/./node_modules/relay-runtime/lib/store/hasOverlappingIDs.js","webpack://tobira/./node_modules/relay-runtime/lib/store/hasSignificantOverlappingIDs.js","webpack://tobira/./node_modules/relay-runtime/lib/store/isRelayModernEnvironment.js","webpack://tobira/./node_modules/relay-runtime/lib/store/normalizeResponse.js","webpack://tobira/./node_modules/relay-runtime/lib/store/readInlineData.js","webpack://tobira/./node_modules/relay-runtime/lib/subscription/requestSubscription.js","webpack://tobira/./node_modules/relay-runtime/lib/util/RelayConcreteNode.js","webpack://tobira/./node_modules/relay-runtime/lib/util/RelayDefaultHandleKey.js","webpack://tobira/./node_modules/relay-runtime/lib/util/RelayError.js","webpack://tobira/./node_modules/relay-runtime/lib/util/RelayFeatureFlags.js","webpack://tobira/./node_modules/relay-runtime/lib/util/RelayProfiler.js","webpack://tobira/./node_modules/relay-runtime/lib/util/RelayReplaySubject.js","webpack://tobira/./node_modules/relay-runtime/lib/util/StringInterner.js","webpack://tobira/./node_modules/relay-runtime/lib/util/createPayloadFor3DField.js","webpack://tobira/./node_modules/relay-runtime/lib/util/deepFreeze.js","webpack://tobira/./node_modules/relay-runtime/lib/util/generateID.js","webpack://tobira/./node_modules/relay-runtime/lib/util/getFragmentIdentifier.js","webpack://tobira/./node_modules/relay-runtime/lib/util/getOperation.js","webpack://tobira/./node_modules/relay-runtime/lib/util/getPaginationMetadata.js","webpack://tobira/./node_modules/relay-runtime/lib/util/getPaginationVariables.js","webpack://tobira/./node_modules/relay-runtime/lib/util/getPendingOperationsForFragment.js","webpack://tobira/./node_modules/relay-runtime/lib/util/getRefetchMetadata.js","webpack://tobira/./node_modules/relay-runtime/lib/util/getRelayHandleKey.js","webpack://tobira/./node_modules/relay-runtime/lib/util/getRequestIdentifier.js","webpack://tobira/./node_modules/relay-runtime/lib/util/getValueAtPath.js","webpack://tobira/./node_modules/relay-runtime/lib/util/handlePotentialSnapshotErrors.js","webpack://tobira/./node_modules/relay-runtime/lib/util/isEmptyObject.js","webpack://tobira/./node_modules/relay-runtime/lib/util/isPromise.js","webpack://tobira/./node_modules/relay-runtime/lib/util/isScalarAndEqual.js","webpack://tobira/./node_modules/relay-runtime/lib/util/recycleNodesInto.js","webpack://tobira/./node_modules/relay-runtime/lib/util/registerEnvironmentWithDevTools.js","webpack://tobira/./node_modules/relay-runtime/lib/util/resolveImmediate.js","webpack://tobira/./node_modules/relay-runtime/lib/util/shallowFreeze.js","webpack://tobira/./node_modules/relay-runtime/lib/util/stableCopy.js","webpack://tobira/./node_modules/relay-runtime/lib/util/withDuration.js","webpack://tobira/./node_modules/relay-runtime/lib/util/withProvidedVariables.js","webpack://tobira/./node_modules/scheduler/cjs/scheduler.production.min.js","webpack://tobira/./node_modules/scheduler/index.js","webpack://tobira/../src/index.ts","webpack://tobira/../src/index.js","webpack://tobira/./node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js","webpack://tobira/./node_modules/void-elements/index.js","webpack://tobira/./src/GlobalStyle.tsx","webpack://tobira/./src/User.tsx","webpack://tobira/./src/__generated__/UserData.graphql.ts","webpack://tobira/./src/color.tsx","webpack://tobira/./src/config.ts","webpack://tobira/./node_modules/i18next/dist/esm/i18next.js","webpack://tobira/./node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","webpack://tobira/./src/i18n/index.ts","webpack://tobira/./src/i18n/locales/en.yaml","webpack://tobira/./src/i18n/locales/de.yaml","webpack://tobira/./src/layout/Footer.tsx","webpack://tobira/./src/layout/MenuState.tsx","webpack://tobira/./src/layout/Navigation.tsx","webpack://tobira/./src/layout/Burger.tsx","webpack://tobira/./src/layout/Root.tsx","webpack://tobira/./src/layout/__generated__/NavigationData.graphql.ts","webpack://tobira/./src/layout/header/Search.tsx","webpack://tobira/./src/layout/header/Logo.tsx","webpack://tobira/./src/layout/header/UserBox.tsx","webpack://tobira/./src/layout/header/index.tsx","webpack://tobira/./src/layout/header/ui.tsx","webpack://tobira/./src/layout/index.tsx","webpack://tobira/./src/rauta.tsx","webpack://tobira/./src/relay/__generated__/authJwtQuery.graphql.ts","webpack://tobira/./src/relay/auth.tsx","webpack://tobira/./src/relay/errors.ts","webpack://tobira/./src/relay/index.ts","webpack://tobira/./src/routes/manage/Realm/ChildOrder.tsx","webpack://tobira/./src/routes/manage/Realm/General.tsx","webpack://tobira/./src/ui/PathSegmentInput.tsx","webpack://tobira/./src/routes/manage/Realm/DangerZone.tsx","webpack://tobira/./src/routes/manage/Realm/Content/AddButtons.tsx","webpack://tobira/./src/routes/manage/Realm/Content/util.tsx","webpack://tobira/./src/routes/manage/Realm/Content/Edit/RemoveButton.tsx","webpack://tobira/./src/routes/manage/Realm/Content/Edit/MoveButtons.tsx","webpack://tobira/./src/routes/manage/Realm/Content/Edit/index.tsx","webpack://tobira/./src/routes/manage/Realm/Content/Edit/EditMode/Title.tsx","webpack://tobira/./src/routes/manage/Realm/Content/Edit/EditMode/Text.tsx","webpack://tobira/./src/routes/manage/Realm/Content/Edit/EditMode/util.tsx","webpack://tobira/./src/routes/manage/Realm/Content/Edit/EditMode/Series.tsx","webpack://tobira/./src/routes/manage/Realm/Content/Edit/EditMode/Video.tsx","webpack://tobira/./src/routes/manage/Realm/Content/Edit/EditMode/Playlist.tsx","webpack://tobira/./src/routes/manage/Realm/Content/Edit/EditMode/index.tsx","webpack://tobira/./src/routes/manage/Realm/Content/Block.tsx","webpack://tobira/./src/routes/manage/Realm/Content/index.tsx","webpack://tobira/./src/routes/manage/Realm/AddChild.tsx","webpack://tobira/./src/routes/manage/Realm/RealmPermissions.tsx","webpack://tobira/./src/routes/manage/Realm/index.tsx","webpack://tobira/./src/routes/InvalidUrl.tsx","webpack://tobira/./src/routes/manage/Video/Access.tsx","webpack://tobira/./src/routes/Playlist.tsx","webpack://tobira/./src/router.tsx","webpack://tobira/./src/routes/About.tsx","webpack://tobira/./src/routes/Embed.tsx","webpack://tobira/./src/routes/Login.tsx","webpack://tobira/./src/routes/NotFound.tsx","webpack://tobira/./src/routes/Realm.tsx","webpack://tobira/../../../../../shared/src/utils.ts","webpack://tobira/../../src/defaultAttributes.ts","webpack://tobira/../../src/Icon.ts","webpack://tobira/../../../src/icons/letter-text.ts","webpack://tobira/../../src/createLucideIcon.ts","webpack://tobira/./src/routes/Search.tsx","webpack://tobira/./src/routes/Series.tsx","webpack://tobira/./src/routes/Upload.tsx","webpack://tobira/./node_modules/qrcode.react/lib/esm/index.js","webpack://tobira/./src/routes/Video.tsx","webpack://tobira/./src/routes/__generated__/AboutQuery.graphql.ts","webpack://tobira/./src/routes/__generated__/EmbedDirectOpencastQuery.graphql.ts","webpack://tobira/./src/routes/__generated__/EmbedEventData.graphql.ts","webpack://tobira/./src/routes/__generated__/EmbedQuery.graphql.ts","webpack://tobira/./src/routes/__generated__/InvalidUrlQuery.graphql.ts","webpack://tobira/./src/routes/__generated__/LoginQuery.graphql.ts","webpack://tobira/./src/routes/__generated__/NotFoundQuery.graphql.ts","webpack://tobira/./src/routes/__generated__/PlaylistByIdQuery.graphql.ts","webpack://tobira/./src/routes/__generated__/PlaylistByOpencastIdQuery.graphql.ts","webpack://tobira/./src/routes/__generated__/PlaylistRouteData.graphql.ts","webpack://tobira/./src/routes/__generated__/RealmCreateForUserMutation.graphql.ts","webpack://tobira/./src/routes/__generated__/RealmQuery.graphql.ts","webpack://tobira/./src/routes/__generated__/SearchQuery.graphql.ts","webpack://tobira/./src/routes/__generated__/SearchSlidePreviewQuery.graphql.ts","webpack://tobira/./src/routes/__generated__/SeriesByIdQuery.graphql.ts","webpack://tobira/./src/routes/__generated__/SeriesByOpencastIdQuery.graphql.ts","webpack://tobira/./src/routes/__generated__/SeriesRouteData.graphql.ts","webpack://tobira/./src/routes/__generated__/UploadQuery.graphql.ts","webpack://tobira/./src/routes/__generated__/VideoPageByOcIdInRealmQuery.graphql.ts","webpack://tobira/./src/routes/__generated__/VideoPageDirectLinkQuery.graphql.ts","webpack://tobira/./src/routes/__generated__/VideoPageDirectOpencastLinkQuery.graphql.ts","webpack://tobira/./src/routes/__generated__/VideoPageEventData.graphql.ts","webpack://tobira/./src/routes/__generated__/VideoPageInRealmQuery.graphql.ts","webpack://tobira/./src/routes/__generated__/VideoPageRealmData.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/Edit/EditMode/__generated__/EditModeFormRealmData.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/Edit/EditMode/__generated__/EditModeRealmData.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/Edit/EditMode/__generated__/PlaylistEditCreateMutation.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/Edit/EditMode/__generated__/PlaylistEditModeBlockData.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/Edit/EditMode/__generated__/PlaylistEditSaveMutation.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/Edit/EditMode/__generated__/SeriesEditCreateMutation.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/Edit/EditMode/__generated__/SeriesEditModeBlockData.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/Edit/EditMode/__generated__/SeriesEditSaveMutation.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/Edit/EditMode/__generated__/TextEditCreateMutation.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/Edit/EditMode/__generated__/TextEditModeBlockData.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/Edit/EditMode/__generated__/TextEditSaveMutation.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/Edit/EditMode/__generated__/TitleEditCreateMutation.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/Edit/EditMode/__generated__/TitleEditModeBlockData.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/Edit/EditMode/__generated__/TitleEditSaveMutation.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/Edit/EditMode/__generated__/VideoEditCreateMutation.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/Edit/EditMode/__generated__/VideoEditModeBlockData.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/Edit/EditMode/__generated__/VideoEditModeSearchQuery.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/Edit/EditMode/__generated__/VideoEditSaveMutation.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/Edit/__generated__/EditBlockUpdateRealmNameData.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/Edit/__generated__/EditButtonsRealmData.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/Edit/__generated__/MoveButtonsData.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/Edit/__generated__/MoveButtonsMutation.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/Edit/__generated__/RemoveButtonData.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/Edit/__generated__/RemoveButtonMutation.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/__generated__/AddButtonsRealmData.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/__generated__/BlockRealmData.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/__generated__/ContentManageQuery.graphql.ts","webpack://tobira/./src/routes/manage/Realm/Content/__generated__/ContentManageRealmData.graphql.ts","webpack://tobira/./src/routes/manage/Realm/__generated__/AddChildMutation.graphql.ts","webpack://tobira/./src/routes/manage/Realm/__generated__/AddChildQuery.graphql.ts","webpack://tobira/./src/routes/manage/Realm/__generated__/ChildOrderEditData.graphql.ts","webpack://tobira/./src/routes/manage/Realm/__generated__/ChildOrderMutation.graphql.ts","webpack://tobira/./src/routes/manage/Realm/__generated__/DangerZoneChangePathMutation.graphql.ts","webpack://tobira/./src/routes/manage/Realm/__generated__/DangerZoneRealmData.graphql.ts","webpack://tobira/./src/routes/manage/Realm/__generated__/DangerZoneRemoveRealmMutation.graphql.ts","webpack://tobira/./src/routes/manage/Realm/__generated__/GeneralRealmData.graphql.ts","webpack://tobira/./src/routes/manage/Realm/__generated__/GeneralRealmRenameMutation.graphql.ts","webpack://tobira/./src/routes/manage/Realm/__generated__/RealmManageQuery.graphql.ts","webpack://tobira/./src/routes/manage/Realm/__generated__/RealmPermissionsData.graphql.ts","webpack://tobira/./src/routes/manage/Realm/__generated__/RealmPermissionsMutation.graphql.ts","webpack://tobira/./src/routes/manage/Realm/util.tsx","webpack://tobira/./src/routes/manage/Video/Details.tsx","webpack://tobira/./src/routes/manage/Video/Shared.tsx","webpack://tobira/./src/routes/manage/Video/TechnicalDetails.tsx","webpack://tobira/./src/routes/manage/Video/__generated__/DetailsDeleteVideoMutation.graphql.ts","webpack://tobira/./src/routes/manage/Video/__generated__/SharedVideoManageQuery.graphql.ts","webpack://tobira/./src/routes/manage/Video/__generated__/VideoManageQuery.graphql.ts","webpack://tobira/./src/icons/first-page.svg","webpack://tobira/./src/icons/last-page.svg","webpack://tobira/./src/routes/manage/Video/index.tsx","webpack://tobira/./src/routes/manage/__generated__/manageDashboardQuery.graphql.ts","webpack://tobira/./src/routes/manage/index.tsx","webpack://tobira/./src/routes/util.tsx","webpack://tobira/../src/useBeforeunload.js","webpack://tobira/./node_modules/react-select/dist/useCreatable-bf6ebe1f.esm.js","webpack://tobira/./node_modules/react-select/creatable/dist/react-select-creatable.esm.js","webpack://tobira/./node_modules/react-select/async-creatable/dist/react-select-async-creatable.esm.js","webpack://tobira/./src/ui/Access.tsx","webpack://tobira/./src/ui/Blocks/Playlist.tsx","webpack://tobira/./src/ui/Blocks/Series.tsx","webpack://tobira/./node_modules/estree-util-is-identifier-name/lib/index.js","webpack://tobira/./node_modules/hast-util-whitespace/lib/index.js","webpack://tobira/./node_modules/property-information/lib/util/schema.js","webpack://tobira/./node_modules/property-information/lib/util/merge.js","webpack://tobira/./node_modules/property-information/lib/normalize.js","webpack://tobira/./node_modules/property-information/lib/util/info.js","webpack://tobira/./node_modules/property-information/lib/util/types.js","webpack://tobira/./node_modules/property-information/lib/util/defined-info.js","webpack://tobira/./node_modules/property-information/lib/util/create.js","webpack://tobira/./node_modules/property-information/lib/xlink.js","webpack://tobira/./node_modules/property-information/lib/xml.js","webpack://tobira/./node_modules/property-information/lib/util/case-sensitive-transform.js","webpack://tobira/./node_modules/property-information/lib/util/case-insensitive-transform.js","webpack://tobira/./node_modules/property-information/lib/xmlns.js","webpack://tobira/./node_modules/property-information/lib/aria.js","webpack://tobira/./node_modules/property-information/lib/html.js","webpack://tobira/./node_modules/property-information/lib/svg.js","webpack://tobira/./node_modules/property-information/index.js","webpack://tobira/./node_modules/property-information/lib/find.js","webpack://tobira/./node_modules/property-information/lib/hast-to-react.js","webpack://tobira/./node_modules/style-to-object/esm/index.mjs","webpack://tobira/./node_modules/unist-util-position/lib/index.js","webpack://tobira/./node_modules/unist-util-stringify-position/lib/index.js","webpack://tobira/./node_modules/vfile-message/lib/index.js","webpack://tobira/./node_modules/hast-util-to-jsx-runtime/lib/index.js","webpack://tobira/./node_modules/comma-separated-tokens/index.js","webpack://tobira/./node_modules/space-separated-tokens/index.js","webpack://tobira/./node_modules/html-url-attributes/lib/index.js","webpack://tobira/./node_modules/mdast-util-to-string/lib/index.js","webpack://tobira/./node_modules/micromark-util-chunked/index.js","webpack://tobira/./node_modules/micromark-util-subtokenize/lib/splice-buffer.js","webpack://tobira/./node_modules/micromark-util-subtokenize/index.js","webpack://tobira/./node_modules/micromark-util-combine-extensions/index.js","webpack://tobira/./node_modules/micromark-util-character/index.js","webpack://tobira/./node_modules/micromark-factory-space/index.js","webpack://tobira/./node_modules/micromark/lib/initialize/content.js","webpack://tobira/./node_modules/micromark/lib/initialize/document.js","webpack://tobira/./node_modules/micromark-core-commonmark/lib/blank-line.js","webpack://tobira/./node_modules/micromark-core-commonmark/lib/content.js","webpack://tobira/./node_modules/micromark/lib/initialize/flow.js","webpack://tobira/./node_modules/micromark/lib/initialize/text.js","webpack://tobira/./node_modules/micromark-util-resolve-all/index.js","webpack://tobira/./node_modules/micromark/lib/create-tokenizer.js","webpack://tobira/./node_modules/micromark-core-commonmark/lib/thematic-break.js","webpack://tobira/./node_modules/micromark-core-commonmark/lib/list.js","webpack://tobira/./node_modules/micromark-core-commonmark/lib/block-quote.js","webpack://tobira/./node_modules/micromark-factory-destination/index.js","webpack://tobira/./node_modules/micromark-factory-label/index.js","webpack://tobira/./node_modules/micromark-factory-title/index.js","webpack://tobira/./node_modules/micromark-factory-whitespace/index.js","webpack://tobira/./node_modules/micromark-util-normalize-identifier/index.js","webpack://tobira/./node_modules/micromark-core-commonmark/lib/definition.js","webpack://tobira/./node_modules/micromark-core-commonmark/lib/code-indented.js","webpack://tobira/./node_modules/micromark-core-commonmark/lib/heading-atx.js","webpack://tobira/./node_modules/micromark-core-commonmark/lib/setext-underline.js","webpack://tobira/./node_modules/micromark-util-html-tag-name/index.js","webpack://tobira/./node_modules/micromark-core-commonmark/lib/html-flow.js","webpack://tobira/./node_modules/micromark-core-commonmark/lib/code-fenced.js","webpack://tobira/./node_modules/decode-named-character-reference/index.dom.js","webpack://tobira/./node_modules/micromark-core-commonmark/lib/character-reference.js","webpack://tobira/./node_modules/micromark-core-commonmark/lib/character-escape.js","webpack://tobira/./node_modules/micromark-core-commonmark/lib/line-ending.js","webpack://tobira/./node_modules/micromark-core-commonmark/lib/label-end.js","webpack://tobira/./node_modules/micromark-core-commonmark/lib/label-start-image.js","webpack://tobira/./node_modules/micromark-util-classify-character/index.js","webpack://tobira/./node_modules/micromark-core-commonmark/lib/attention.js","webpack://tobira/./node_modules/micromark-core-commonmark/lib/autolink.js","webpack://tobira/./node_modules/micromark-core-commonmark/lib/html-text.js","webpack://tobira/./node_modules/micromark-core-commonmark/lib/label-start-link.js","webpack://tobira/./node_modules/micromark-core-commonmark/lib/hard-break-escape.js","webpack://tobira/./node_modules/micromark-core-commonmark/lib/code-text.js","webpack://tobira/./node_modules/micromark/lib/constructs.js","webpack://tobira/./node_modules/micromark/lib/preprocess.js","webpack://tobira/./node_modules/micromark-util-decode-numeric-character-reference/index.js","webpack://tobira/./node_modules/micromark-util-decode-string/index.js","webpack://tobira/./node_modules/mdast-util-from-markdown/lib/index.js","webpack://tobira/./node_modules/micromark/lib/postprocess.js","webpack://tobira/./node_modules/micromark/lib/parse.js","webpack://tobira/./node_modules/remark-parse/lib/index.js","webpack://tobira/./node_modules/@ungap/structured-clone/esm/types.js","webpack://tobira/./node_modules/@ungap/structured-clone/esm/deserialize.js","webpack://tobira/./node_modules/@ungap/structured-clone/esm/serialize.js","webpack://tobira/./node_modules/@ungap/structured-clone/esm/index.js","webpack://tobira/./node_modules/micromark-util-sanitize-uri/index.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/footer.js","webpack://tobira/./node_modules/unist-util-is/lib/index.js","webpack://tobira/./node_modules/unist-util-visit-parents/lib/index.js","webpack://tobira/./node_modules/unist-util-visit/lib/index.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/revert.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/handlers/list-item.js","webpack://tobira/./node_modules/trim-lines/index.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/handlers/index.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/handlers/break.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/handlers/code.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/handlers/delete.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/handlers/heading.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/handlers/html.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/handlers/image.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/handlers/link.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/handlers/list.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/handlers/root.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/handlers/strong.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/handlers/table.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/handlers/table-row.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/handlers/text.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/state.js","webpack://tobira/./node_modules/mdast-util-to-hast/lib/index.js","webpack://tobira/./node_modules/remark-rehype/lib/index.js","webpack://tobira/./node_modules/bail/index.js","webpack://tobira/./node_modules/is-plain-obj/index.js","webpack://tobira/./node_modules/vfile/lib/minpath.browser.js","webpack://tobira/./node_modules/vfile/lib/minproc.browser.js","webpack://tobira/./node_modules/vfile/lib/minurl.shared.js","webpack://tobira/./node_modules/vfile/lib/index.js","webpack://tobira/./node_modules/vfile/lib/minurl.browser.js","webpack://tobira/./node_modules/unified/lib/callable-instance.js","webpack://tobira/./node_modules/unified/lib/index.js","webpack://tobira/./node_modules/trough/lib/index.js","webpack://tobira/./node_modules/react-markdown/lib/index.js","webpack://tobira/./src/ui/Blocks/Text.tsx","webpack://tobira/./src/ui/Blocks/VideoList.tsx","webpack://tobira/./src/ui/Blocks/__generated__/BlocksBlockData.graphql.ts","webpack://tobira/./src/ui/Blocks/__generated__/BlocksData.graphql.ts","webpack://tobira/./src/ui/Blocks/__generated__/BlocksRealmData.graphql.ts","webpack://tobira/./src/ui/Blocks/__generated__/PlaylistBlockData.graphql.ts","webpack://tobira/./src/ui/Blocks/__generated__/PlaylistBlockPlaylistData.graphql.ts","webpack://tobira/./src/ui/Blocks/__generated__/SeriesBlockData.graphql.ts","webpack://tobira/./src/ui/Blocks/__generated__/SeriesBlockSeriesData.graphql.ts","webpack://tobira/./src/ui/Blocks/__generated__/TextBlockData.graphql.ts","webpack://tobira/./src/ui/Blocks/__generated__/TitleBlockData.graphql.ts","webpack://tobira/./src/ui/Blocks/__generated__/VideoBlockData.graphql.ts","webpack://tobira/./src/ui/Blocks/__generated__/VideoListEventData.graphql.ts","webpack://tobira/./src/ui/Blocks/Title.tsx","webpack://tobira/./src/ui/Blocks/Video.tsx","webpack://tobira/./src/ui/Blocks/index.tsx","webpack://tobira/./src/ui/Breadcrumbs.tsx","webpack://tobira/./src/ui/FloatingBaseMenu.tsx","webpack://tobira/./src/ui/Form.tsx","webpack://tobira/./src/ui/Input.tsx","webpack://tobira/./src/ui/LinkButton.tsx","webpack://tobira/./src/ui/Modal.tsx","webpack://tobira/./node_modules/react-select/async/dist/react-select-async.esm.js","webpack://tobira/./src/ui/SearchableSelect.tsx","webpack://tobira/./src/ui/Video.tsx","webpack://tobira/./src/ui/Waiting.tsx","webpack://tobira/./src/ui/__generated__/AccessKnownRolesData.graphql.ts","webpack://tobira/./src/ui/__generated__/AccessUserSearchQuery.graphql.ts","webpack://tobira/./src/ui/__generated__/SearchableSelectPlaylistsQuery.graphql.ts","webpack://tobira/./src/ui/__generated__/SearchableSelectSeriesQuery.graphql.ts","webpack://tobira/./src/ui/error.tsx","webpack://tobira/./src/ui/index.tsx","webpack://tobira/./src/ui/metadata.tsx","webpack://tobira/./src/ui/player/PlayerContext.tsx","webpack://tobira/./src/ui/player/PlayerGroupContext.tsx","webpack://tobira/./src/ui/player/index.tsx","webpack://tobira/./src/ui/time.tsx","webpack://tobira/./src/util/err.tsx","webpack://tobira/./src/util/index.ts","webpack://tobira/./src/util/permissionLevels.tsx","webpack://tobira/./src/util/realm.tsx","webpack://tobira/./src/util/roles.tsx","webpack://tobira/./src/util/video.tsx","webpack://tobira/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://tobira/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://tobira/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://tobira/./node_modules/@babel/runtime/helpers/construct.js","webpack://tobira/./node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","webpack://tobira/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://tobira/./node_modules/@babel/runtime/helpers/extends.js","webpack://tobira/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://tobira/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://tobira/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://tobira/./node_modules/@babel/runtime/helpers/isNativeFunction.js","webpack://tobira/./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","webpack://tobira/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://tobira/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://tobira/./node_modules/@babel/runtime/helpers/objectSpread2.js","webpack://tobira/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://tobira/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://tobira/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://tobira/./node_modules/@babel/runtime/helpers/toPrimitive.js","webpack://tobira/./node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack://tobira/./node_modules/@babel/runtime/helpers/typeof.js","webpack://tobira/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://tobira/./node_modules/@babel/runtime/helpers/wrapNativeSuper.js","webpack://tobira/./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","webpack://tobira/./node_modules/@floating-ui/core/dist/floating-ui.core.mjs","webpack://tobira/./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","webpack://tobira/./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://tobira/../src/parse-tag.js","webpack://tobira/../src/parse.js","webpack://tobira/../src/stringify.js","webpack://tobira/./node_modules/react-i18next/dist/es/utils.js","webpack://tobira/./node_modules/react-i18next/dist/es/unescape.js","webpack://tobira/./node_modules/react-i18next/dist/es/defaults.js","webpack://tobira/./node_modules/react-i18next/dist/es/i18nInstance.js","webpack://tobira/./node_modules/react-i18next/dist/es/TransWithoutContext.js","webpack://tobira/./node_modules/react-i18next/dist/es/initReactI18next.js","webpack://tobira/./node_modules/react-i18next/dist/es/context.js","webpack://tobira/./node_modules/react-i18next/dist/es/Trans.js","webpack://tobira/./node_modules/react-i18next/dist/es/useTranslation.js","webpack://tobira/./node_modules/react-i18next/dist/es/Translation.js","webpack://tobira/./node_modules/react-hook-form/dist/index.esm.mjs","webpack://tobira/webpack/bootstrap","webpack://tobira/webpack/runtime/compat get default export","webpack://tobira/webpack/runtime/define property getters","webpack://tobira/webpack/runtime/ensure chunk","webpack://tobira/webpack/runtime/get javascript chunk filename","webpack://tobira/webpack/runtime/global","webpack://tobira/webpack/runtime/hasOwnProperty shorthand","webpack://tobira/webpack/runtime/make namespace object","webpack://tobira/webpack/runtime/publicPath","webpack://tobira/webpack/runtime/jsonp chunk loading","webpack://tobira/./src/relay/boundary.tsx","webpack://tobira/./node_modules/react-transition-group/esm/TransitionGroupContext.js","webpack://tobira/./node_modules/react-transition-group/esm/Transition.js","webpack://tobira/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://tobira/./node_modules/react-transition-group/esm/utils/reflow.js","webpack://tobira/./src/ui/LoadingIndicator.tsx","webpack://tobira/./src/ui/InitialConsent.tsx","webpack://tobira/./src/App.tsx","webpack://tobira/./src/index.tsx"],"sourcesContent":["var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"tobira:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","var isDevelopment = false;\n\n/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n\nfunction sheetForTag(tag) {\n  if (tag.sheet) {\n    return tag.sheet;\n  } // this weirdness brought to you by firefox\n\n  /* istanbul ignore next */\n\n\n  for (var i = 0; i < document.styleSheets.length; i++) {\n    if (document.styleSheets[i].ownerNode === tag) {\n      return document.styleSheets[i];\n    }\n  } // this function should always return with a value\n  // TS can't understand it though so we make it stop complaining here\n\n\n  return undefined;\n}\n\nfunction createStyleElement(options) {\n  var tag = document.createElement('style');\n  tag.setAttribute('data-emotion', options.key);\n\n  if (options.nonce !== undefined) {\n    tag.setAttribute('nonce', options.nonce);\n  }\n\n  tag.appendChild(document.createTextNode(''));\n  tag.setAttribute('data-s', '');\n  return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n  // Using Node instead of HTMLElement since container may be a ShadowRoot\n  function StyleSheet(options) {\n    var _this = this;\n\n    this._insertTag = function (tag) {\n      var before;\n\n      if (_this.tags.length === 0) {\n        if (_this.insertionPoint) {\n          before = _this.insertionPoint.nextSibling;\n        } else if (_this.prepend) {\n          before = _this.container.firstChild;\n        } else {\n          before = _this.before;\n        }\n      } else {\n        before = _this.tags[_this.tags.length - 1].nextSibling;\n      }\n\n      _this.container.insertBefore(tag, before);\n\n      _this.tags.push(tag);\n    };\n\n    this.isSpeedy = options.speedy === undefined ? !isDevelopment : options.speedy;\n    this.tags = [];\n    this.ctr = 0;\n    this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n    this.key = options.key;\n    this.container = options.container;\n    this.prepend = options.prepend;\n    this.insertionPoint = options.insertionPoint;\n    this.before = null;\n  }\n\n  var _proto = StyleSheet.prototype;\n\n  _proto.hydrate = function hydrate(nodes) {\n    nodes.forEach(this._insertTag);\n  };\n\n  _proto.insert = function insert(rule) {\n    // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n    // it's 1 in dev because we insert source maps that map a single rule to a location\n    // and you can only have one source map per style tag\n    if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n      this._insertTag(createStyleElement(this));\n    }\n\n    var tag = this.tags[this.tags.length - 1];\n\n    if (this.isSpeedy) {\n      var sheet = sheetForTag(tag);\n\n      try {\n        // this is the ultrafast version, works across browsers\n        // the big drawback is that the css won't be editable in devtools\n        sheet.insertRule(rule, sheet.cssRules.length);\n      } catch (e) {\n      }\n    } else {\n      tag.appendChild(document.createTextNode(rule));\n    }\n\n    this.ctr++;\n  };\n\n  _proto.flush = function flush() {\n    this.tags.forEach(function (tag) {\n      var _tag$parentNode;\n\n      return (_tag$parentNode = tag.parentNode) == null ? void 0 : _tag$parentNode.removeChild(tag);\n    });\n    this.tags = [];\n    this.ctr = 0;\n  };\n\n  return StyleSheet;\n}();\n\nexport { StyleSheet };\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n  var previous = 0;\n  var character = 0;\n\n  while (true) {\n    previous = character;\n    character = peek(); // &\\f\n\n    if (previous === 38 && character === 12) {\n      points[index] = 1;\n    }\n\n    if (token(character)) {\n      break;\n    }\n\n    next();\n  }\n\n  return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n  // pretend we've started with a comma\n  var index = -1;\n  var character = 44;\n\n  do {\n    switch (token(character)) {\n      case 0:\n        // &\\f\n        if (character === 38 && peek() === 12) {\n          // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n          // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n          // and when it should just concatenate the outer and inner selectors\n          // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n          points[index] = 1;\n        }\n\n        parsed[index] += identifierWithPointTracking(position - 1, points, index);\n        break;\n\n      case 2:\n        parsed[index] += delimit(character);\n        break;\n\n      case 4:\n        // comma\n        if (character === 44) {\n          // colon\n          parsed[++index] = peek() === 58 ? '&\\f' : '';\n          points[index] = parsed[index].length;\n          break;\n        }\n\n      // fallthrough\n\n      default:\n        parsed[index] += from(character);\n    }\n  } while (character = next());\n\n  return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n  return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n  if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n  // negative .length indicates that this rule has been already prefixed\n  element.length < 1) {\n    return;\n  }\n\n  var value = element.value,\n      parent = element.parent;\n  var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n  while (parent.type !== 'rule') {\n    parent = parent.parent;\n    if (!parent) return;\n  } // short-circuit for the simplest case\n\n\n  if (element.props.length === 1 && value.charCodeAt(0) !== 58\n  /* colon */\n  && !fixedElements.get(parent)) {\n    return;\n  } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n  // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n  if (isImplicitRule) {\n    return;\n  }\n\n  fixedElements.set(element, true);\n  var points = [];\n  var rules = getRules(value, points);\n  var parentRules = parent.props;\n\n  for (var i = 0, k = 0; i < rules.length; i++) {\n    for (var j = 0; j < parentRules.length; j++, k++) {\n      element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n    }\n  }\n};\nvar removeLabel = function removeLabel(element) {\n  if (element.type === 'decl') {\n    var value = element.value;\n\n    if ( // charcode for l\n    value.charCodeAt(0) === 108 && // charcode for b\n    value.charCodeAt(2) === 98) {\n      // this ignores label\n      element[\"return\"] = '';\n      element.value = '';\n    }\n  }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n  switch (hash(value, length)) {\n    // color-adjust\n    case 5103:\n      return WEBKIT + 'print-' + value + value;\n    // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n    case 5737:\n    case 4201:\n    case 3177:\n    case 3433:\n    case 1641:\n    case 4457:\n    case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n    case 5572:\n    case 6356:\n    case 5844:\n    case 3191:\n    case 6645:\n    case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n    case 6391:\n    case 5879:\n    case 5623:\n    case 6135:\n    case 4599:\n    case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n    case 4215:\n    case 6389:\n    case 5109:\n    case 5365:\n    case 5621:\n    case 3829:\n      return WEBKIT + value + value;\n    // appearance, user-select, transform, hyphens, text-size-adjust\n\n    case 5349:\n    case 4246:\n    case 4810:\n    case 6968:\n    case 2756:\n      return WEBKIT + value + MOZ + value + MS + value + value;\n    // flex, flex-direction\n\n    case 6828:\n    case 4268:\n      return WEBKIT + value + MS + value + value;\n    // order\n\n    case 6165:\n      return WEBKIT + value + MS + 'flex-' + value + value;\n    // align-items\n\n    case 5187:\n      return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n    // align-self\n\n    case 5443:\n      return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n    // align-content\n\n    case 4675:\n      return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n    // flex-shrink\n\n    case 5548:\n      return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n    // flex-basis\n\n    case 5292:\n      return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n    // flex-grow\n\n    case 6060:\n      return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n    // transition\n\n    case 4554:\n      return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n    // cursor\n\n    case 6187:\n      return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n    // background, background-image\n\n    case 5495:\n    case 3959:\n      return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n    // justify-content\n\n    case 4968:\n      return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n    // (margin|padding)-inline-(start|end)\n\n    case 4095:\n    case 3583:\n    case 4068:\n    case 2532:\n      return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n    // (min|max)?(width|height|inline-size|block-size)\n\n    case 8116:\n    case 7059:\n    case 5753:\n    case 5535:\n    case 5445:\n    case 5701:\n    case 4933:\n    case 4677:\n    case 5533:\n    case 5789:\n    case 5021:\n    case 4765:\n      // stretch, max-content, min-content, fill-available\n      if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n        // (m)ax-content, (m)in-content\n        case 109:\n          // -\n          if (charat(value, length + 4) !== 45) break;\n        // (f)ill-available, (f)it-content\n\n        case 102:\n          return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n        // (s)tretch\n\n        case 115:\n          return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n      }\n      break;\n    // position: sticky\n\n    case 4949:\n      // (s)ticky?\n      if (charat(value, length + 1) !== 115) break;\n    // display: (flex|inline-flex)\n\n    case 6444:\n      switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n        // stic(k)y\n        case 107:\n          return replace(value, ':', ':' + WEBKIT) + value;\n        // (inline-)?fl(e)x\n\n        case 101:\n          return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n      }\n\n      break;\n    // writing-mode\n\n    case 5936:\n      switch (charat(value, length + 11)) {\n        // vertical-l(r)\n        case 114:\n          return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n        // vertical-r(l)\n\n        case 108:\n          return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n        // horizontal(-)tb\n\n        case 45:\n          return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n      }\n\n      return WEBKIT + value + MS + value + value;\n  }\n\n  return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n  if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n    case DECLARATION:\n      element[\"return\"] = prefix(element.value, element.length);\n      break;\n\n    case KEYFRAMES:\n      return serialize([copy(element, {\n        value: replace(element.value, '@', '@' + WEBKIT)\n      })], callback);\n\n    case RULESET:\n      if (element.length) return combine(element.props, function (value) {\n        switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n          // :read-(only|write)\n          case ':read-only':\n          case ':read-write':\n            return serialize([copy(element, {\n              props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n            })], callback);\n          // :placeholder\n\n          case '::placeholder':\n            return serialize([copy(element, {\n              props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n            }), copy(element, {\n              props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n            }), copy(element, {\n              props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n            })], callback);\n        }\n\n        return '';\n      });\n  }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function\n  /*: EmotionCache */\ncreateCache(options\n/*: Options */\n) {\n  var key = options.key;\n\n  if (key === 'css') {\n    var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n    // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n    // note this very very intentionally targets all style elements regardless of the key to ensure\n    // that creating a cache works inside of render of a React component\n\n    Array.prototype.forEach.call(ssrStyles, function (node\n    /*: HTMLStyleElement */\n    ) {\n      // we want to only move elements which have a space in the data-emotion attribute value\n      // because that indicates that it is an Emotion 11 server-side rendered style elements\n      // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n      // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n      // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n      // will not result in the Emotion 10 styles being destroyed\n      var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n      if (dataEmotionAttribute.indexOf(' ') === -1) {\n        return;\n      }\n\n      document.head.appendChild(node);\n      node.setAttribute('data-s', '');\n    });\n  }\n\n  var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n  var inserted = {};\n  var container;\n  /* : Node */\n\n  var nodesToHydrate = [];\n\n  {\n    container = options.container || document.head;\n    Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n    // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n    document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node\n    /*: HTMLStyleElement */\n    ) {\n      var attrib = node.getAttribute(\"data-emotion\").split(' ');\n\n      for (var i = 1; i < attrib.length; i++) {\n        inserted[attrib[i]] = true;\n      }\n\n      nodesToHydrate.push(node);\n    });\n  }\n\n  var _insert;\n  /*: (\n  selector: string,\n  serialized: SerializedStyles,\n  sheet: StyleSheet,\n  shouldCache: boolean\n  ) => string | void */\n\n\n  var omnipresentPlugins = [compat, removeLabel];\n\n  {\n    var currentSheet;\n    var finalizingPlugins = [stringify, rulesheet(function (rule) {\n      currentSheet.insert(rule);\n    })];\n    var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n    var stylis = function stylis(styles) {\n      return serialize(compile(styles), serializer);\n    };\n\n    _insert = function\n      /*: void */\n    insert(selector\n    /*: string */\n    , serialized\n    /*: SerializedStyles */\n    , sheet\n    /*: StyleSheet */\n    , shouldCache\n    /*: boolean */\n    ) {\n      currentSheet = sheet;\n\n      stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n      if (shouldCache) {\n        cache.inserted[serialized.name] = true;\n      }\n    };\n  }\n\n  var cache\n  /*: EmotionCache */\n  = {\n    key: key,\n    sheet: new StyleSheet({\n      key: key,\n      container: container,\n      nonce: options.nonce,\n      speedy: options.speedy,\n      prepend: options.prepend,\n      insertionPoint: options.insertionPoint\n    }),\n    nonce: options.nonce,\n    inserted: inserted,\n    registered: {},\n    insert: _insert\n  };\n  cache.sheet.hydrate(nodesToHydrate);\n  return cache;\n};\n\nexport { createCache as default };\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isDevelopment = false;\n\nvar isBrowser = typeof document !== 'undefined';\n\n/* import { type EmotionCache } from '@emotion/utils' */\nvar EmotionCacheContext\n/*: React.Context<EmotionCache | null> */\n= /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n  key: 'css'\n}) : null);\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache()\n/*: EmotionCache | null*/\n{\n  return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache\n/* <Props, Ref: React.Ref<*>> */\n(func\n/*: (props: Props, cache: EmotionCache, ref: Ref) => React.Node */\n)\n/*: React.AbstractComponent<Props> */\n{\n  return /*#__PURE__*/forwardRef(function (props\n  /*: Props */\n  , ref\n  /*: Ref */\n  ) {\n    // the cache will never be null in the browser\n    var cache = useContext(EmotionCacheContext);\n    return func(props, cache, ref);\n  });\n};\n\nif (!isBrowser) {\n  withEmotionCache = function withEmotionCache\n  /* <Props> */\n  (func\n  /*: (props: Props, cache: EmotionCache) => React.Node */\n  )\n  /*: React.StatelessFunctionalComponent<Props> */\n  {\n    return function (props\n    /*: Props */\n    ) {\n      var cache = useContext(EmotionCacheContext);\n\n      if (cache === null) {\n        // yes, we're potentially creating this on every render\n        // it doesn't actually matter though since it's only on the server\n        // so there will only every be a single render\n        // that could change in the future because of suspense and etc. but for now,\n        // this works and i don't want to optimise for a future thing that we aren't sure about\n        cache = createCache({\n          key: 'css'\n        });\n        return /*#__PURE__*/React.createElement(EmotionCacheContext.Provider, {\n          value: cache\n        }, func(props, cache));\n      } else {\n        return func(props, cache);\n      }\n    };\n  };\n}\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nvar useTheme = function useTheme() {\n  return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme\n/*: Object */\n, theme\n/*: Object | (Object => Object) */\n) {\n  if (typeof theme === 'function') {\n    var mergedTheme = theme(outerTheme);\n\n    return mergedTheme;\n  }\n\n  return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n  return weakMemoize(function (theme) {\n    return getTheme(outerTheme, theme);\n  });\n});\n/*\ntype ThemeProviderProps = {\n  theme: Object | (Object => Object),\n  children: React.Node\n}\n*/\n\nvar ThemeProvider = function ThemeProvider(props\n/*: ThemeProviderProps */\n) {\n  var theme = React.useContext(ThemeContext);\n\n  if (props.theme !== theme) {\n    theme = createCacheWithTheme(theme)(props.theme);\n  }\n\n  return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n    value: theme\n  }, props.children);\n};\nfunction withTheme\n/* <Config: {}> */\n(Component\n/*: React.AbstractComponent<Config> */\n)\n/*: React.AbstractComponent<$Diff<Config, { theme: Object }>> */\n{\n  var componentName = Component.displayName || Component.name || 'Component';\n\n  var render = function render(props, ref) {\n    var theme = React.useContext(ThemeContext);\n    return /*#__PURE__*/React.createElement(Component, _extends({\n      theme: theme,\n      ref: ref\n    }, props));\n  };\n\n  var WithTheme = /*#__PURE__*/React.forwardRef(render);\n  WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n  return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar hasOwn = {}.hasOwnProperty;\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type\n/*: React.ElementType */\n, props\n/*: Object */\n) {\n\n  var newProps\n  /*: any */\n  = {};\n\n  for (var key in props) {\n    if (hasOwn.call(props, key)) {\n      newProps[key] = props[key];\n    }\n  }\n\n  newProps[typePropName] = type; // Runtime labeling is an opt-in feature because:\n\n  return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n  var cache = _ref.cache,\n      serialized = _ref.serialized,\n      isStringTag = _ref.isStringTag;\n  registerStyles(cache, serialized, isStringTag);\n  var rules = useInsertionEffectAlwaysWithSyncFallback(function () {\n    return insertStyles(cache, serialized, isStringTag);\n  });\n\n  if (!isBrowser && rules !== undefined) {\n    var _ref2;\n\n    var serializedNames = serialized.name;\n    var next = serialized.next;\n\n    while (next !== undefined) {\n      serializedNames += ' ' + next.name;\n      next = next.next;\n    }\n\n    return /*#__PURE__*/React.createElement(\"style\", (_ref2 = {}, _ref2[\"data-emotion\"] = cache.key + \" \" + serializedNames, _ref2.dangerouslySetInnerHTML = {\n      __html: rules\n    }, _ref2.nonce = cache.sheet.nonce, _ref2));\n  }\n\n  return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(\n/* <any, any> */\nfunction (props, cache, ref) {\n  var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n  // not passing the registered cache to serializeStyles because it would\n  // make certain babel optimisations not possible\n\n  if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n    cssProp = cache.registered[cssProp];\n  }\n\n  var WrappedComponent = props[typePropName];\n  var registeredStyles = [cssProp];\n  var className = '';\n\n  if (typeof props.className === 'string') {\n    className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n  } else if (props.className != null) {\n    className = props.className + \" \";\n  }\n\n  var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n  className += cache.key + \"-\" + serialized.name;\n  var newProps = {};\n\n  for (var key in props) {\n    if (hasOwn.call(props, key) && key !== 'css' && key !== typePropName && (!isDevelopment )) {\n      newProps[key] = props[key];\n    }\n  }\n\n  newProps.className = className;\n\n  if (ref) {\n    newProps.ref = ref;\n  }\n\n  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n    cache: cache,\n    serialized: serialized,\n    isStringTag: typeof WrappedComponent === 'string'\n  }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, isDevelopment as a, ThemeProvider as b, createEmotionProps as c, withTheme as d, hasOwn as h, isBrowser as i, useTheme as u, withEmotionCache as w };\n","import { h as hasOwn, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isBrowser, a as isDevelopment } from './emotion-element-b4c8b265.esm.js';\nexport { C as CacheProvider, T as ThemeContext, b as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, d as withTheme } from './emotion-element-b4c8b265.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js';\nimport 'hoist-non-react-statics';\n\nvar jsx\n/*: typeof React.createElement */\n= function jsx\n/*: typeof React.createElement */\n(type\n/*: React.ElementType */\n, props\n/*: Object */\n) {\n  var args = arguments;\n\n  if (props == null || !hasOwn.call(props, 'css')) {\n    return React.createElement.apply(undefined, args);\n  }\n\n  var argsLength = args.length;\n  var createElementArgArray = new Array(argsLength);\n  createElementArgArray[0] = Emotion;\n  createElementArgArray[1] = createEmotionProps(type, props);\n\n  for (var i = 2; i < argsLength; i++) {\n    createElementArgArray[i] = args[i];\n  }\n\n  return React.createElement.apply(null, createElementArgArray);\n};\n\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global\n/*: React.AbstractComponent<\nGlobalProps\n> */\n= /* #__PURE__ */withEmotionCache(function (props\n/*: GlobalProps */\n, cache) {\n\n  var styles = props.styles;\n  var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n\n  if (!isBrowser) {\n    var _ref;\n\n    var serializedNames = serialized.name;\n    var serializedStyles = serialized.styles;\n    var next = serialized.next;\n\n    while (next !== undefined) {\n      serializedNames += ' ' + next.name;\n      serializedStyles += next.styles;\n      next = next.next;\n    }\n\n    var shouldCache = cache.compat === true;\n    var rules = cache.insert(\"\", {\n      name: serializedNames,\n      styles: serializedStyles\n    }, cache.sheet, shouldCache);\n\n    if (shouldCache) {\n      return null;\n    }\n\n    return /*#__PURE__*/React.createElement(\"style\", (_ref = {}, _ref[\"data-emotion\"] = cache.key + \"-global \" + serializedNames, _ref.dangerouslySetInnerHTML = {\n      __html: rules\n    }, _ref.nonce = cache.sheet.nonce, _ref));\n  } // yes, i know these hooks are used conditionally\n  // but it is based on a constant that will never change at runtime\n  // it's effectively like having two implementations and switching them out\n  // so it's not actually breaking anything\n\n\n  var sheetRef = React.useRef();\n  useInsertionEffectWithLayoutFallback(function () {\n    var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n    var sheet = new cache.sheet.constructor({\n      key: key,\n      nonce: cache.sheet.nonce,\n      container: cache.sheet.container,\n      speedy: cache.sheet.isSpeedy\n    });\n    var rehydrating = false;\n    var node\n    /*: HTMLStyleElement | null*/\n    = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n    if (cache.sheet.tags.length) {\n      sheet.before = cache.sheet.tags[0];\n    }\n\n    if (node !== null) {\n      rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other <Global/>s\n\n      node.setAttribute('data-emotion', key);\n      sheet.hydrate([node]);\n    }\n\n    sheetRef.current = [sheet, rehydrating];\n    return function () {\n      sheet.flush();\n    };\n  }, [cache]);\n  useInsertionEffectWithLayoutFallback(function () {\n    var sheetRefCurrent = sheetRef.current;\n    var sheet = sheetRefCurrent[0],\n        rehydrating = sheetRefCurrent[1];\n\n    if (rehydrating) {\n      sheetRefCurrent[1] = false;\n      return;\n    }\n\n    if (serialized.next !== undefined) {\n      // insert keyframes\n      insertStyles(cache, serialized.next, true);\n    }\n\n    if (sheet.tags.length) {\n      // if this doesn't exist then it will be null so the style element will be appended\n      var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n      sheet.before = element;\n      sheet.flush();\n    }\n\n    cache.insert(\"\", serialized, sheet, false);\n  }, [cache, serialized.name]);\n  return null;\n});\n\n/* import type { Interpolation, SerializedStyles } from '@emotion/utils' */\n\nfunction css()\n/*: SerializedStyles */\n{\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  return serializeStyles(args);\n}\n\n/*\ntype Keyframes = {|\n  name: string,\n  styles: string,\n  anim: 1,\n  toString: () => string\n|} & string\n*/\n\nvar keyframes = function\n  /*: Keyframes */\nkeyframes() {\n  var insertable = css.apply(void 0, arguments);\n  var name = \"animation-\" + insertable.name;\n  return {\n    name: name,\n    styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n    anim: 1,\n    toString: function toString() {\n      return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n    }\n  };\n};\n\n/*\ntype ClassNameArg =\n  | string\n  | boolean\n  | { [key: string]: boolean }\n  | Array<ClassNameArg>\n  | null\n  | void\n*/\n\nvar classnames = function\n  /*: string */\nclassnames(args\n/*: Array<ClassNameArg> */\n) {\n  var len = args.length;\n  var i = 0;\n  var cls = '';\n\n  for (; i < len; i++) {\n    var arg = args[i];\n    if (arg == null) continue;\n    var toAdd = void 0;\n\n    switch (typeof arg) {\n      case 'boolean':\n        break;\n\n      case 'object':\n        {\n          if (Array.isArray(arg)) {\n            toAdd = classnames(arg);\n          } else {\n\n            toAdd = '';\n\n            for (var k in arg) {\n              if (arg[k] && k) {\n                toAdd && (toAdd += ' ');\n                toAdd += k;\n              }\n            }\n          }\n\n          break;\n        }\n\n      default:\n        {\n          toAdd = arg;\n        }\n    }\n\n    if (toAdd) {\n      cls && (cls += ' ');\n      cls += toAdd;\n    }\n  }\n\n  return cls;\n};\n\nfunction merge(registered\n/*: Object */\n, css\n/*: (...args: Array<any>) => string */\n, className\n/*: string */\n) {\n  var registeredStyles = [];\n  var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n  if (registeredStyles.length < 2) {\n    return className;\n  }\n\n  return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n  var cache = _ref.cache,\n      serializedArr = _ref.serializedArr;\n  var rules = useInsertionEffectAlwaysWithSyncFallback(function () {\n    var rules = '';\n\n    for (var i = 0; i < serializedArr.length; i++) {\n      var res = insertStyles(cache, serializedArr[i], false);\n\n      if (!isBrowser && res !== undefined) {\n        rules += res;\n      }\n    }\n\n    if (!isBrowser) {\n      return rules;\n    }\n  });\n\n  if (!isBrowser && rules.length !== 0) {\n    var _ref2;\n\n    return /*#__PURE__*/React.createElement(\"style\", (_ref2 = {}, _ref2[\"data-emotion\"] = cache.key + \" \" + serializedArr.map(function (serialized) {\n      return serialized.name;\n    }).join(' '), _ref2.dangerouslySetInnerHTML = {\n      __html: rules\n    }, _ref2.nonce = cache.sheet.nonce, _ref2));\n  }\n\n  return null;\n};\n/*\ntype Props = {\n  children: ({\n    css: (...args: any) => string,\n    cx: (...args: Array<ClassNameArg>) => string,\n    theme: Object\n  }) => React.Node\n} */\n\n\nvar ClassNames\n/*: React.AbstractComponent<Props>*/\n= /* #__PURE__ */withEmotionCache(function (props, cache) {\n  var hasRendered = false;\n  var serializedArr = [];\n\n  var css = function css() {\n    if (hasRendered && isDevelopment) {\n      throw new Error('css can only be used during render');\n    }\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    var serialized = serializeStyles(args, cache.registered);\n    serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n    registerStyles(cache, serialized, false);\n    return cache.key + \"-\" + serialized.name;\n  };\n\n  var cx = function cx() {\n    if (hasRendered && isDevelopment) {\n      throw new Error('cx can only be used during render');\n    }\n\n    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      args[_key2] = arguments[_key2];\n    }\n\n    return merge(cache.registered, css, classnames(args));\n  };\n\n  var content = {\n    css: css,\n    cx: cx,\n    theme: React.useContext(ThemeContext)\n  };\n  var ele = props.children(content);\n  hasRendered = true;\n  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n    cache: cache,\n    serializedArr: serializedArr\n  }), ele);\n});\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","import * as ReactJSXRuntime from 'react/jsx-runtime';\nimport { h as hasOwn, E as Emotion, c as createEmotionProps } from '../../dist/emotion-element-b4c8b265.esm.js';\nimport 'react';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js';\nimport 'hoist-non-react-statics';\nimport '@emotion/utils';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\n\nvar Fragment = ReactJSXRuntime.Fragment;\nfunction jsx(type, props, key) {\n  if (!hasOwn.call(props, 'css')) {\n    return ReactJSXRuntime.jsx(type, props, key);\n  }\n\n  return ReactJSXRuntime.jsx(Emotion, createEmotionProps(type, props), key);\n}\nfunction jsxs(type, props, key) {\n  if (!hasOwn.call(props, 'css')) {\n    return ReactJSXRuntime.jsxs(type, props, key);\n  }\n\n  return ReactJSXRuntime.jsxs(Emotion, createEmotionProps(type, props), key);\n}\n\nexport { Fragment, jsx, jsxs };\n","var unitlessKeys = {\n  animationIterationCount: 1,\n  aspectRatio: 1,\n  borderImageOutset: 1,\n  borderImageSlice: 1,\n  borderImageWidth: 1,\n  boxFlex: 1,\n  boxFlexGroup: 1,\n  boxOrdinalGroup: 1,\n  columnCount: 1,\n  columns: 1,\n  flex: 1,\n  flexGrow: 1,\n  flexPositive: 1,\n  flexShrink: 1,\n  flexNegative: 1,\n  flexOrder: 1,\n  gridRow: 1,\n  gridRowEnd: 1,\n  gridRowSpan: 1,\n  gridRowStart: 1,\n  gridColumn: 1,\n  gridColumnEnd: 1,\n  gridColumnSpan: 1,\n  gridColumnStart: 1,\n  msGridRow: 1,\n  msGridRowSpan: 1,\n  msGridColumn: 1,\n  msGridColumnSpan: 1,\n  fontWeight: 1,\n  lineHeight: 1,\n  opacity: 1,\n  order: 1,\n  orphans: 1,\n  scale: 1,\n  tabSize: 1,\n  widows: 1,\n  zIndex: 1,\n  zoom: 1,\n  WebkitLineClamp: 1,\n  // SVG-related properties\n  fillOpacity: 1,\n  floodOpacity: 1,\n  stopOpacity: 1,\n  strokeDasharray: 1,\n  strokeDashoffset: 1,\n  strokeMiterlimit: 1,\n  strokeOpacity: 1,\n  strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","function memoize(fn) {\n  var cache = Object.create(null);\n  return function (arg) {\n    if (cache[arg] === undefined) cache[arg] = fn(arg);\n    return cache[arg];\n  };\n}\n\nexport { memoize as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar isDevelopment = false;\n\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n  return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n  return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n  return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n  switch (key) {\n    case 'animation':\n    case 'animationName':\n      {\n        if (typeof value === 'string') {\n          return value.replace(animationRegex, function (match, p1, p2) {\n            cursor = {\n              name: p1,\n              styles: p2,\n              next: cursor\n            };\n            return p1;\n          });\n        }\n      }\n  }\n\n  if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n    return value + 'px';\n  }\n\n  return value;\n};\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n  if (interpolation == null) {\n    return '';\n  }\n\n  var componentSelector = interpolation;\n\n  if (componentSelector.__emotion_styles !== undefined) {\n\n    return componentSelector;\n  }\n\n  switch (typeof interpolation) {\n    case 'boolean':\n      {\n        return '';\n      }\n\n    case 'object':\n      {\n        var keyframes = interpolation;\n\n        if (keyframes.anim === 1) {\n          cursor = {\n            name: keyframes.name,\n            styles: keyframes.styles,\n            next: cursor\n          };\n          return keyframes.name;\n        }\n\n        var serializedStyles = interpolation;\n\n        if (serializedStyles.styles !== undefined) {\n          var next = serializedStyles.next;\n\n          if (next !== undefined) {\n            // not the most efficient thing ever but this is a pretty rare case\n            // and there will be very few iterations of this generally\n            while (next !== undefined) {\n              cursor = {\n                name: next.name,\n                styles: next.styles,\n                next: cursor\n              };\n              next = next.next;\n            }\n          }\n\n          var styles = serializedStyles.styles + \";\";\n\n          return styles;\n        }\n\n        return createStringFromObject(mergedProps, registered, interpolation);\n      }\n\n    case 'function':\n      {\n        if (mergedProps !== undefined) {\n          var previousCursor = cursor;\n          var result = interpolation(mergedProps);\n          cursor = previousCursor;\n          return handleInterpolation(mergedProps, registered, result);\n        }\n\n        break;\n      }\n  } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n  var asString = interpolation;\n\n  if (registered == null) {\n    return asString;\n  }\n\n  var cached = registered[asString];\n  return cached !== undefined ? cached : asString;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n  var string = '';\n\n  if (Array.isArray(obj)) {\n    for (var i = 0; i < obj.length; i++) {\n      string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n    }\n  } else {\n    for (var key in obj) {\n      var value = obj[key];\n\n      if (typeof value !== 'object') {\n        var asString = value;\n\n        if (registered != null && registered[asString] !== undefined) {\n          string += key + \"{\" + registered[asString] + \"}\";\n        } else if (isProcessableValue(asString)) {\n          string += processStyleName(key) + \":\" + processStyleValue(key, asString) + \";\";\n        }\n      } else {\n        if (key === 'NO_COMPONENT_SELECTOR' && isDevelopment) {\n          throw new Error(noComponentSelectorMessage);\n        }\n\n        if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n          for (var _i = 0; _i < value.length; _i++) {\n            if (isProcessableValue(value[_i])) {\n              string += processStyleName(key) + \":\" + processStyleValue(key, value[_i]) + \";\";\n            }\n          }\n        } else {\n          var interpolated = handleInterpolation(mergedProps, registered, value);\n\n          switch (key) {\n            case 'animation':\n            case 'animationName':\n              {\n                string += processStyleName(key) + \":\" + interpolated + \";\";\n                break;\n              }\n\n            default:\n              {\n\n                string += key + \"{\" + interpolated + \"}\";\n              }\n          }\n        }\n      }\n    }\n  }\n\n  return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;{]+)\\s*(;|$)/g;\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nfunction serializeStyles(args, registered, mergedProps) {\n  if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n    return args[0];\n  }\n\n  var stringMode = true;\n  var styles = '';\n  cursor = undefined;\n  var strings = args[0];\n\n  if (strings == null || strings.raw === undefined) {\n    stringMode = false;\n    styles += handleInterpolation(mergedProps, registered, strings);\n  } else {\n    var asTemplateStringsArr = strings;\n\n    styles += asTemplateStringsArr[0];\n  } // we start at 1 since we've already handled the first arg\n\n\n  for (var i = 1; i < args.length; i++) {\n    styles += handleInterpolation(mergedProps, registered, args[i]);\n\n    if (stringMode) {\n      var templateStringsArr = strings;\n\n      styles += templateStringsArr[i];\n    }\n  }\n\n\n  labelPattern.lastIndex = 0;\n  var identifierName = '';\n  var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n  while ((match = labelPattern.exec(styles)) !== null) {\n    identifierName += '-' + match[1];\n  }\n\n  var name = hashString(styles) + identifierName;\n\n  return {\n    name: name,\n    styles: styles,\n    next: cursor\n  };\n}\n\nexport { serializeStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n  // 'm' and 'r' are mixing constants generated offline.\n  // They're not really 'magic', they just happen to work well.\n  // const m = 0x5bd1e995;\n  // const r = 24;\n  // Initialize the hash\n  var h = 0; // Mix 4 bytes at a time into the hash\n\n  var k,\n      i = 0,\n      len = str.length;\n\n  for (; len >= 4; ++i, len -= 4) {\n    k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n    k =\n    /* Math.imul(k, m): */\n    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n    k ^=\n    /* k >>> r: */\n    k >>> 24;\n    h =\n    /* Math.imul(k, m): */\n    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n    /* Math.imul(h, m): */\n    (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  } // Handle the last few bytes of the input array\n\n\n  switch (len) {\n    case 3:\n      h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n    case 2:\n      h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n    case 1:\n      h ^= str.charCodeAt(i) & 0xff;\n      h =\n      /* Math.imul(h, m): */\n      (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  } // Do a few final mixes of the hash to ensure the last few\n  // bytes are well-incorporated.\n\n\n  h ^= h >>> 13;\n  h =\n  /* Math.imul(h, m): */\n  (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n  return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","var isBrowser = true;\n\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n  var rawClassName = '';\n  classNames.split(' ').forEach(function (className) {\n    if (registered[className] !== undefined) {\n      registeredStyles.push(registered[className] + \";\");\n    } else if (className) {\n      rawClassName += className + \" \";\n    }\n  });\n  return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n  var className = cache.key + \"-\" + serialized.name;\n\n  if ( // we only need to add the styles to the registered cache if the\n  // class name could be used further down\n  // the tree but if it's a string tag, we know it won't\n  // so we don't have to add it to registered cache.\n  // this improves memory usage since we can avoid storing the whole style string\n  (isStringTag === false || // we need to always store it if we're in compat mode and\n  // in node since emotion-server relies on whether a style is in\n  // the registered cache to know whether a style is global or not\n  // also, note that this check will be dead code eliminated in the browser\n  isBrowser === false ) && cache.registered[className] === undefined) {\n    cache.registered[className] = serialized.styles;\n  }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n  registerStyles(cache, serialized, isStringTag);\n  var className = cache.key + \"-\" + serialized.name;\n\n  if (cache.inserted[serialized.name] === undefined) {\n    var current = serialized;\n\n    do {\n      cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n      current = current.next;\n    } while (current !== undefined);\n  }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n",null,null,null,null,null,null,null,null,"import { computePosition, arrow as arrow$2, offset as offset$1, shift as shift$1, limitShift as limitShift$1, flip as flip$1, size as size$1, autoPlacement as autoPlacement$1, hide as hide$1, inline as inline$1 } from '@floating-ui/dom';\nexport { autoUpdate, computePosition, detectOverflow, getOverflowAncestors, platform } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect, useEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n  if (a === b) {\n    return true;\n  }\n  if (typeof a !== typeof b) {\n    return false;\n  }\n  if (typeof a === 'function' && a.toString() === b.toString()) {\n    return true;\n  }\n  let length;\n  let i;\n  let keys;\n  if (a && b && typeof a === 'object') {\n    if (Array.isArray(a)) {\n      length = a.length;\n      if (length !== b.length) return false;\n      for (i = length; i-- !== 0;) {\n        if (!deepEqual(a[i], b[i])) {\n          return false;\n        }\n      }\n      return true;\n    }\n    keys = Object.keys(a);\n    length = keys.length;\n    if (length !== Object.keys(b).length) {\n      return false;\n    }\n    for (i = length; i-- !== 0;) {\n      if (!{}.hasOwnProperty.call(b, keys[i])) {\n        return false;\n      }\n    }\n    for (i = length; i-- !== 0;) {\n      const key = keys[i];\n      if (key === '_owner' && a.$$typeof) {\n        continue;\n      }\n      if (!deepEqual(a[key], b[key])) {\n        return false;\n      }\n    }\n    return true;\n  }\n  return a !== a && b !== b;\n}\n\nfunction getDPR(element) {\n  if (typeof window === 'undefined') {\n    return 1;\n  }\n  const win = element.ownerDocument.defaultView || window;\n  return win.devicePixelRatio || 1;\n}\n\nfunction roundByDPR(element, value) {\n  const dpr = getDPR(element);\n  return Math.round(value * dpr) / dpr;\n}\n\nfunction useLatestRef(value) {\n  const ref = React.useRef(value);\n  index(() => {\n    ref.current = value;\n  });\n  return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/useFloating\n */\nfunction useFloating(options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    placement = 'bottom',\n    strategy = 'absolute',\n    middleware = [],\n    platform,\n    elements: {\n      reference: externalReference,\n      floating: externalFloating\n    } = {},\n    transform = true,\n    whileElementsMounted,\n    open\n  } = options;\n  const [data, setData] = React.useState({\n    x: 0,\n    y: 0,\n    strategy,\n    placement,\n    middlewareData: {},\n    isPositioned: false\n  });\n  const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n  if (!deepEqual(latestMiddleware, middleware)) {\n    setLatestMiddleware(middleware);\n  }\n  const [_reference, _setReference] = React.useState(null);\n  const [_floating, _setFloating] = React.useState(null);\n  const setReference = React.useCallback(node => {\n    if (node !== referenceRef.current) {\n      referenceRef.current = node;\n      _setReference(node);\n    }\n  }, []);\n  const setFloating = React.useCallback(node => {\n    if (node !== floatingRef.current) {\n      floatingRef.current = node;\n      _setFloating(node);\n    }\n  }, []);\n  const referenceEl = externalReference || _reference;\n  const floatingEl = externalFloating || _floating;\n  const referenceRef = React.useRef(null);\n  const floatingRef = React.useRef(null);\n  const dataRef = React.useRef(data);\n  const hasWhileElementsMounted = whileElementsMounted != null;\n  const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n  const platformRef = useLatestRef(platform);\n  const openRef = useLatestRef(open);\n  const update = React.useCallback(() => {\n    if (!referenceRef.current || !floatingRef.current) {\n      return;\n    }\n    const config = {\n      placement,\n      strategy,\n      middleware: latestMiddleware\n    };\n    if (platformRef.current) {\n      config.platform = platformRef.current;\n    }\n    computePosition(referenceRef.current, floatingRef.current, config).then(data => {\n      const fullData = {\n        ...data,\n        // The floating element's position may be recomputed while it's closed\n        // but still mounted (such as when transitioning out). To ensure\n        // `isPositioned` will be `false` initially on the next open, avoid\n        // setting it to `true` when `open === false` (must be specified).\n        isPositioned: openRef.current !== false\n      };\n      if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n        dataRef.current = fullData;\n        ReactDOM.flushSync(() => {\n          setData(fullData);\n        });\n      }\n    });\n  }, [latestMiddleware, placement, strategy, platformRef, openRef]);\n  index(() => {\n    if (open === false && dataRef.current.isPositioned) {\n      dataRef.current.isPositioned = false;\n      setData(data => ({\n        ...data,\n        isPositioned: false\n      }));\n    }\n  }, [open]);\n  const isMountedRef = React.useRef(false);\n  index(() => {\n    isMountedRef.current = true;\n    return () => {\n      isMountedRef.current = false;\n    };\n  }, []);\n  index(() => {\n    if (referenceEl) referenceRef.current = referenceEl;\n    if (floatingEl) floatingRef.current = floatingEl;\n    if (referenceEl && floatingEl) {\n      if (whileElementsMountedRef.current) {\n        return whileElementsMountedRef.current(referenceEl, floatingEl, update);\n      }\n      update();\n    }\n  }, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]);\n  const refs = React.useMemo(() => ({\n    reference: referenceRef,\n    floating: floatingRef,\n    setReference,\n    setFloating\n  }), [setReference, setFloating]);\n  const elements = React.useMemo(() => ({\n    reference: referenceEl,\n    floating: floatingEl\n  }), [referenceEl, floatingEl]);\n  const floatingStyles = React.useMemo(() => {\n    const initialStyles = {\n      position: strategy,\n      left: 0,\n      top: 0\n    };\n    if (!elements.floating) {\n      return initialStyles;\n    }\n    const x = roundByDPR(elements.floating, data.x);\n    const y = roundByDPR(elements.floating, data.y);\n    if (transform) {\n      return {\n        ...initialStyles,\n        transform: \"translate(\" + x + \"px, \" + y + \"px)\",\n        ...(getDPR(elements.floating) >= 1.5 && {\n          willChange: 'transform'\n        })\n      };\n    }\n    return {\n      position: strategy,\n      left: x,\n      top: y\n    };\n  }, [strategy, transform, elements.floating, data.x, data.y]);\n  return React.useMemo(() => ({\n    ...data,\n    update,\n    refs,\n    elements,\n    floatingStyles\n  }), [data, update, refs, elements, floatingStyles]);\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow$1 = options => {\n  function isRef(value) {\n    return {}.hasOwnProperty.call(value, 'current');\n  }\n  return {\n    name: 'arrow',\n    options,\n    fn(state) {\n      const {\n        element,\n        padding\n      } = typeof options === 'function' ? options(state) : options;\n      if (element && isRef(element)) {\n        if (element.current != null) {\n          return arrow$2({\n            element: element.current,\n            padding\n          }).fn(state);\n        }\n        return {};\n      }\n      if (element) {\n        return arrow$2({\n          element,\n          padding\n        }).fn(state);\n      }\n      return {};\n    }\n  };\n};\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = (options, deps) => ({\n  ...offset$1(options),\n  options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = (options, deps) => ({\n  ...shift$1(options),\n  options: [options, deps]\n});\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = (options, deps) => ({\n  ...limitShift$1(options),\n  options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = (options, deps) => ({\n  ...flip$1(options),\n  options: [options, deps]\n});\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = (options, deps) => ({\n  ...size$1(options),\n  options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = (options, deps) => ({\n  ...autoPlacement$1(options),\n  options: [options, deps]\n});\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = (options, deps) => ({\n  ...hide$1(options),\n  options: [options, deps]\n});\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = (options, deps) => ({\n  ...inline$1(options),\n  options: [options, deps]\n});\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = (options, deps) => ({\n  ...arrow$1(options),\n  options: [options, deps]\n});\n\nexport { arrow, autoPlacement, flip, hide, inline, limitShift, offset, shift, size, useFloating };\n","import { platform, getOverflowAncestors, useFloating as useFloating$1, offset, detectOverflow } from '@floating-ui/react-dom';\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/react-dom';\nimport * as React from 'react';\nimport { useLayoutEffect, useEffect, useRef } from 'react';\nimport { supportsInert, hideOthers, suppressOthers } from 'aria-hidden';\nimport { tabbable } from 'tabbable';\nimport { createPortal, flushSync } from 'react-dom';\n\nfunction _extends() {\n  _extends = Object.assign ? Object.assign.bind() : function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  };\n  return _extends.apply(this, arguments);\n}\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\nlet serverHandoffComplete = false;\nlet count = 0;\nconst genId = () => \"floating-ui-\" + count++;\nfunction useFloatingId() {\n  const [id, setId] = React.useState(() => serverHandoffComplete ? genId() : undefined);\n  index(() => {\n    if (id == null) {\n      setId(genId());\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, []);\n  React.useEffect(() => {\n    if (!serverHandoffComplete) {\n      serverHandoffComplete = true;\n    }\n  }, []);\n  return id;\n}\n\n// `toString()` prevents bundlers from trying to `import { useId } from 'react'`\nconst useReactId = React[/*#__PURE__*/'useId'.toString()];\n\n/**\n * Uses React 18's built-in `useId()` when available, or falls back to a\n * slightly less performant (requiring a double render) implementation for\n * earlier React versions.\n * @see https://floating-ui.com/docs/useId\n */\nconst useId = useReactId || useFloatingId;\n\n/**\n * Renders a pointing arrow triangle.\n * @see https://floating-ui.com/docs/FloatingArrow\n */\nconst FloatingArrow = /*#__PURE__*/React.forwardRef(function FloatingArrow(_ref, ref) {\n  let {\n    context: {\n      placement,\n      elements: {\n        floating\n      },\n      middlewareData: {\n        arrow\n      }\n    },\n    width = 14,\n    height = 7,\n    tipRadius = 0,\n    strokeWidth = 0,\n    staticOffset,\n    stroke,\n    d,\n    style: {\n      transform,\n      ...restStyle\n    } = {},\n    ...rest\n  } = _ref;\n  if (process.env.NODE_ENV !== \"production\") {\n    if (!ref) {\n      console.warn('Floating UI: The `ref` prop is required for the `FloatingArrow`', 'component.');\n    }\n  }\n  const clipPathId = useId();\n  if (!floating) {\n    return null;\n  }\n\n  // Strokes must be double the border width, this ensures the stroke's width\n  // works as you'd expect.\n  strokeWidth *= 2;\n  const halfStrokeWidth = strokeWidth / 2;\n  const svgX = width / 2 * (tipRadius / -8 + 1);\n  const svgY = height / 2 * tipRadius / 4;\n  const [side, alignment] = placement.split('-');\n  const isRTL = platform.isRTL(floating);\n  const isCustomShape = !!d;\n  const isVerticalSide = side === 'top' || side === 'bottom';\n  const yOffsetProp = staticOffset && alignment === 'end' ? 'bottom' : 'top';\n  let xOffsetProp = staticOffset && alignment === 'end' ? 'right' : 'left';\n  if (staticOffset && isRTL) {\n    xOffsetProp = alignment === 'end' ? 'left' : 'right';\n  }\n  const arrowX = (arrow == null ? void 0 : arrow.x) != null ? staticOffset || arrow.x : '';\n  const arrowY = (arrow == null ? void 0 : arrow.y) != null ? staticOffset || arrow.y : '';\n  const dValue = d || 'M0,0' + (\" H\" + width) + (\" L\" + (width - svgX) + \",\" + (height - svgY)) + (\" Q\" + width / 2 + \",\" + height + \" \" + svgX + \",\" + (height - svgY)) + ' Z';\n  const rotation = {\n    top: isCustomShape ? 'rotate(180deg)' : '',\n    left: isCustomShape ? 'rotate(90deg)' : 'rotate(-90deg)',\n    bottom: isCustomShape ? '' : 'rotate(180deg)',\n    right: isCustomShape ? 'rotate(-90deg)' : 'rotate(90deg)'\n  }[side];\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({}, rest, {\n    \"aria-hidden\": true,\n    ref: ref,\n    width: isCustomShape ? width : width + strokeWidth,\n    height: width,\n    viewBox: \"0 0 \" + width + \" \" + (height > width ? height : width),\n    style: {\n      position: 'absolute',\n      pointerEvents: 'none',\n      [xOffsetProp]: arrowX,\n      [yOffsetProp]: arrowY,\n      [side]: isVerticalSide || isCustomShape ? '100%' : \"calc(100% - \" + strokeWidth / 2 + \"px)\",\n      transform: \"\" + rotation + (transform != null ? transform : ''),\n      ...restStyle\n    }\n  }), strokeWidth > 0 && /*#__PURE__*/React.createElement(\"path\", {\n    clipPath: \"url(#\" + clipPathId + \")\",\n    fill: \"none\",\n    stroke: stroke\n    // Account for the stroke on the fill path rendered below.\n    ,\n    strokeWidth: strokeWidth + (d ? 0 : 1),\n    d: dValue\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    stroke: strokeWidth && !d ? rest.fill : 'none',\n    d: dValue\n  }), /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: clipPathId\n  }, /*#__PURE__*/React.createElement(\"rect\", {\n    x: -halfStrokeWidth,\n    y: halfStrokeWidth * (isCustomShape ? -1 : 1),\n    width: width + strokeWidth,\n    height: width\n  })));\n});\n\nfunction createPubSub() {\n  const map = new Map();\n  return {\n    emit(event, data) {\n      var _map$get;\n      (_map$get = map.get(event)) == null ? void 0 : _map$get.forEach(handler => handler(data));\n    },\n    on(event, listener) {\n      map.set(event, [...(map.get(event) || []), listener]);\n    },\n    off(event, listener) {\n      var _map$get2;\n      map.set(event, ((_map$get2 = map.get(event)) == null ? void 0 : _map$get2.filter(l => l !== listener)) || []);\n    }\n  };\n}\n\nconst FloatingNodeContext = /*#__PURE__*/React.createContext(null);\nconst FloatingTreeContext = /*#__PURE__*/React.createContext(null);\nconst useFloatingParentNodeId = () => {\n  var _React$useContext;\n  return ((_React$useContext = React.useContext(FloatingNodeContext)) == null ? void 0 : _React$useContext.id) || null;\n};\nconst useFloatingTree = () => React.useContext(FloatingTreeContext);\n\n/**\n * Registers a node into the floating tree, returning its id.\n */\nfunction useFloatingNodeId(customParentId) {\n  const id = useId();\n  const tree = useFloatingTree();\n  const reactParentId = useFloatingParentNodeId();\n  const parentId = customParentId || reactParentId;\n  index(() => {\n    const node = {\n      id,\n      parentId\n    };\n    tree == null ? void 0 : tree.addNode(node);\n    return () => {\n      tree == null ? void 0 : tree.removeNode(node);\n    };\n  }, [tree, id, parentId]);\n  return id;\n}\n\n/**\n * Provides parent node context for nested floating elements.\n * @see https://floating-ui.com/docs/FloatingTree\n */\nfunction FloatingNode(_ref) {\n  let {\n    children,\n    id\n  } = _ref;\n  const parentId = useFloatingParentNodeId();\n  return /*#__PURE__*/React.createElement(FloatingNodeContext.Provider, {\n    value: React.useMemo(() => ({\n      id,\n      parentId\n    }), [id, parentId])\n  }, children);\n}\n\n/**\n * Provides context for nested floating elements when they are not children of\n * each other on the DOM (i.e. portalled to a common node, rather than their\n * respective parent).\n * @see https://floating-ui.com/docs/FloatingTree\n */\nfunction FloatingTree(_ref2) {\n  let {\n    children\n  } = _ref2;\n  const nodesRef = React.useRef([]);\n  const addNode = React.useCallback(node => {\n    nodesRef.current = [...nodesRef.current, node];\n  }, []);\n  const removeNode = React.useCallback(node => {\n    nodesRef.current = nodesRef.current.filter(n => n !== node);\n  }, []);\n  const events = React.useState(() => createPubSub())[0];\n  return /*#__PURE__*/React.createElement(FloatingTreeContext.Provider, {\n    value: React.useMemo(() => ({\n      nodesRef,\n      addNode,\n      removeNode,\n      events\n    }), [nodesRef, addNode, removeNode, events])\n  }, children);\n}\n\nfunction getDocument(node) {\n  return (node == null ? void 0 : node.ownerDocument) || document;\n}\n\n// Avoid Chrome DevTools blue warning.\nfunction getPlatform() {\n  const uaData = navigator.userAgentData;\n  if (uaData != null && uaData.platform) {\n    return uaData.platform;\n  }\n  return navigator.platform;\n}\nfunction getUserAgent() {\n  const uaData = navigator.userAgentData;\n  if (uaData && Array.isArray(uaData.brands)) {\n    return uaData.brands.map(_ref => {\n      let {\n        brand,\n        version\n      } = _ref;\n      return brand + \"/\" + version;\n    }).join(' ');\n  }\n  return navigator.userAgent;\n}\n\nfunction getWindow(value) {\n  return getDocument(value).defaultView || window;\n}\nfunction isElement(value) {\n  return value ? value instanceof Element || value instanceof getWindow(value).Element : false;\n}\nfunction isHTMLElement(value) {\n  return value ? value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement : false;\n}\nfunction isShadowRoot(node) {\n  // Browsers without `ShadowRoot` support\n  if (typeof ShadowRoot === 'undefined') {\n    return false;\n  }\n  const OwnElement = getWindow(node).ShadowRoot;\n  return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\n// License: https://github.com/adobe/react-spectrum/blob/b35d5c02fe900badccd0cf1a8f23bb593419f238/packages/@react-aria/utils/src/isVirtualEvent.ts\nfunction isVirtualClick(event) {\n  if (event.mozInputSource === 0 && event.isTrusted) {\n    return true;\n  }\n  const androidRe = /Android/i;\n  if ((androidRe.test(getPlatform()) || androidRe.test(getUserAgent())) && event.pointerType) {\n    return event.type === 'click' && event.buttons === 1;\n  }\n  return event.detail === 0 && !event.pointerType;\n}\nfunction isVirtualPointerEvent(event) {\n  return event.width === 0 && event.height === 0 || event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType !== 'mouse' ||\n  // iOS VoiceOver returns 0.333• for width/height.\n  event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0;\n}\nfunction isSafari() {\n  // Chrome DevTools does not complain about navigator.vendor\n  return /apple/i.test(navigator.vendor);\n}\nfunction isMac() {\n  return getPlatform().toLowerCase().startsWith('mac') && !navigator.maxTouchPoints;\n}\nfunction isMouseLikePointerType(pointerType, strict) {\n  // On some Linux machines with Chromium, mouse inputs return a `pointerType`\n  // of \"pen\": https://github.com/floating-ui/floating-ui/issues/2015\n  const values = ['mouse', 'pen'];\n  if (!strict) {\n    values.push('', undefined);\n  }\n  return values.includes(pointerType);\n}\nfunction isReactEvent(event) {\n  return 'nativeEvent' in event;\n}\n\nfunction contains(parent, child) {\n  if (!parent || !child) {\n    return false;\n  }\n  const rootNode = child.getRootNode && child.getRootNode();\n\n  // First, attempt with faster native method\n  if (parent.contains(child)) {\n    return true;\n  }\n\n  // then fallback to custom implementation with Shadow DOM support\n  if (rootNode && isShadowRoot(rootNode)) {\n    let next = child;\n    while (next) {\n      if (parent === next) {\n        return true;\n      }\n      // @ts-ignore\n      next = next.parentNode || next.host;\n    }\n  }\n\n  // Give up, the result is false\n  return false;\n}\n\nfunction createAttribute(name) {\n  return \"data-floating-ui-\" + name;\n}\n\nfunction useLatestRef(value) {\n  const ref = useRef(value);\n  index(() => {\n    ref.current = value;\n  });\n  return ref;\n}\n\nconst safePolygonIdentifier = /*#__PURE__*/createAttribute('safe-polygon');\nfunction getDelay(value, prop, pointerType) {\n  if (pointerType && !isMouseLikePointerType(pointerType)) {\n    return 0;\n  }\n  if (typeof value === 'number') {\n    return value;\n  }\n  return value == null ? void 0 : value[prop];\n}\n/**\n * Opens the floating element while hovering over the reference element, like\n * CSS `:hover`.\n * @see https://floating-ui.com/docs/useHover\n */\nfunction useHover(context, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    onOpenChange,\n    dataRef,\n    events,\n    elements: {\n      domReference,\n      floating\n    },\n    refs\n  } = context;\n  const {\n    enabled = true,\n    delay = 0,\n    handleClose = null,\n    mouseOnly = false,\n    restMs = 0,\n    move = true\n  } = props;\n  const tree = useFloatingTree();\n  const parentId = useFloatingParentNodeId();\n  const handleCloseRef = useLatestRef(handleClose);\n  const delayRef = useLatestRef(delay);\n  const pointerTypeRef = React.useRef();\n  const timeoutRef = React.useRef();\n  const handlerRef = React.useRef();\n  const restTimeoutRef = React.useRef();\n  const blockMouseMoveRef = React.useRef(true);\n  const performedPointerEventsMutationRef = React.useRef(false);\n  const unbindMouseMoveRef = React.useRef(() => {});\n  const isHoverOpen = React.useCallback(() => {\n    var _dataRef$current$open;\n    const type = (_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type;\n    return (type == null ? void 0 : type.includes('mouse')) && type !== 'mousedown';\n  }, [dataRef]);\n\n  // When dismissing before opening, clear the delay timeouts to cancel it\n  // from showing.\n  React.useEffect(() => {\n    if (!enabled) {\n      return;\n    }\n    function onDismiss() {\n      clearTimeout(timeoutRef.current);\n      clearTimeout(restTimeoutRef.current);\n      blockMouseMoveRef.current = true;\n    }\n    events.on('dismiss', onDismiss);\n    return () => {\n      events.off('dismiss', onDismiss);\n    };\n  }, [enabled, events]);\n  React.useEffect(() => {\n    if (!enabled || !handleCloseRef.current || !open) {\n      return;\n    }\n    function onLeave(event) {\n      if (isHoverOpen()) {\n        onOpenChange(false, event);\n      }\n    }\n    const html = getDocument(floating).documentElement;\n    html.addEventListener('mouseleave', onLeave);\n    return () => {\n      html.removeEventListener('mouseleave', onLeave);\n    };\n  }, [floating, open, onOpenChange, enabled, handleCloseRef, dataRef, isHoverOpen]);\n  const closeWithDelay = React.useCallback(function (event, runElseBranch) {\n    if (runElseBranch === void 0) {\n      runElseBranch = true;\n    }\n    const closeDelay = getDelay(delayRef.current, 'close', pointerTypeRef.current);\n    if (closeDelay && !handlerRef.current) {\n      clearTimeout(timeoutRef.current);\n      timeoutRef.current = setTimeout(() => onOpenChange(false, event), closeDelay);\n    } else if (runElseBranch) {\n      clearTimeout(timeoutRef.current);\n      onOpenChange(false, event);\n    }\n  }, [delayRef, onOpenChange]);\n  const cleanupMouseMoveHandler = React.useCallback(() => {\n    unbindMouseMoveRef.current();\n    handlerRef.current = undefined;\n  }, []);\n  const clearPointerEvents = React.useCallback(() => {\n    if (performedPointerEventsMutationRef.current) {\n      const body = getDocument(refs.floating.current).body;\n      body.style.pointerEvents = '';\n      body.removeAttribute(safePolygonIdentifier);\n      performedPointerEventsMutationRef.current = false;\n    }\n  }, [refs]);\n\n  // Registering the mouse events on the reference directly to bypass React's\n  // delegation system. If the cursor was on a disabled element and then entered\n  // the reference (no gap), `mouseenter` doesn't fire in the delegation system.\n  React.useEffect(() => {\n    if (!enabled) {\n      return;\n    }\n    function isClickLikeOpenEvent() {\n      return dataRef.current.openEvent ? ['click', 'mousedown'].includes(dataRef.current.openEvent.type) : false;\n    }\n    function onMouseEnter(event) {\n      clearTimeout(timeoutRef.current);\n      blockMouseMoveRef.current = false;\n      if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current) || restMs > 0 && getDelay(delayRef.current, 'open') === 0) {\n        return;\n      }\n      const openDelay = getDelay(delayRef.current, 'open', pointerTypeRef.current);\n      if (openDelay) {\n        timeoutRef.current = setTimeout(() => {\n          onOpenChange(true, event);\n        }, openDelay);\n      } else {\n        onOpenChange(true, event);\n      }\n    }\n    function onMouseLeave(event) {\n      if (isClickLikeOpenEvent()) {\n        return;\n      }\n      unbindMouseMoveRef.current();\n      const doc = getDocument(floating);\n      clearTimeout(restTimeoutRef.current);\n      if (handleCloseRef.current) {\n        // Prevent clearing `onScrollMouseLeave` timeout.\n        if (!open) {\n          clearTimeout(timeoutRef.current);\n        }\n        handlerRef.current = handleCloseRef.current({\n          ...context,\n          tree,\n          x: event.clientX,\n          y: event.clientY,\n          onClose() {\n            clearPointerEvents();\n            cleanupMouseMoveHandler();\n            // Should the event expose that it was closed by `safePolygon`?\n            closeWithDelay(event);\n          }\n        });\n        const handler = handlerRef.current;\n        doc.addEventListener('mousemove', handler);\n        unbindMouseMoveRef.current = () => {\n          doc.removeEventListener('mousemove', handler);\n        };\n        return;\n      }\n\n      // Allow interactivity without `safePolygon` on touch devices. With a\n      // pointer, a short close delay is an alternative, so it should work\n      // consistently.\n      const shouldClose = pointerTypeRef.current === 'touch' ? !contains(floating, event.relatedTarget) : true;\n      if (shouldClose) {\n        closeWithDelay(event);\n      }\n    }\n\n    // Ensure the floating element closes after scrolling even if the pointer\n    // did not move.\n    // https://github.com/floating-ui/floating-ui/discussions/1692\n    function onScrollMouseLeave(event) {\n      if (isClickLikeOpenEvent()) {\n        return;\n      }\n      handleCloseRef.current == null ? void 0 : handleCloseRef.current({\n        ...context,\n        tree,\n        x: event.clientX,\n        y: event.clientY,\n        onClose() {\n          clearPointerEvents();\n          cleanupMouseMoveHandler();\n          closeWithDelay(event);\n        }\n      })(event);\n    }\n    if (isElement(domReference)) {\n      const ref = domReference;\n      open && ref.addEventListener('mouseleave', onScrollMouseLeave);\n      floating == null ? void 0 : floating.addEventListener('mouseleave', onScrollMouseLeave);\n      move && ref.addEventListener('mousemove', onMouseEnter, {\n        once: true\n      });\n      ref.addEventListener('mouseenter', onMouseEnter);\n      ref.addEventListener('mouseleave', onMouseLeave);\n      return () => {\n        open && ref.removeEventListener('mouseleave', onScrollMouseLeave);\n        floating == null ? void 0 : floating.removeEventListener('mouseleave', onScrollMouseLeave);\n        move && ref.removeEventListener('mousemove', onMouseEnter);\n        ref.removeEventListener('mouseenter', onMouseEnter);\n        ref.removeEventListener('mouseleave', onMouseLeave);\n      };\n    }\n  }, [domReference, floating, enabled, context, mouseOnly, restMs, move, closeWithDelay, cleanupMouseMoveHandler, clearPointerEvents, onOpenChange, open, tree, delayRef, handleCloseRef, dataRef]);\n\n  // Block pointer-events of every element other than the reference and floating\n  // while the floating element is open and has a `handleClose` handler. Also\n  // handles nested floating elements.\n  // https://github.com/floating-ui/floating-ui/issues/1722\n  index(() => {\n    var _handleCloseRef$curre;\n    if (!enabled) {\n      return;\n    }\n    if (open && (_handleCloseRef$curre = handleCloseRef.current) != null && _handleCloseRef$curre.__options.blockPointerEvents && isHoverOpen()) {\n      const body = getDocument(floating).body;\n      body.setAttribute(safePolygonIdentifier, '');\n      body.style.pointerEvents = 'none';\n      performedPointerEventsMutationRef.current = true;\n      if (isElement(domReference) && floating) {\n        var _tree$nodesRef$curren, _tree$nodesRef$curren2;\n        const ref = domReference;\n        const parentFloating = tree == null ? void 0 : (_tree$nodesRef$curren = tree.nodesRef.current.find(node => node.id === parentId)) == null ? void 0 : (_tree$nodesRef$curren2 = _tree$nodesRef$curren.context) == null ? void 0 : _tree$nodesRef$curren2.elements.floating;\n        if (parentFloating) {\n          parentFloating.style.pointerEvents = '';\n        }\n        ref.style.pointerEvents = 'auto';\n        floating.style.pointerEvents = 'auto';\n        return () => {\n          ref.style.pointerEvents = '';\n          floating.style.pointerEvents = '';\n        };\n      }\n    }\n  }, [enabled, open, parentId, floating, domReference, tree, handleCloseRef, dataRef, isHoverOpen]);\n  index(() => {\n    if (!open) {\n      pointerTypeRef.current = undefined;\n      cleanupMouseMoveHandler();\n      clearPointerEvents();\n    }\n  }, [open, cleanupMouseMoveHandler, clearPointerEvents]);\n  React.useEffect(() => {\n    return () => {\n      cleanupMouseMoveHandler();\n      clearTimeout(timeoutRef.current);\n      clearTimeout(restTimeoutRef.current);\n      clearPointerEvents();\n    };\n  }, [enabled, cleanupMouseMoveHandler, clearPointerEvents]);\n  return React.useMemo(() => {\n    if (!enabled) {\n      return {};\n    }\n    function setPointerRef(event) {\n      pointerTypeRef.current = event.pointerType;\n    }\n    return {\n      reference: {\n        onPointerDown: setPointerRef,\n        onPointerEnter: setPointerRef,\n        onMouseMove(event) {\n          if (open || restMs === 0) {\n            return;\n          }\n          clearTimeout(restTimeoutRef.current);\n          restTimeoutRef.current = setTimeout(() => {\n            if (!blockMouseMoveRef.current) {\n              onOpenChange(true, event.nativeEvent);\n            }\n          }, restMs);\n        }\n      },\n      floating: {\n        onMouseEnter() {\n          clearTimeout(timeoutRef.current);\n        },\n        onMouseLeave(event) {\n          events.emit('dismiss', {\n            type: 'mouseLeave',\n            data: {\n              returnFocus: false\n            }\n          });\n          closeWithDelay(event.nativeEvent, false);\n        }\n      }\n    };\n  }, [events, enabled, restMs, open, onOpenChange, closeWithDelay]);\n}\n\nconst FloatingDelayGroupContext = /*#__PURE__*/React.createContext({\n  delay: 0,\n  initialDelay: 0,\n  timeoutMs: 0,\n  currentId: null,\n  setCurrentId: () => {},\n  setState: () => {},\n  isInstantPhase: false\n});\nconst useDelayGroupContext = () => React.useContext(FloatingDelayGroupContext);\n/**\n * Provides context for a group of floating elements that should share a\n * `delay`.\n * @see https://floating-ui.com/docs/FloatingDelayGroup\n */\nconst FloatingDelayGroup = _ref => {\n  let {\n    children,\n    delay,\n    timeoutMs = 0\n  } = _ref;\n  const [state, setState] = React.useReducer((prev, next) => ({\n    ...prev,\n    ...next\n  }), {\n    delay,\n    timeoutMs,\n    initialDelay: delay,\n    currentId: null,\n    isInstantPhase: false\n  });\n  const initialCurrentIdRef = React.useRef(null);\n  const setCurrentId = React.useCallback(currentId => {\n    setState({\n      currentId\n    });\n  }, []);\n  index(() => {\n    if (state.currentId) {\n      if (initialCurrentIdRef.current === null) {\n        initialCurrentIdRef.current = state.currentId;\n      } else {\n        setState({\n          isInstantPhase: true\n        });\n      }\n    } else {\n      setState({\n        isInstantPhase: false\n      });\n      initialCurrentIdRef.current = null;\n    }\n  }, [state.currentId]);\n  return /*#__PURE__*/React.createElement(FloatingDelayGroupContext.Provider, {\n    value: React.useMemo(() => ({\n      ...state,\n      setState,\n      setCurrentId\n    }), [state, setState, setCurrentId])\n  }, children);\n};\nconst useDelayGroup = (_ref2, _ref3) => {\n  let {\n    open,\n    onOpenChange\n  } = _ref2;\n  let {\n    id\n  } = _ref3;\n  const {\n    currentId,\n    setCurrentId,\n    initialDelay,\n    setState,\n    timeoutMs\n  } = useDelayGroupContext();\n  index(() => {\n    if (currentId) {\n      setState({\n        delay: {\n          open: 1,\n          close: getDelay(initialDelay, 'close')\n        }\n      });\n      if (currentId !== id) {\n        onOpenChange(false);\n      }\n    }\n  }, [id, onOpenChange, setState, currentId, initialDelay]);\n  index(() => {\n    function unset() {\n      onOpenChange(false);\n      setState({\n        delay: initialDelay,\n        currentId: null\n      });\n    }\n    if (!open && currentId === id) {\n      if (timeoutMs) {\n        const timeout = window.setTimeout(unset, timeoutMs);\n        return () => {\n          clearTimeout(timeout);\n        };\n      } else {\n        unset();\n      }\n    }\n  }, [open, setState, currentId, id, onOpenChange, initialDelay, timeoutMs]);\n  index(() => {\n    if (open) {\n      setCurrentId(id);\n    }\n  }, [open, setCurrentId, id]);\n};\n\n/**\n * Find the real active element. Traverses into shadowRoots.\n */\nfunction activeElement(doc) {\n  let activeElement = doc.activeElement;\n  while (((_activeElement = activeElement) == null ? void 0 : (_activeElement$shadow = _activeElement.shadowRoot) == null ? void 0 : _activeElement$shadow.activeElement) != null) {\n    var _activeElement, _activeElement$shadow;\n    activeElement = activeElement.shadowRoot.activeElement;\n  }\n  return activeElement;\n}\n\nlet rafId = 0;\nfunction enqueueFocus(el, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    preventScroll = false,\n    cancelPrevious = true,\n    sync = false\n  } = options;\n  cancelPrevious && cancelAnimationFrame(rafId);\n  const exec = () => el == null ? void 0 : el.focus({\n    preventScroll\n  });\n  if (sync) {\n    exec();\n  } else {\n    rafId = requestAnimationFrame(exec);\n  }\n}\n\nfunction getAncestors(nodes, id) {\n  var _nodes$find;\n  let allAncestors = [];\n  let currentParentId = (_nodes$find = nodes.find(node => node.id === id)) == null ? void 0 : _nodes$find.parentId;\n  while (currentParentId) {\n    const currentNode = nodes.find(node => node.id === currentParentId);\n    currentParentId = currentNode == null ? void 0 : currentNode.parentId;\n    if (currentNode) {\n      allAncestors = allAncestors.concat(currentNode);\n    }\n  }\n  return allAncestors;\n}\n\nfunction getChildren(nodes, id) {\n  let allChildren = nodes.filter(node => {\n    var _node$context;\n    return node.parentId === id && ((_node$context = node.context) == null ? void 0 : _node$context.open);\n  });\n  let currentChildren = allChildren;\n  while (currentChildren.length) {\n    currentChildren = nodes.filter(node => {\n      var _currentChildren;\n      return (_currentChildren = currentChildren) == null ? void 0 : _currentChildren.some(n => {\n        var _node$context2;\n        return node.parentId === n.id && ((_node$context2 = node.context) == null ? void 0 : _node$context2.open);\n      });\n    });\n    allChildren = allChildren.concat(currentChildren);\n  }\n  return allChildren;\n}\n\nfunction getTarget(event) {\n  if ('composedPath' in event) {\n    return event.composedPath()[0];\n  }\n\n  // TS thinks `event` is of type never as it assumes all browsers support\n  // `composedPath()`, but browsers without shadow DOM don't.\n  return event.target;\n}\n\nconst TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),\" + \"[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nfunction isTypeableElement(element) {\n  return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\n\nfunction stopEvent(event) {\n  event.preventDefault();\n  event.stopPropagation();\n}\n\nconst getTabbableOptions = () => ({\n  getShadowRoot: true,\n  displayCheck:\n  // JSDOM does not support the `tabbable` library. To solve this we can\n  // check if `ResizeObserver` is a real function (not polyfilled), which\n  // determines if the current environment is JSDOM-like.\n  typeof ResizeObserver === 'function' && ResizeObserver.toString().includes('[native code]') ? 'full' : 'none'\n});\nfunction getTabbableIn(container, direction) {\n  const allTabbable = tabbable(container, getTabbableOptions());\n  if (direction === 'prev') {\n    allTabbable.reverse();\n  }\n  const activeIndex = allTabbable.indexOf(activeElement(getDocument(container)));\n  const nextTabbableElements = allTabbable.slice(activeIndex + 1);\n  return nextTabbableElements[0];\n}\nfunction getNextTabbable() {\n  return getTabbableIn(document.body, 'next');\n}\nfunction getPreviousTabbable() {\n  return getTabbableIn(document.body, 'prev');\n}\nfunction isOutsideEvent(event, container) {\n  const containerElement = container || event.currentTarget;\n  const relatedTarget = event.relatedTarget;\n  return !relatedTarget || !contains(containerElement, relatedTarget);\n}\nfunction disableFocusInside(container) {\n  const tabbableElements = tabbable(container, getTabbableOptions());\n  tabbableElements.forEach(element => {\n    element.dataset.tabindex = element.getAttribute('tabindex') || '';\n    element.setAttribute('tabindex', '-1');\n  });\n}\nfunction enableFocusInside(container) {\n  const elements = container.querySelectorAll('[data-tabindex]');\n  elements.forEach(element => {\n    const tabindex = element.dataset.tabindex;\n    delete element.dataset.tabindex;\n    if (tabindex) {\n      element.setAttribute('tabindex', tabindex);\n    } else {\n      element.removeAttribute('tabindex');\n    }\n  });\n}\n\n// See Diego Haz's Sandbox for making this logic work well on Safari/iOS:\n// https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/FocusTrap.tsx\n\nconst HIDDEN_STYLES = {\n  border: 0,\n  clip: 'rect(0 0 0 0)',\n  height: '1px',\n  margin: '-1px',\n  overflow: 'hidden',\n  padding: 0,\n  position: 'fixed',\n  whiteSpace: 'nowrap',\n  width: '1px',\n  top: 0,\n  left: 0\n};\nlet timeoutId;\nfunction setActiveElementOnTab(event) {\n  if (event.key === 'Tab') {\n    event.target;\n    clearTimeout(timeoutId);\n  }\n}\nconst FocusGuard = /*#__PURE__*/React.forwardRef(function FocusGuard(props, ref) {\n  const [role, setRole] = React.useState();\n  index(() => {\n    if (isSafari()) {\n      // Unlike other screen readers such as NVDA and JAWS, the virtual cursor\n      // on VoiceOver does trigger the onFocus event, so we can use the focus\n      // trap element. On Safari, only buttons trigger the onFocus event.\n      // NB: \"group\" role in the Sandbox no longer appears to work, must be a\n      // button role.\n      setRole('button');\n    }\n    document.addEventListener('keydown', setActiveElementOnTab);\n    return () => {\n      document.removeEventListener('keydown', setActiveElementOnTab);\n    };\n  }, []);\n  const restProps = {\n    ref,\n    tabIndex: 0,\n    // Role is only for VoiceOver\n    role,\n    'aria-hidden': role ? undefined : true,\n    [createAttribute('focus-guard')]: '',\n    style: HIDDEN_STYLES\n  };\n  return /*#__PURE__*/React.createElement(\"span\", _extends({}, props, restProps));\n});\n\nconst PortalContext = /*#__PURE__*/React.createContext(null);\nfunction useFloatingPortalNode(_temp) {\n  let {\n    id,\n    root\n  } = _temp === void 0 ? {} : _temp;\n  const [portalNode, setPortalNode] = React.useState(null);\n  const uniqueId = useId();\n  const portalContext = usePortalContext();\n  const data = React.useMemo(() => ({\n    id,\n    root,\n    portalContext,\n    uniqueId\n  }), [id, root, portalContext, uniqueId]);\n  const dataRef = React.useRef();\n  index(() => {\n    return () => {\n      portalNode == null ? void 0 : portalNode.remove();\n    };\n  }, [portalNode, data]);\n  index(() => {\n    if (dataRef.current === data) return;\n    dataRef.current = data;\n    const {\n      id,\n      root,\n      portalContext,\n      uniqueId\n    } = data;\n    const existingIdRoot = id ? document.getElementById(id) : null;\n    const attr = createAttribute('portal');\n    if (existingIdRoot) {\n      const subRoot = document.createElement('div');\n      subRoot.id = uniqueId;\n      subRoot.setAttribute(attr, '');\n      existingIdRoot.appendChild(subRoot);\n      setPortalNode(subRoot);\n    } else {\n      let container = root || (portalContext == null ? void 0 : portalContext.portalNode);\n      if (container && !isElement(container)) container = container.current;\n      container = container || document.body;\n      let idWrapper = null;\n      if (id) {\n        idWrapper = document.createElement('div');\n        idWrapper.id = id;\n        container.appendChild(idWrapper);\n      }\n      const subRoot = document.createElement('div');\n      subRoot.id = uniqueId;\n      subRoot.setAttribute(attr, '');\n      container = idWrapper || container;\n      container.appendChild(subRoot);\n      setPortalNode(subRoot);\n    }\n  }, [data]);\n  return portalNode;\n}\n/**\n * Portals the floating element into a given container element — by default,\n * outside of the app root and into the body.\n * @see https://floating-ui.com/docs/FloatingPortal\n */\nfunction FloatingPortal(_ref) {\n  let {\n    children,\n    id,\n    root = null,\n    preserveTabOrder = true\n  } = _ref;\n  const portalNode = useFloatingPortalNode({\n    id,\n    root\n  });\n  const [focusManagerState, setFocusManagerState] = React.useState(null);\n  const beforeOutsideRef = React.useRef(null);\n  const afterOutsideRef = React.useRef(null);\n  const beforeInsideRef = React.useRef(null);\n  const afterInsideRef = React.useRef(null);\n  const shouldRenderGuards =\n  // The FocusManager and therefore floating element are currently open/\n  // rendered.\n  !!focusManagerState &&\n  // Guards are only for non-modal focus management.\n  !focusManagerState.modal &&\n  // Don't render if unmount is transitioning.\n  focusManagerState.open && preserveTabOrder && !!(root || portalNode);\n\n  // https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/TabbablePortal.tsx\n  React.useEffect(() => {\n    if (!portalNode || !preserveTabOrder || focusManagerState != null && focusManagerState.modal) {\n      return;\n    }\n\n    // Make sure elements inside the portal element are tabbable only when the\n    // portal has already been focused, either by tabbing into a focus trap\n    // element outside or using the mouse.\n    function onFocus(event) {\n      if (portalNode && isOutsideEvent(event)) {\n        const focusing = event.type === 'focusin';\n        const manageFocus = focusing ? enableFocusInside : disableFocusInside;\n        manageFocus(portalNode);\n      }\n    }\n    // Listen to the event on the capture phase so they run before the focus\n    // trap elements onFocus prop is called.\n    portalNode.addEventListener('focusin', onFocus, true);\n    portalNode.addEventListener('focusout', onFocus, true);\n    return () => {\n      portalNode.removeEventListener('focusin', onFocus, true);\n      portalNode.removeEventListener('focusout', onFocus, true);\n    };\n  }, [portalNode, preserveTabOrder, focusManagerState == null ? void 0 : focusManagerState.modal]);\n  return /*#__PURE__*/React.createElement(PortalContext.Provider, {\n    value: React.useMemo(() => ({\n      preserveTabOrder,\n      beforeOutsideRef,\n      afterOutsideRef,\n      beforeInsideRef,\n      afterInsideRef,\n      portalNode,\n      setFocusManagerState\n    }), [preserveTabOrder, portalNode])\n  }, shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n    \"data-type\": \"outside\",\n    ref: beforeOutsideRef,\n    onFocus: event => {\n      if (isOutsideEvent(event, portalNode)) {\n        var _beforeInsideRef$curr;\n        (_beforeInsideRef$curr = beforeInsideRef.current) == null ? void 0 : _beforeInsideRef$curr.focus();\n      } else {\n        const prevTabbable = getPreviousTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n        prevTabbable == null ? void 0 : prevTabbable.focus();\n      }\n    }\n  }), shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(\"span\", {\n    \"aria-owns\": portalNode.id,\n    style: HIDDEN_STYLES\n  }), portalNode && /*#__PURE__*/createPortal(children, portalNode), shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n    \"data-type\": \"outside\",\n    ref: afterOutsideRef,\n    onFocus: event => {\n      if (isOutsideEvent(event, portalNode)) {\n        var _afterInsideRef$curre;\n        (_afterInsideRef$curre = afterInsideRef.current) == null ? void 0 : _afterInsideRef$curre.focus();\n      } else {\n        const nextTabbable = getNextTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n        nextTabbable == null ? void 0 : nextTabbable.focus();\n        (focusManagerState == null ? void 0 : focusManagerState.closeOnFocusOut) && (focusManagerState == null ? void 0 : focusManagerState.onOpenChange(false, event.nativeEvent));\n      }\n    }\n  }));\n}\nconst usePortalContext = () => React.useContext(PortalContext);\n\nconst VisuallyHiddenDismiss = /*#__PURE__*/React.forwardRef(function VisuallyHiddenDismiss(props, ref) {\n  return /*#__PURE__*/React.createElement(\"button\", _extends({}, props, {\n    type: \"button\",\n    ref: ref,\n    tabIndex: -1,\n    style: HIDDEN_STYLES\n  }));\n});\n/**\n * Provides focus management for the floating element.\n * @see https://floating-ui.com/docs/FloatingFocusManager\n */\nfunction FloatingFocusManager(props) {\n  const {\n    context,\n    children,\n    disabled = false,\n    order = ['content'],\n    guards: _guards = true,\n    initialFocus = 0,\n    returnFocus = true,\n    modal = true,\n    visuallyHiddenDismiss = false,\n    closeOnFocusOut = true\n  } = props;\n  const {\n    open,\n    refs,\n    nodeId,\n    onOpenChange,\n    events,\n    dataRef,\n    elements: {\n      domReference,\n      floating\n    }\n  } = context;\n\n  // Force the guards to be rendered if the `inert` attribute is not supported.\n  const guards = supportsInert() ? _guards : true;\n  const orderRef = useLatestRef(order);\n  const initialFocusRef = useLatestRef(initialFocus);\n  const returnFocusRef = useLatestRef(returnFocus);\n  const tree = useFloatingTree();\n  const portalContext = usePortalContext();\n\n  // Controlled by `useListNavigation`.\n  const ignoreInitialFocus = typeof initialFocus === 'number' && initialFocus < 0;\n  const startDismissButtonRef = React.useRef(null);\n  const endDismissButtonRef = React.useRef(null);\n  const preventReturnFocusRef = React.useRef(false);\n  const previouslyFocusedElementRef = React.useRef(null);\n  const isPointerDownRef = React.useRef(false);\n  const isInsidePortal = portalContext != null;\n\n  // If the reference is a combobox and is typeable (e.g. input/textarea),\n  // there are different focus semantics. The guards should not be rendered, but\n  // aria-hidden should be applied to all nodes still. Further, the visually\n  // hidden dismiss button should only appear at the end of the list, not the\n  // start.\n  const isTypeableCombobox = domReference && domReference.getAttribute('role') === 'combobox' && isTypeableElement(domReference);\n  const getTabbableContent = React.useCallback(function (container) {\n    if (container === void 0) {\n      container = floating;\n    }\n    return container ? tabbable(container, getTabbableOptions()) : [];\n  }, [floating]);\n  const getTabbableElements = React.useCallback(container => {\n    const content = getTabbableContent(container);\n    return orderRef.current.map(type => {\n      if (domReference && type === 'reference') {\n        return domReference;\n      }\n      if (floating && type === 'floating') {\n        return floating;\n      }\n      return content;\n    }).filter(Boolean).flat();\n  }, [domReference, floating, orderRef, getTabbableContent]);\n  React.useEffect(() => {\n    if (disabled || !modal) return;\n    function onKeyDown(event) {\n      if (event.key === 'Tab') {\n        // The focus guards have nothing to focus, so we need to stop the event.\n        if (contains(floating, activeElement(getDocument(floating))) && getTabbableContent().length === 0 && !isTypeableCombobox) {\n          stopEvent(event);\n        }\n        const els = getTabbableElements();\n        const target = getTarget(event);\n        if (orderRef.current[0] === 'reference' && target === domReference) {\n          stopEvent(event);\n          if (event.shiftKey) {\n            enqueueFocus(els[els.length - 1]);\n          } else {\n            enqueueFocus(els[1]);\n          }\n        }\n        if (orderRef.current[1] === 'floating' && target === floating && event.shiftKey) {\n          stopEvent(event);\n          enqueueFocus(els[0]);\n        }\n      }\n    }\n    const doc = getDocument(floating);\n    doc.addEventListener('keydown', onKeyDown);\n    return () => {\n      doc.removeEventListener('keydown', onKeyDown);\n    };\n  }, [disabled, domReference, floating, modal, orderRef, refs, isTypeableCombobox, getTabbableContent, getTabbableElements]);\n  React.useEffect(() => {\n    if (disabled || !closeOnFocusOut) return;\n\n    // In Safari, buttons lose focus when pressing them.\n    function handlePointerDown() {\n      isPointerDownRef.current = true;\n      setTimeout(() => {\n        isPointerDownRef.current = false;\n      });\n    }\n    function handleFocusOutside(event) {\n      const relatedTarget = event.relatedTarget;\n      queueMicrotask(() => {\n        const movedToUnrelatedNode = !(contains(domReference, relatedTarget) || contains(floating, relatedTarget) || contains(relatedTarget, floating) || contains(portalContext == null ? void 0 : portalContext.portalNode, relatedTarget) || relatedTarget != null && relatedTarget.hasAttribute(createAttribute('focus-guard')) || tree && (getChildren(tree.nodesRef.current, nodeId).find(node => {\n          var _node$context, _node$context2;\n          return contains((_node$context = node.context) == null ? void 0 : _node$context.elements.floating, relatedTarget) || contains((_node$context2 = node.context) == null ? void 0 : _node$context2.elements.domReference, relatedTarget);\n        }) || getAncestors(tree.nodesRef.current, nodeId).find(node => {\n          var _node$context3, _node$context4;\n          return ((_node$context3 = node.context) == null ? void 0 : _node$context3.elements.floating) === relatedTarget || ((_node$context4 = node.context) == null ? void 0 : _node$context4.elements.domReference) === relatedTarget;\n        })));\n\n        // Focus did not move inside the floating tree, and there are no tabbable\n        // portal guards to handle closing.\n        if (relatedTarget && movedToUnrelatedNode && !isPointerDownRef.current &&\n        // Fix React 18 Strict Mode returnFocus due to double rendering.\n        relatedTarget !== previouslyFocusedElementRef.current) {\n          preventReturnFocusRef.current = true;\n          onOpenChange(false, event);\n        }\n      });\n    }\n    if (floating && isHTMLElement(domReference)) {\n      domReference.addEventListener('focusout', handleFocusOutside);\n      domReference.addEventListener('pointerdown', handlePointerDown);\n      !modal && floating.addEventListener('focusout', handleFocusOutside);\n      return () => {\n        domReference.removeEventListener('focusout', handleFocusOutside);\n        domReference.removeEventListener('pointerdown', handlePointerDown);\n        !modal && floating.removeEventListener('focusout', handleFocusOutside);\n      };\n    }\n  }, [disabled, domReference, floating, modal, nodeId, tree, portalContext, onOpenChange, closeOnFocusOut]);\n  React.useEffect(() => {\n    var _portalContext$portal;\n    if (disabled) return;\n\n    // Don't hide portals nested within the parent portal.\n    const portalNodes = Array.from((portalContext == null ? void 0 : (_portalContext$portal = portalContext.portalNode) == null ? void 0 : _portalContext$portal.querySelectorAll(\"[\" + createAttribute('portal') + \"]\")) || []);\n    if (floating && modal) {\n      const insideNodes = [floating, ...portalNodes, startDismissButtonRef.current, endDismissButtonRef.current].filter(x => x != null);\n      const suppressorFn = guards ? hideOthers : suppressOthers;\n      const cleanup = suppressorFn(orderRef.current.includes('reference') || isTypeableCombobox ? insideNodes.concat(domReference || []) : insideNodes, undefined, createAttribute('inert'));\n      return () => {\n        cleanup();\n      };\n    }\n  }, [disabled, domReference, floating, modal, orderRef, portalContext, isTypeableCombobox, guards]);\n  index(() => {\n    if (disabled || !floating) return;\n    const doc = getDocument(floating);\n    const previouslyFocusedElement = activeElement(doc);\n\n    // Wait for any layout effect state setters to execute to set `tabIndex`.\n    queueMicrotask(() => {\n      const focusableElements = getTabbableElements(floating);\n      const initialFocusValue = initialFocusRef.current;\n      const elToFocus = (typeof initialFocusValue === 'number' ? focusableElements[initialFocusValue] : initialFocusValue.current) || floating;\n      const focusAlreadyInsideFloatingEl = contains(floating, previouslyFocusedElement);\n      if (!ignoreInitialFocus && !focusAlreadyInsideFloatingEl && open) {\n        enqueueFocus(elToFocus, {\n          preventScroll: elToFocus === floating\n        });\n      }\n    });\n  }, [disabled, open, floating, ignoreInitialFocus, getTabbableElements, initialFocusRef]);\n  index(() => {\n    if (disabled || !floating) return;\n    let preventReturnFocusScroll = false;\n    const doc = getDocument(floating);\n    const previouslyFocusedElement = activeElement(doc);\n    const contextData = dataRef.current;\n    previouslyFocusedElementRef.current = previouslyFocusedElement;\n\n    // Dismissing via outside press should always ignore `returnFocus` to\n    // prevent unwanted scrolling.\n    function onDismiss(payload) {\n      if (payload.type === 'escapeKey' && refs.domReference.current) {\n        previouslyFocusedElementRef.current = refs.domReference.current;\n      }\n      if (['referencePress', 'escapeKey'].includes(payload.type)) {\n        return;\n      }\n      const returnFocus = payload.data.returnFocus;\n      if (typeof returnFocus === 'object') {\n        preventReturnFocusRef.current = false;\n        preventReturnFocusScroll = returnFocus.preventScroll;\n      } else {\n        preventReturnFocusRef.current = !returnFocus;\n      }\n    }\n    events.on('dismiss', onDismiss);\n    return () => {\n      events.off('dismiss', onDismiss);\n      const activeEl = activeElement(doc);\n      const shouldFocusReference = contains(floating, activeEl) || tree && getChildren(tree.nodesRef.current, nodeId).some(node => {\n        var _node$context5;\n        return contains((_node$context5 = node.context) == null ? void 0 : _node$context5.elements.floating, activeEl);\n      }) || contextData.openEvent && ['click', 'mousedown'].includes(contextData.openEvent.type);\n      if (shouldFocusReference && refs.domReference.current) {\n        previouslyFocusedElementRef.current = refs.domReference.current;\n      }\n      if (\n      // eslint-disable-next-line react-hooks/exhaustive-deps\n      returnFocusRef.current && isHTMLElement(previouslyFocusedElementRef.current) && !preventReturnFocusRef.current) {\n        enqueueFocus(previouslyFocusedElementRef.current, {\n          // When dismissing nested floating elements, by the time the rAF has\n          // executed, the menus will all have been unmounted. When they try\n          // to get focused, the calls get ignored — leaving the root\n          // reference focused as desired.\n          cancelPrevious: false,\n          preventScroll: preventReturnFocusScroll\n        });\n      }\n    };\n  }, [disabled, floating, returnFocusRef, dataRef, refs, events, tree, nodeId]);\n\n  // Synchronize the `context` & `modal` value to the FloatingPortal context.\n  // It will decide whether or not it needs to render its own guards.\n  index(() => {\n    if (disabled || !portalContext) return;\n    portalContext.setFocusManagerState({\n      ...context,\n      modal,\n      closeOnFocusOut,\n      open\n    });\n    return () => {\n      portalContext.setFocusManagerState(null);\n    };\n  }, [disabled, portalContext, modal, open, closeOnFocusOut, context]);\n  index(() => {\n    if (disabled) return;\n    if (floating && typeof MutationObserver === 'function') {\n      const handleMutation = () => {\n        const tabIndex = floating.getAttribute('tabindex');\n        if (orderRef.current.includes('floating') || activeElement(getDocument(floating)) !== refs.domReference.current && getTabbableContent().length === 0) {\n          if (tabIndex !== '0') {\n            floating.setAttribute('tabindex', '0');\n          }\n        } else if (tabIndex !== '-1') {\n          floating.setAttribute('tabindex', '-1');\n        }\n      };\n      handleMutation();\n      const observer = new MutationObserver(handleMutation);\n      observer.observe(floating, {\n        childList: true,\n        subtree: true,\n        attributes: true\n      });\n      return () => {\n        observer.disconnect();\n      };\n    }\n  }, [disabled, floating, refs, orderRef, getTabbableContent]);\n  function renderDismissButton(location) {\n    if (disabled || !visuallyHiddenDismiss || !modal) {\n      return null;\n    }\n    return /*#__PURE__*/React.createElement(VisuallyHiddenDismiss, {\n      ref: location === 'start' ? startDismissButtonRef : endDismissButtonRef,\n      onClick: event => onOpenChange(false, event.nativeEvent)\n    }, typeof visuallyHiddenDismiss === 'string' ? visuallyHiddenDismiss : 'Dismiss');\n  }\n  const shouldRenderGuards = !disabled && guards && !isTypeableCombobox && (isInsidePortal || modal);\n  return /*#__PURE__*/React.createElement(React.Fragment, null, shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n    \"data-type\": \"inside\",\n    ref: portalContext == null ? void 0 : portalContext.beforeInsideRef,\n    onFocus: event => {\n      if (modal) {\n        const els = getTabbableElements();\n        enqueueFocus(order[0] === 'reference' ? els[0] : els[els.length - 1]);\n      } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n        preventReturnFocusRef.current = false;\n        if (isOutsideEvent(event, portalContext.portalNode)) {\n          const nextTabbable = getNextTabbable() || domReference;\n          nextTabbable == null ? void 0 : nextTabbable.focus();\n        } else {\n          var _portalContext$before;\n          (_portalContext$before = portalContext.beforeOutsideRef.current) == null ? void 0 : _portalContext$before.focus();\n        }\n      }\n    }\n  }), !isTypeableCombobox && renderDismissButton('start'), children, renderDismissButton('end'), shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n    \"data-type\": \"inside\",\n    ref: portalContext == null ? void 0 : portalContext.afterInsideRef,\n    onFocus: event => {\n      if (modal) {\n        enqueueFocus(getTabbableElements()[0]);\n      } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n        if (closeOnFocusOut) {\n          preventReturnFocusRef.current = true;\n        }\n        if (isOutsideEvent(event, portalContext.portalNode)) {\n          const prevTabbable = getPreviousTabbable() || domReference;\n          prevTabbable == null ? void 0 : prevTabbable.focus();\n        } else {\n          var _portalContext$afterO;\n          (_portalContext$afterO = portalContext.afterOutsideRef.current) == null ? void 0 : _portalContext$afterO.focus();\n        }\n      }\n    }\n  }));\n}\n\nfunction sortByDocumentPosition(a, b) {\n  const position = a.compareDocumentPosition(b);\n  if (position & Node.DOCUMENT_POSITION_FOLLOWING || position & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n    return -1;\n  }\n  if (position & Node.DOCUMENT_POSITION_PRECEDING || position & Node.DOCUMENT_POSITION_CONTAINS) {\n    return 1;\n  }\n  return 0;\n}\nfunction areMapsEqual(map1, map2) {\n  if (map1.size !== map2.size) {\n    return false;\n  }\n  for (const [key, value] of map1.entries()) {\n    if (value !== map2.get(key)) {\n      return false;\n    }\n  }\n  return true;\n}\nconst FloatingListContext = /*#__PURE__*/React.createContext({\n  register: () => {},\n  unregister: () => {},\n  map: /*#__PURE__*/new Map(),\n  elementsRef: {\n    current: []\n  }\n});\n/**\n * Provides context for a list of items within the floating element.\n * @see https://floating-ui.com/docs/FloatingList\n */\nfunction FloatingList(_ref) {\n  let {\n    children,\n    elementsRef,\n    labelsRef\n  } = _ref;\n  const [map, setMap] = React.useState(() => new Map());\n  const register = React.useCallback(node => {\n    setMap(prevMap => new Map(prevMap).set(node, null));\n  }, []);\n  const unregister = React.useCallback(node => {\n    setMap(prevMap => {\n      const map = new Map(prevMap);\n      map.delete(node);\n      return map;\n    });\n  }, []);\n  index(() => {\n    const newMap = new Map(map);\n    const nodes = Array.from(newMap.keys()).sort(sortByDocumentPosition);\n    nodes.forEach((node, index) => {\n      newMap.set(node, index);\n    });\n    if (!areMapsEqual(map, newMap)) {\n      setMap(newMap);\n    }\n  }, [map]);\n  return /*#__PURE__*/React.createElement(FloatingListContext.Provider, {\n    value: React.useMemo(() => ({\n      register,\n      unregister,\n      map,\n      elementsRef,\n      labelsRef\n    }), [register, unregister, map, elementsRef, labelsRef])\n  }, children);\n}\nfunction useListItem(_temp) {\n  let {\n    label\n  } = _temp === void 0 ? {} : _temp;\n  const [index$1, setIndex] = React.useState(null);\n  const componentRef = React.useRef(null);\n  const {\n    register,\n    unregister,\n    map,\n    elementsRef,\n    labelsRef\n  } = React.useContext(FloatingListContext);\n  const ref = React.useCallback(node => {\n    componentRef.current = node;\n    if (index$1 !== null) {\n      elementsRef.current[index$1] = node;\n      if (labelsRef) {\n        var _node$textContent;\n        const isLabelDefined = label !== undefined;\n        labelsRef.current[index$1] = isLabelDefined ? label : (_node$textContent = node == null ? void 0 : node.textContent) != null ? _node$textContent : null;\n      }\n    }\n  }, [index$1, elementsRef, labelsRef, label]);\n  index(() => {\n    const node = componentRef.current;\n    if (node) {\n      register(node);\n      return () => {\n        unregister(node);\n      };\n    }\n  }, [register, unregister]);\n  index(() => {\n    const index = componentRef.current ? map.get(componentRef.current) : null;\n    if (index != null) {\n      setIndex(index);\n    }\n  }, [map]);\n  return React.useMemo(() => ({\n    ref,\n    index: index$1 == null ? -1 : index$1\n  }), [index$1, ref]);\n}\n\nconst identifier = /*#__PURE__*/createAttribute('scroll-lock');\n\n/**\n * Provides base styling for a fixed overlay element to dim content or block\n * pointer events behind a floating element.\n * It's a regular `<div>`, so it can be styled via any CSS solution you prefer.\n * @see https://floating-ui.com/docs/FloatingOverlay\n */\nconst FloatingOverlay = /*#__PURE__*/React.forwardRef(function FloatingOverlay(_ref, ref) {\n  let {\n    lockScroll = false,\n    ...rest\n  } = _ref;\n  index(() => {\n    var _window$visualViewpor, _window$visualViewpor2;\n    if (!lockScroll) {\n      return;\n    }\n    const alreadyLocked = document.body.hasAttribute(identifier);\n    if (alreadyLocked) {\n      return;\n    }\n    document.body.setAttribute(identifier, '');\n\n    // RTL <body> scrollbar\n    const scrollbarX = Math.round(document.documentElement.getBoundingClientRect().left) + document.documentElement.scrollLeft;\n    const paddingProp = scrollbarX ? 'paddingLeft' : 'paddingRight';\n    const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n\n    // Only iOS doesn't respect `overflow: hidden` on document.body, and this\n    // technique has fewer side effects.\n    if (!/iP(hone|ad|od)|iOS/.test(getPlatform())) {\n      Object.assign(document.body.style, {\n        overflow: 'hidden',\n        [paddingProp]: scrollbarWidth + \"px\"\n      });\n      return () => {\n        document.body.removeAttribute(identifier);\n        Object.assign(document.body.style, {\n          overflow: '',\n          [paddingProp]: ''\n        });\n      };\n    }\n\n    // iOS 12 does not support `visualViewport`.\n    const offsetLeft = ((_window$visualViewpor = window.visualViewport) == null ? void 0 : _window$visualViewpor.offsetLeft) || 0;\n    const offsetTop = ((_window$visualViewpor2 = window.visualViewport) == null ? void 0 : _window$visualViewpor2.offsetTop) || 0;\n    const scrollX = window.pageXOffset;\n    const scrollY = window.pageYOffset;\n    Object.assign(document.body.style, {\n      position: 'fixed',\n      overflow: 'hidden',\n      top: -(scrollY - Math.floor(offsetTop)) + \"px\",\n      left: -(scrollX - Math.floor(offsetLeft)) + \"px\",\n      right: '0',\n      [paddingProp]: scrollbarWidth + \"px\"\n    });\n    return () => {\n      Object.assign(document.body.style, {\n        position: '',\n        overflow: '',\n        top: '',\n        left: '',\n        right: '',\n        [paddingProp]: ''\n      });\n      document.body.removeAttribute(identifier);\n      window.scrollTo(scrollX, scrollY);\n    };\n  }, [lockScroll]);\n  return /*#__PURE__*/React.createElement(\"div\", _extends({\n    ref: ref\n  }, rest, {\n    style: {\n      position: 'fixed',\n      overflow: 'auto',\n      top: 0,\n      right: 0,\n      bottom: 0,\n      left: 0,\n      ...rest.style\n    }\n  }));\n});\n\nfunction isButtonTarget(event) {\n  return isHTMLElement(event.target) && event.target.tagName === 'BUTTON';\n}\nfunction isSpaceIgnored(element) {\n  return isTypeableElement(element);\n}\n/**\n * Opens or closes the floating element when clicking the reference element.\n * @see https://floating-ui.com/docs/useClick\n */\nfunction useClick(context, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    onOpenChange,\n    dataRef,\n    elements: {\n      domReference\n    }\n  } = context;\n  const {\n    enabled = true,\n    event: eventOption = 'click',\n    toggle = true,\n    ignoreMouse = false,\n    keyboardHandlers = true\n  } = props;\n  const pointerTypeRef = React.useRef();\n  const didKeyDownRef = React.useRef(false);\n  return React.useMemo(() => {\n    if (!enabled) return {};\n    return {\n      reference: {\n        onPointerDown(event) {\n          pointerTypeRef.current = event.pointerType;\n        },\n        onMouseDown(event) {\n          // Ignore all buttons except for the \"main\" button.\n          // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button\n          if (event.button !== 0) {\n            return;\n          }\n          if (isMouseLikePointerType(pointerTypeRef.current, true) && ignoreMouse) {\n            return;\n          }\n          if (eventOption === 'click') {\n            return;\n          }\n          if (open && toggle && (dataRef.current.openEvent ? dataRef.current.openEvent.type === 'mousedown' : true)) {\n            onOpenChange(false, event.nativeEvent);\n          } else {\n            // Prevent stealing focus from the floating element\n            event.preventDefault();\n            onOpenChange(true, event.nativeEvent);\n          }\n        },\n        onClick(event) {\n          if (eventOption === 'mousedown' && pointerTypeRef.current) {\n            pointerTypeRef.current = undefined;\n            return;\n          }\n          if (isMouseLikePointerType(pointerTypeRef.current, true) && ignoreMouse) {\n            return;\n          }\n          if (open && toggle && (dataRef.current.openEvent ? dataRef.current.openEvent.type === 'click' : true)) {\n            onOpenChange(false, event.nativeEvent);\n          } else {\n            onOpenChange(true, event.nativeEvent);\n          }\n        },\n        onKeyDown(event) {\n          pointerTypeRef.current = undefined;\n          if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event)) {\n            return;\n          }\n          if (event.key === ' ' && !isSpaceIgnored(domReference)) {\n            // Prevent scrolling\n            event.preventDefault();\n            didKeyDownRef.current = true;\n          }\n          if (event.key === 'Enter') {\n            if (open && toggle) {\n              onOpenChange(false, event.nativeEvent);\n            } else {\n              onOpenChange(true, event.nativeEvent);\n            }\n          }\n        },\n        onKeyUp(event) {\n          if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event) || isSpaceIgnored(domReference)) {\n            return;\n          }\n          if (event.key === ' ' && didKeyDownRef.current) {\n            didKeyDownRef.current = false;\n            if (open && toggle) {\n              onOpenChange(false, event.nativeEvent);\n            } else {\n              onOpenChange(true, event.nativeEvent);\n            }\n          }\n        }\n      }\n    };\n  }, [enabled, dataRef, eventOption, ignoreMouse, keyboardHandlers, domReference, toggle, open, onOpenChange]);\n}\n\n// `toString()` prevents bundlers from trying to `import { useInsertionEffect } from 'react'`\nconst useInsertionEffect = React[/*#__PURE__*/'useInsertionEffect'.toString()];\nconst useSafeInsertionEffect = useInsertionEffect || (fn => fn());\nfunction useEffectEvent(callback) {\n  const ref = React.useRef(() => {\n    if (process.env.NODE_ENV !== \"production\") {\n      throw new Error('Cannot call an event handler while rendering.');\n    }\n  });\n  useSafeInsertionEffect(() => {\n    ref.current = callback;\n  });\n  return React.useCallback(function () {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    return ref.current == null ? void 0 : ref.current(...args);\n  }, []);\n}\n\nfunction createVirtualElement(domRef, data) {\n  let offsetX = null;\n  let offsetY = null;\n  let isAutoUpdateEvent = false;\n  return {\n    contextElement: domRef.current || undefined,\n    getBoundingClientRect() {\n      var _domRef$current, _data$dataRef$current;\n      const domRect = ((_domRef$current = domRef.current) == null ? void 0 : _domRef$current.getBoundingClientRect()) || {\n        width: 0,\n        height: 0,\n        x: 0,\n        y: 0\n      };\n      const isXAxis = data.axis === 'x' || data.axis === 'both';\n      const isYAxis = data.axis === 'y' || data.axis === 'both';\n      const canTrackCursorOnAutoUpdate = ['mouseenter', 'mousemove'].includes(((_data$dataRef$current = data.dataRef.current.openEvent) == null ? void 0 : _data$dataRef$current.type) || '') && data.pointerType !== 'touch';\n      let width = domRect.width;\n      let height = domRect.height;\n      let x = domRect.x;\n      let y = domRect.y;\n      if (offsetX == null && data.x && isXAxis) {\n        offsetX = domRect.x - data.x;\n      }\n      if (offsetY == null && data.y && isYAxis) {\n        offsetY = domRect.y - data.y;\n      }\n      x -= offsetX || 0;\n      y -= offsetY || 0;\n      width = 0;\n      height = 0;\n      if (!isAutoUpdateEvent || canTrackCursorOnAutoUpdate) {\n        width = data.axis === 'y' ? domRect.width : 0;\n        height = data.axis === 'x' ? domRect.height : 0;\n        x = isXAxis && data.x != null ? data.x : x;\n        y = isYAxis && data.y != null ? data.y : y;\n      } else if (isAutoUpdateEvent && !canTrackCursorOnAutoUpdate) {\n        height = data.axis === 'x' ? domRect.height : height;\n        width = data.axis === 'y' ? domRect.width : width;\n      }\n      isAutoUpdateEvent = true;\n      return {\n        width,\n        height,\n        x,\n        y,\n        top: y,\n        right: x + width,\n        bottom: y + height,\n        left: x\n      };\n    }\n  };\n}\nfunction isMouseBasedEvent(event) {\n  return event != null && event.clientX != null;\n}\n/**\n * Positions the floating element relative to a client point (in the viewport),\n * such as the mouse position. By default, it follows the mouse cursor.\n * @see https://floating-ui.com/docs/useClientPoint\n */\nfunction useClientPoint(context, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    refs,\n    dataRef,\n    elements: {\n      floating\n    }\n  } = context;\n  const {\n    enabled = true,\n    axis = 'both',\n    x = null,\n    y = null\n  } = props;\n  const initialRef = React.useRef(false);\n  const cleanupListenerRef = React.useRef(null);\n  const [pointerType, setPointerType] = React.useState();\n  const [reactive, setReactive] = React.useState([]);\n  const setReference = useEffectEvent((x, y) => {\n    if (initialRef.current) return;\n\n    // Prevent setting if the open event was not a mouse-like one\n    // (e.g. focus to open, then hover over the reference element).\n    // Only apply if the event exists.\n    if (dataRef.current.openEvent && !isMouseBasedEvent(dataRef.current.openEvent)) {\n      return;\n    }\n    refs.setPositionReference(createVirtualElement(refs.domReference, {\n      x,\n      y,\n      axis,\n      dataRef,\n      pointerType\n    }));\n  });\n  const handleReferenceEnterOrMove = useEffectEvent(event => {\n    if (x != null || y != null) return;\n    if (!open) {\n      setReference(event.clientX, event.clientY);\n    } else if (!cleanupListenerRef.current) {\n      // If there's no cleanup, there's no listener, but we want to ensure\n      // we add the listener if the cursor landed on the floating element and\n      // then back on the reference (i.e. it's interactive).\n      setReactive([]);\n    }\n  });\n\n  // If the pointer is a mouse-like pointer, we want to continue following the\n  // mouse even if the floating element is transitioning out. On touch\n  // devices, this is undesirable because the floating element will move to\n  // the dismissal touch point.\n  const openCheck = isMouseLikePointerType(pointerType) ? floating : open;\n  const addListener = React.useCallback(() => {\n    // Explicitly specified `x`/`y` coordinates shouldn't add a listener.\n    if (!openCheck || !enabled || x != null || y != null) return;\n    const win = getWindow(refs.floating.current);\n    function handleMouseMove(event) {\n      const target = getTarget(event);\n      if (!contains(refs.floating.current, target)) {\n        setReference(event.clientX, event.clientY);\n      } else {\n        win.removeEventListener('mousemove', handleMouseMove);\n        cleanupListenerRef.current = null;\n      }\n    }\n    if (!dataRef.current.openEvent || isMouseBasedEvent(dataRef.current.openEvent)) {\n      win.addEventListener('mousemove', handleMouseMove);\n      const cleanup = () => {\n        win.removeEventListener('mousemove', handleMouseMove);\n        cleanupListenerRef.current = null;\n      };\n      cleanupListenerRef.current = cleanup;\n      return cleanup;\n    }\n    refs.setPositionReference(refs.domReference.current);\n  }, [dataRef, enabled, openCheck, refs, setReference, x, y]);\n  React.useEffect(() => {\n    return addListener();\n  }, [addListener, reactive]);\n  React.useEffect(() => {\n    if (enabled && !floating) {\n      initialRef.current = false;\n    }\n  }, [enabled, floating]);\n  React.useEffect(() => {\n    if (!enabled && open) {\n      initialRef.current = true;\n    }\n  }, [enabled, open]);\n  index(() => {\n    if (enabled && (x != null || y != null)) {\n      initialRef.current = false;\n      setReference(x, y);\n    }\n  }, [enabled, x, y, setReference]);\n  return React.useMemo(() => {\n    if (!enabled) return {};\n    function setPointerTypeRef(_ref) {\n      let {\n        pointerType\n      } = _ref;\n      setPointerType(pointerType);\n    }\n    return {\n      reference: {\n        onPointerDown: setPointerTypeRef,\n        onPointerEnter: setPointerTypeRef,\n        onMouseMove: handleReferenceEnterOrMove,\n        onMouseEnter: handleReferenceEnterOrMove\n      }\n    };\n  }, [enabled, handleReferenceEnterOrMove]);\n}\n\n/**\n * Check whether the event.target is within the provided node. Uses event.composedPath if available for custom element support.\n *\n * @param event The event whose target/composedPath to check\n * @param node The node to check against\n * @returns Whether the event.target/composedPath is within the node.\n */\nfunction isEventTargetWithin(event, node) {\n  if (node == null) {\n    return false;\n  }\n  if ('composedPath' in event) {\n    return event.composedPath().includes(node);\n  }\n\n  // TS thinks `event` is of type never as it assumes all browsers support composedPath, but browsers without shadow dom don't\n  const e = event;\n  return e.target != null && node.contains(e.target);\n}\n\nconst bubbleHandlerKeys = {\n  pointerdown: 'onPointerDown',\n  mousedown: 'onMouseDown',\n  click: 'onClick'\n};\nconst captureHandlerKeys = {\n  pointerdown: 'onPointerDownCapture',\n  mousedown: 'onMouseDownCapture',\n  click: 'onClickCapture'\n};\nconst normalizeBubblesProp = bubbles => {\n  var _bubbles$escapeKey, _bubbles$outsidePress;\n  return {\n    escapeKeyBubbles: typeof bubbles === 'boolean' ? bubbles : (_bubbles$escapeKey = bubbles == null ? void 0 : bubbles.escapeKey) != null ? _bubbles$escapeKey : false,\n    outsidePressBubbles: typeof bubbles === 'boolean' ? bubbles : (_bubbles$outsidePress = bubbles == null ? void 0 : bubbles.outsidePress) != null ? _bubbles$outsidePress : true\n  };\n};\n/**\n * Closes the floating element when a dismissal is requested — by default, when\n * the user presses the `escape` key or outside of the floating element.\n * @see https://floating-ui.com/docs/useDismiss\n */\nfunction useDismiss(context, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    onOpenChange,\n    events,\n    nodeId,\n    elements: {\n      reference,\n      domReference,\n      floating\n    },\n    dataRef\n  } = context;\n  const {\n    enabled = true,\n    escapeKey = true,\n    outsidePress: unstable_outsidePress = true,\n    outsidePressEvent = 'pointerdown',\n    referencePress = false,\n    referencePressEvent = 'pointerdown',\n    ancestorScroll = false,\n    bubbles\n  } = props;\n  const tree = useFloatingTree();\n  const nested = useFloatingParentNodeId() != null;\n  const outsidePressFn = useEffectEvent(typeof unstable_outsidePress === 'function' ? unstable_outsidePress : () => false);\n  const outsidePress = typeof unstable_outsidePress === 'function' ? outsidePressFn : unstable_outsidePress;\n  const insideReactTreeRef = React.useRef(false);\n  const {\n    escapeKeyBubbles,\n    outsidePressBubbles\n  } = normalizeBubblesProp(bubbles);\n  const closeOnEscapeKeyDown = useEffectEvent(event => {\n    if (!open || !enabled || !escapeKey || event.key !== 'Escape') {\n      return;\n    }\n    const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n    if (!escapeKeyBubbles) {\n      event.stopPropagation();\n      if (children.length > 0) {\n        let shouldDismiss = true;\n        children.forEach(child => {\n          var _child$context;\n          if ((_child$context = child.context) != null && _child$context.open && !child.context.dataRef.current.__escapeKeyBubbles) {\n            shouldDismiss = false;\n            return;\n          }\n        });\n        if (!shouldDismiss) {\n          return;\n        }\n      }\n    }\n    events.emit('dismiss', {\n      type: 'escapeKey',\n      data: {\n        returnFocus: {\n          preventScroll: false\n        }\n      }\n    });\n    onOpenChange(false, isReactEvent(event) ? event.nativeEvent : event);\n  });\n  const closeOnPressOutside = useEffectEvent(event => {\n    // Given developers can stop the propagation of the synthetic event,\n    // we can only be confident with a positive value.\n    const insideReactTree = insideReactTreeRef.current;\n    insideReactTreeRef.current = false;\n    if (insideReactTree) {\n      return;\n    }\n    if (typeof outsidePress === 'function' && !outsidePress(event)) {\n      return;\n    }\n    const target = getTarget(event);\n\n    // Check if the click occurred on the scrollbar\n    if (isHTMLElement(target) && floating) {\n      // In Firefox, `target.scrollWidth > target.clientWidth` for inline\n      // elements.\n      const canScrollX = target.clientWidth > 0 && target.scrollWidth > target.clientWidth;\n      const canScrollY = target.clientHeight > 0 && target.scrollHeight > target.clientHeight;\n      let xCond = canScrollY && event.offsetX > target.clientWidth;\n\n      // In some browsers it is possible to change the <body> (or window)\n      // scrollbar to the left side, but is very rare and is difficult to\n      // check for. Plus, for modal dialogs with backdrops, it is more\n      // important that the backdrop is checked but not so much the window.\n      if (canScrollY) {\n        const isRTL = getWindow(floating).getComputedStyle(target).direction === 'rtl';\n        if (isRTL) {\n          xCond = event.offsetX <= target.offsetWidth - target.clientWidth;\n        }\n      }\n      if (xCond || canScrollX && event.offsetY > target.clientHeight) {\n        return;\n      }\n    }\n    const targetIsInsideChildren = tree && getChildren(tree.nodesRef.current, nodeId).some(node => {\n      var _node$context;\n      return isEventTargetWithin(event, (_node$context = node.context) == null ? void 0 : _node$context.elements.floating);\n    });\n    if (isEventTargetWithin(event, floating) || isEventTargetWithin(event, domReference) || targetIsInsideChildren) {\n      return;\n    }\n    const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n    if (children.length > 0) {\n      let shouldDismiss = true;\n      children.forEach(child => {\n        var _child$context2;\n        if ((_child$context2 = child.context) != null && _child$context2.open && !child.context.dataRef.current.__outsidePressBubbles) {\n          shouldDismiss = false;\n          return;\n        }\n      });\n      if (!shouldDismiss) {\n        return;\n      }\n    }\n    events.emit('dismiss', {\n      type: 'outsidePress',\n      data: {\n        returnFocus: nested ? {\n          preventScroll: true\n        } : isVirtualClick(event) || isVirtualPointerEvent(event)\n      }\n    });\n    onOpenChange(false, event);\n  });\n  React.useEffect(() => {\n    if (!open || !enabled) {\n      return;\n    }\n    dataRef.current.__escapeKeyBubbles = escapeKeyBubbles;\n    dataRef.current.__outsidePressBubbles = outsidePressBubbles;\n    function onScroll(event) {\n      onOpenChange(false, event);\n    }\n    const doc = getDocument(floating);\n    escapeKey && doc.addEventListener('keydown', closeOnEscapeKeyDown);\n    outsidePress && doc.addEventListener(outsidePressEvent, closeOnPressOutside);\n    let ancestors = [];\n    if (ancestorScroll) {\n      if (isElement(domReference)) {\n        ancestors = getOverflowAncestors(domReference);\n      }\n      if (isElement(floating)) {\n        ancestors = ancestors.concat(getOverflowAncestors(floating));\n      }\n      if (!isElement(reference) && reference && reference.contextElement) {\n        ancestors = ancestors.concat(getOverflowAncestors(reference.contextElement));\n      }\n    }\n\n    // Ignore the visual viewport for scrolling dismissal (allow pinch-zoom)\n    ancestors = ancestors.filter(ancestor => {\n      var _doc$defaultView;\n      return ancestor !== ((_doc$defaultView = doc.defaultView) == null ? void 0 : _doc$defaultView.visualViewport);\n    });\n    ancestors.forEach(ancestor => {\n      ancestor.addEventListener('scroll', onScroll, {\n        passive: true\n      });\n    });\n    return () => {\n      escapeKey && doc.removeEventListener('keydown', closeOnEscapeKeyDown);\n      outsidePress && doc.removeEventListener(outsidePressEvent, closeOnPressOutside);\n      ancestors.forEach(ancestor => {\n        ancestor.removeEventListener('scroll', onScroll);\n      });\n    };\n  }, [dataRef, floating, domReference, reference, escapeKey, outsidePress, outsidePressEvent, open, onOpenChange, ancestorScroll, enabled, escapeKeyBubbles, outsidePressBubbles, closeOnEscapeKeyDown, closeOnPressOutside]);\n  React.useEffect(() => {\n    insideReactTreeRef.current = false;\n  }, [outsidePress, outsidePressEvent]);\n  return React.useMemo(() => {\n    if (!enabled) {\n      return {};\n    }\n    return {\n      reference: {\n        onKeyDown: closeOnEscapeKeyDown,\n        [bubbleHandlerKeys[referencePressEvent]]: event => {\n          if (referencePress) {\n            events.emit('dismiss', {\n              type: 'referencePress',\n              data: {\n                returnFocus: false\n              }\n            });\n            onOpenChange(false, event.nativeEvent);\n          }\n        }\n      },\n      floating: {\n        onKeyDown: closeOnEscapeKeyDown,\n        [captureHandlerKeys[outsidePressEvent]]: () => {\n          insideReactTreeRef.current = true;\n        }\n      }\n    };\n  }, [enabled, events, referencePress, outsidePressEvent, referencePressEvent, onOpenChange, closeOnEscapeKeyDown]);\n}\n\n/**\n * Provides data to position a floating element and context to add interactions.\n * @see https://floating-ui.com/docs/react\n */\nfunction useFloating(options) {\n  var _options$elements;\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    open = false,\n    onOpenChange: unstable_onOpenChange,\n    nodeId\n  } = options;\n  const [_domReference, setDomReference] = React.useState(null);\n  const domReference = ((_options$elements = options.elements) == null ? void 0 : _options$elements.reference) || _domReference;\n  const position = useFloating$1(options);\n  const tree = useFloatingTree();\n  const onOpenChange = useEffectEvent((open, event) => {\n    if (open) {\n      dataRef.current.openEvent = event;\n    }\n    unstable_onOpenChange == null ? void 0 : unstable_onOpenChange(open, event);\n  });\n  const domReferenceRef = React.useRef(null);\n  const dataRef = React.useRef({});\n  const events = React.useState(() => createPubSub())[0];\n  const floatingId = useId();\n  const setPositionReference = React.useCallback(node => {\n    const positionReference = isElement(node) ? {\n      getBoundingClientRect: () => node.getBoundingClientRect(),\n      contextElement: node\n    } : node;\n    position.refs.setReference(positionReference);\n  }, [position.refs]);\n  const setReference = React.useCallback(node => {\n    if (isElement(node) || node === null) {\n      domReferenceRef.current = node;\n      setDomReference(node);\n    }\n\n    // Backwards-compatibility for passing a virtual element to `reference`\n    // after it has set the DOM reference.\n    if (isElement(position.refs.reference.current) || position.refs.reference.current === null ||\n    // Don't allow setting virtual elements using the old technique back to\n    // `null` to support `positionReference` + an unstable `reference`\n    // callback ref.\n    node !== null && !isElement(node)) {\n      position.refs.setReference(node);\n    }\n  }, [position.refs]);\n  const refs = React.useMemo(() => ({\n    ...position.refs,\n    setReference,\n    setPositionReference,\n    domReference: domReferenceRef\n  }), [position.refs, setReference, setPositionReference]);\n  const elements = React.useMemo(() => ({\n    ...position.elements,\n    domReference: domReference\n  }), [position.elements, domReference]);\n  const context = React.useMemo(() => ({\n    ...position,\n    refs,\n    elements,\n    dataRef,\n    nodeId,\n    floatingId,\n    events,\n    open,\n    onOpenChange\n  }), [position, nodeId, floatingId, events, open, onOpenChange, refs, elements]);\n  index(() => {\n    const node = tree == null ? void 0 : tree.nodesRef.current.find(node => node.id === nodeId);\n    if (node) {\n      node.context = context;\n    }\n  });\n  return React.useMemo(() => ({\n    ...position,\n    context,\n    refs,\n    elements\n  }), [position, refs, elements, context]);\n}\n\n/**\n * Opens the floating element while the reference element has focus, like CSS\n * `:focus`.\n * @see https://floating-ui.com/docs/useFocus\n */\nfunction useFocus(context, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    onOpenChange,\n    dataRef,\n    events,\n    refs,\n    elements: {\n      floating,\n      domReference\n    }\n  } = context;\n  const {\n    enabled = true,\n    keyboardOnly = true\n  } = props;\n  const pointerTypeRef = React.useRef('');\n  const blockFocusRef = React.useRef(false);\n  const timeoutRef = React.useRef();\n  React.useEffect(() => {\n    if (!enabled) {\n      return;\n    }\n    const doc = getDocument(floating);\n    const win = doc.defaultView || window;\n\n    // If the reference was focused and the user left the tab/window, and the\n    // floating element was not open, the focus should be blocked when they\n    // return to the tab/window.\n    function onBlur() {\n      if (!open && isHTMLElement(domReference) && domReference === activeElement(getDocument(domReference))) {\n        blockFocusRef.current = true;\n      }\n    }\n    win.addEventListener('blur', onBlur);\n    return () => {\n      win.removeEventListener('blur', onBlur);\n    };\n  }, [floating, domReference, open, enabled]);\n  React.useEffect(() => {\n    if (!enabled) {\n      return;\n    }\n    function onDismiss(payload) {\n      if (payload.type === 'referencePress' || payload.type === 'escapeKey') {\n        blockFocusRef.current = true;\n      }\n    }\n    events.on('dismiss', onDismiss);\n    return () => {\n      events.off('dismiss', onDismiss);\n    };\n  }, [events, enabled]);\n  React.useEffect(() => {\n    return () => {\n      clearTimeout(timeoutRef.current);\n    };\n  }, []);\n  return React.useMemo(() => {\n    if (!enabled) {\n      return {};\n    }\n    return {\n      reference: {\n        onPointerDown(_ref) {\n          let {\n            pointerType\n          } = _ref;\n          pointerTypeRef.current = pointerType;\n          blockFocusRef.current = !!(pointerType && keyboardOnly);\n        },\n        onMouseLeave() {\n          blockFocusRef.current = false;\n        },\n        onFocus(event) {\n          var _dataRef$current$open;\n          if (blockFocusRef.current) {\n            return;\n          }\n\n          // Dismiss with click should ignore the subsequent `focus` trigger,\n          // but only if the click originated inside the reference element.\n          if (event.type === 'focus' && ((_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type) === 'mousedown' && isEventTargetWithin(dataRef.current.openEvent, domReference)) {\n            return;\n          }\n          onOpenChange(true, event.nativeEvent);\n        },\n        onBlur(event) {\n          blockFocusRef.current = false;\n          const relatedTarget = event.relatedTarget;\n\n          // Hit the non-modal focus management portal guard. Focus will be\n          // moved into the floating element immediately after.\n          const movedToFocusGuard = isElement(relatedTarget) && relatedTarget.hasAttribute(createAttribute('focus-guard')) && relatedTarget.getAttribute('data-type') === 'outside';\n\n          // Wait for the window blur listener to fire.\n          timeoutRef.current = setTimeout(() => {\n            // When focusing the reference element (e.g. regular click), then\n            // clicking into the floating element, prevent it from hiding.\n            // Note: it must be focusable, e.g. `tabindex=\"-1\"`.\n            if (contains(refs.floating.current, relatedTarget) || contains(domReference, relatedTarget) || movedToFocusGuard) {\n              return;\n            }\n            onOpenChange(false, event.nativeEvent);\n          });\n        }\n      }\n    };\n  }, [enabled, keyboardOnly, domReference, refs, dataRef, onOpenChange]);\n}\n\nfunction mergeProps(userProps, propsList, elementKey) {\n  const map = new Map();\n  return {\n    ...(elementKey === 'floating' && {\n      tabIndex: -1\n    }),\n    ...userProps,\n    ...propsList.map(value => value ? value[elementKey] : null).concat(userProps).reduce((acc, props) => {\n      if (!props) {\n        return acc;\n      }\n      Object.entries(props).forEach(_ref => {\n        let [key, value] = _ref;\n        if (key.indexOf('on') === 0) {\n          if (!map.has(key)) {\n            map.set(key, []);\n          }\n          if (typeof value === 'function') {\n            var _map$get;\n            (_map$get = map.get(key)) == null ? void 0 : _map$get.push(value);\n            acc[key] = function () {\n              var _map$get2;\n              for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n                args[_key] = arguments[_key];\n              }\n              return (_map$get2 = map.get(key)) == null ? void 0 : _map$get2.map(fn => fn(...args)).find(val => val !== undefined);\n            };\n          }\n        } else {\n          acc[key] = value;\n        }\n      });\n      return acc;\n    }, {})\n  };\n}\n\n/**\n * Merges an array of interaction hooks' props into prop getters, allowing\n * event handler functions to be composed together without overwriting one\n * another.\n * @see https://floating-ui.com/docs/react#interaction-hooks\n */\nfunction useInteractions(propsList) {\n  if (propsList === void 0) {\n    propsList = [];\n  }\n  // The dependencies are a dynamic array, so we can't use the linter's\n  // suggestion to add it to the deps array.\n  const deps = propsList;\n  const getReferenceProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'reference'),\n  // eslint-disable-next-line react-hooks/exhaustive-deps\n  deps);\n  const getFloatingProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'floating'),\n  // eslint-disable-next-line react-hooks/exhaustive-deps\n  deps);\n  const getItemProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'item'),\n  // Granularly check for `item` changes, because the `getItemProps` getter\n  // should be as referentially stable as possible since it may be passed as\n  // a prop to many components. All `item` key values must therefore be\n  // memoized.\n  // eslint-disable-next-line react-hooks/exhaustive-deps\n  propsList.map(key => key == null ? void 0 : key.item));\n  return React.useMemo(() => ({\n    getReferenceProps,\n    getFloatingProps,\n    getItemProps\n  }), [getReferenceProps, getFloatingProps, getItemProps]);\n}\n\nlet isPreventScrollSupported = false;\nconst ARROW_UP = 'ArrowUp';\nconst ARROW_DOWN = 'ArrowDown';\nconst ARROW_LEFT = 'ArrowLeft';\nconst ARROW_RIGHT = 'ArrowRight';\nfunction isDifferentRow(index, cols, prevRow) {\n  return Math.floor(index / cols) !== prevRow;\n}\nfunction isIndexOutOfBounds(listRef, index) {\n  return index < 0 || index >= listRef.current.length;\n}\nfunction findNonDisabledIndex(listRef, _temp) {\n  let {\n    startingIndex = -1,\n    decrement = false,\n    disabledIndices,\n    amount = 1\n  } = _temp === void 0 ? {} : _temp;\n  const list = listRef.current;\n  let index = startingIndex;\n  do {\n    var _list$index, _list$index2;\n    index = index + (decrement ? -amount : amount);\n  } while (index >= 0 && index <= list.length - 1 && (disabledIndices ? disabledIndices.includes(index) : list[index] == null || ((_list$index = list[index]) == null ? void 0 : _list$index.hasAttribute('disabled')) || ((_list$index2 = list[index]) == null ? void 0 : _list$index2.getAttribute('aria-disabled')) === 'true'));\n  return index;\n}\nfunction doSwitch(orientation, vertical, horizontal) {\n  switch (orientation) {\n    case 'vertical':\n      return vertical;\n    case 'horizontal':\n      return horizontal;\n    default:\n      return vertical || horizontal;\n  }\n}\nfunction isMainOrientationKey(key, orientation) {\n  const vertical = key === ARROW_UP || key === ARROW_DOWN;\n  const horizontal = key === ARROW_LEFT || key === ARROW_RIGHT;\n  return doSwitch(orientation, vertical, horizontal);\n}\nfunction isMainOrientationToEndKey(key, orientation, rtl) {\n  const vertical = key === ARROW_DOWN;\n  const horizontal = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n  return doSwitch(orientation, vertical, horizontal) || key === 'Enter' || key == ' ' || key === '';\n}\nfunction isCrossOrientationOpenKey(key, orientation, rtl) {\n  const vertical = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n  const horizontal = key === ARROW_DOWN;\n  return doSwitch(orientation, vertical, horizontal);\n}\nfunction isCrossOrientationCloseKey(key, orientation, rtl) {\n  const vertical = rtl ? key === ARROW_RIGHT : key === ARROW_LEFT;\n  const horizontal = key === ARROW_UP;\n  return doSwitch(orientation, vertical, horizontal);\n}\nfunction getMinIndex(listRef, disabledIndices) {\n  return findNonDisabledIndex(listRef, {\n    disabledIndices\n  });\n}\nfunction getMaxIndex(listRef, disabledIndices) {\n  return findNonDisabledIndex(listRef, {\n    decrement: true,\n    startingIndex: listRef.current.length,\n    disabledIndices\n  });\n}\n/**\n * Adds arrow key-based navigation of a list of items, either using real DOM\n * focus or virtual focus.\n * @see https://floating-ui.com/docs/useListNavigation\n */\nfunction useListNavigation(context, props) {\n  const {\n    open,\n    onOpenChange,\n    refs,\n    elements: {\n      domReference,\n      floating\n    }\n  } = context;\n  const {\n    listRef,\n    activeIndex,\n    onNavigate: unstable_onNavigate = () => {},\n    enabled = true,\n    selectedIndex = null,\n    allowEscape = false,\n    loop = false,\n    nested = false,\n    rtl = false,\n    virtual = false,\n    focusItemOnOpen = 'auto',\n    focusItemOnHover = true,\n    openOnArrowKeyDown = true,\n    disabledIndices = undefined,\n    orientation = 'vertical',\n    cols = 1,\n    scrollItemIntoView = true\n  } = props;\n  if (process.env.NODE_ENV !== \"production\") {\n    if (allowEscape) {\n      if (!loop) {\n        console.warn(['Floating UI: `useListNavigation` looping must be enabled to allow', 'escaping.'].join(' '));\n      }\n      if (!virtual) {\n        console.warn(['Floating UI: `useListNavigation` must be virtual to allow', 'escaping.'].join(' '));\n      }\n    }\n    if (orientation === 'vertical' && cols > 1) {\n      console.warn(['Floating UI: In grid list navigation mode (`cols` > 1), the', '`orientation` should be either \"horizontal\" or \"both\".'].join(' '));\n    }\n  }\n  const parentId = useFloatingParentNodeId();\n  const tree = useFloatingTree();\n  const onNavigate = useEffectEvent(unstable_onNavigate);\n  const focusItemOnOpenRef = React.useRef(focusItemOnOpen);\n  const indexRef = React.useRef(selectedIndex != null ? selectedIndex : -1);\n  const keyRef = React.useRef(null);\n  const isPointerModalityRef = React.useRef(true);\n  const previousOnNavigateRef = React.useRef(onNavigate);\n  const previousMountedRef = React.useRef(!!floating);\n  const forceSyncFocus = React.useRef(false);\n  const forceScrollIntoViewRef = React.useRef(false);\n  const disabledIndicesRef = useLatestRef(disabledIndices);\n  const latestOpenRef = useLatestRef(open);\n  const scrollItemIntoViewRef = useLatestRef(scrollItemIntoView);\n  const [activeId, setActiveId] = React.useState();\n  const focusItem = useEffectEvent(function (listRef, indexRef, forceScrollIntoView) {\n    if (forceScrollIntoView === void 0) {\n      forceScrollIntoView = false;\n    }\n    const item = listRef.current[indexRef.current];\n    if (!item) return;\n    if (virtual) {\n      setActiveId(item.id);\n    } else {\n      enqueueFocus(item, {\n        preventScroll: true,\n        // Mac Safari does not move the virtual cursor unless the focus call\n        // is sync. However, for the very first focus call, we need to wait\n        // for the position to be ready in order to prevent unwanted\n        // scrolling. This means the virtual cursor will not move to the first\n        // item when first opening the floating element, but will on\n        // subsequent calls. `preventScroll` is supported in modern Safari,\n        // so we can use that instead.\n        // iOS Safari must be async or the first item will not be focused.\n        sync: isMac() && isSafari() ? isPreventScrollSupported || forceSyncFocus.current : false\n      });\n    }\n    requestAnimationFrame(() => {\n      const scrollIntoViewOptions = scrollItemIntoViewRef.current;\n      const shouldScrollIntoView = scrollIntoViewOptions && item && (forceScrollIntoView || !isPointerModalityRef.current);\n      if (shouldScrollIntoView) {\n        // JSDOM doesn't support `.scrollIntoView()` but it's widely supported\n        // by all browsers.\n        item.scrollIntoView == null ? void 0 : item.scrollIntoView(typeof scrollIntoViewOptions === 'boolean' ? {\n          block: 'nearest',\n          inline: 'nearest'\n        } : scrollIntoViewOptions);\n      }\n    });\n  });\n  index(() => {\n    document.createElement('div').focus({\n      get preventScroll() {\n        isPreventScrollSupported = true;\n        return false;\n      }\n    });\n  }, []);\n\n  // Sync `selectedIndex` to be the `activeIndex` upon opening the floating\n  // element. Also, reset `activeIndex` upon closing the floating element.\n  index(() => {\n    if (!enabled) {\n      return;\n    }\n    if (open && floating) {\n      if (focusItemOnOpenRef.current && selectedIndex != null) {\n        // Regardless of the pointer modality, we want to ensure the selected\n        // item comes into view when the floating element is opened.\n        forceScrollIntoViewRef.current = true;\n        onNavigate(selectedIndex);\n      }\n    } else if (previousMountedRef.current) {\n      // Since the user can specify `onNavigate` conditionally\n      // (onNavigate: open ? setActiveIndex : setSelectedIndex),\n      // we store and call the previous function.\n      indexRef.current = -1;\n      previousOnNavigateRef.current(null);\n    }\n  }, [enabled, open, floating, selectedIndex, onNavigate]);\n\n  // Sync `activeIndex` to be the focused item while the floating element is\n  // open.\n  index(() => {\n    if (!enabled) {\n      return;\n    }\n    if (open && floating) {\n      if (activeIndex == null) {\n        forceSyncFocus.current = false;\n        if (selectedIndex != null) {\n          return;\n        }\n\n        // Reset while the floating element was open (e.g. the list changed).\n        if (previousMountedRef.current) {\n          indexRef.current = -1;\n          focusItem(listRef, indexRef);\n        }\n\n        // Initial sync.\n        if (!previousMountedRef.current && focusItemOnOpenRef.current && (keyRef.current != null || focusItemOnOpenRef.current === true && keyRef.current == null)) {\n          let runs = 0;\n          const waitForListPopulated = () => {\n            if (listRef.current[0] == null) {\n              // Avoid letting the browser paint if possible on the first try,\n              // otherwise use rAF. Don't try more than twice, since something\n              // is wrong otherwise.\n              if (runs < 2) {\n                const scheduler = runs ? requestAnimationFrame : queueMicrotask;\n                scheduler(waitForListPopulated);\n              }\n              runs++;\n            } else {\n              indexRef.current = keyRef.current == null || isMainOrientationToEndKey(keyRef.current, orientation, rtl) || nested ? getMinIndex(listRef, disabledIndicesRef.current) : getMaxIndex(listRef, disabledIndicesRef.current);\n              keyRef.current = null;\n              onNavigate(indexRef.current);\n            }\n          };\n          waitForListPopulated();\n        }\n      } else if (!isIndexOutOfBounds(listRef, activeIndex)) {\n        indexRef.current = activeIndex;\n        focusItem(listRef, indexRef, forceScrollIntoViewRef.current);\n        forceScrollIntoViewRef.current = false;\n      }\n    }\n  }, [enabled, open, floating, activeIndex, selectedIndex, nested, listRef, orientation, rtl, onNavigate, focusItem, disabledIndicesRef]);\n\n  // Ensure the parent floating element has focus when a nested child closes\n  // to allow arrow key navigation to work after the pointer leaves the child.\n  index(() => {\n    if (!enabled) {\n      return;\n    }\n    if (previousMountedRef.current && !floating && tree) {\n      var _nodes$find, _nodes$find$context;\n      const nodes = tree.nodesRef.current;\n      const parent = (_nodes$find = nodes.find(node => node.id === parentId)) == null ? void 0 : (_nodes$find$context = _nodes$find.context) == null ? void 0 : _nodes$find$context.elements.floating;\n      const activeEl = activeElement(getDocument(floating));\n      const treeContainsActiveEl = nodes.some(node => node.context && contains(node.context.elements.floating, activeEl));\n      if (parent && !treeContainsActiveEl) {\n        parent.focus({\n          preventScroll: true\n        });\n      }\n    }\n  }, [enabled, floating, tree, parentId]);\n  index(() => {\n    previousOnNavigateRef.current = onNavigate;\n    previousMountedRef.current = !!floating;\n  });\n  index(() => {\n    if (!open) {\n      keyRef.current = null;\n    }\n  }, [open]);\n  const hasActiveIndex = activeIndex != null;\n  const item = React.useMemo(() => {\n    function syncCurrentTarget(currentTarget) {\n      if (!open) return;\n      const index = listRef.current.indexOf(currentTarget);\n      if (index !== -1) {\n        onNavigate(index);\n      }\n    }\n    const props = {\n      onFocus(_ref) {\n        let {\n          currentTarget\n        } = _ref;\n        syncCurrentTarget(currentTarget);\n      },\n      onClick: _ref2 => {\n        let {\n          currentTarget\n        } = _ref2;\n        return currentTarget.focus({\n          preventScroll: true\n        });\n      },\n      // Safari\n      ...(focusItemOnHover && {\n        onMouseMove(_ref3) {\n          let {\n            currentTarget\n          } = _ref3;\n          syncCurrentTarget(currentTarget);\n        },\n        onPointerLeave(_ref4) {\n          let {\n            pointerType\n          } = _ref4;\n          if (!isPointerModalityRef.current || pointerType === 'touch') {\n            return;\n          }\n          indexRef.current = -1;\n          focusItem(listRef, indexRef);\n          onNavigate(null);\n          if (!virtual) {\n            enqueueFocus(refs.floating.current, {\n              preventScroll: true\n            });\n          }\n        }\n      })\n    };\n    return props;\n  }, [open, refs, focusItem, focusItemOnHover, listRef, onNavigate, virtual]);\n  return React.useMemo(() => {\n    if (!enabled) {\n      return {};\n    }\n    const disabledIndices = disabledIndicesRef.current;\n    function onKeyDown(event) {\n      isPointerModalityRef.current = false;\n      forceSyncFocus.current = true;\n\n      // If the floating element is animating out, ignore navigation. Otherwise,\n      // the `activeIndex` gets set to 0 despite not being open so the next time\n      // the user ArrowDowns, the first item won't be focused.\n      if (!latestOpenRef.current && event.currentTarget === refs.floating.current) {\n        return;\n      }\n      if (nested && isCrossOrientationCloseKey(event.key, orientation, rtl)) {\n        stopEvent(event);\n        onOpenChange(false, event.nativeEvent);\n        if (isHTMLElement(domReference)) {\n          domReference.focus();\n        }\n        return;\n      }\n      const currentIndex = indexRef.current;\n      const minIndex = getMinIndex(listRef, disabledIndices);\n      const maxIndex = getMaxIndex(listRef, disabledIndices);\n      if (event.key === 'Home') {\n        stopEvent(event);\n        indexRef.current = minIndex;\n        onNavigate(indexRef.current);\n      }\n      if (event.key === 'End') {\n        stopEvent(event);\n        indexRef.current = maxIndex;\n        onNavigate(indexRef.current);\n      }\n\n      // Grid navigation.\n      if (cols > 1) {\n        const prevIndex = indexRef.current;\n        if (event.key === ARROW_UP) {\n          stopEvent(event);\n          if (prevIndex === -1) {\n            indexRef.current = maxIndex;\n          } else {\n            indexRef.current = findNonDisabledIndex(listRef, {\n              startingIndex: prevIndex,\n              amount: cols,\n              decrement: true,\n              disabledIndices\n            });\n            if (loop && (prevIndex - cols < minIndex || indexRef.current < 0)) {\n              const col = prevIndex % cols;\n              const maxCol = maxIndex % cols;\n              const offset = maxIndex - (maxCol - col);\n              if (maxCol === col) {\n                indexRef.current = maxIndex;\n              } else {\n                indexRef.current = maxCol > col ? offset : offset - cols;\n              }\n            }\n          }\n          if (isIndexOutOfBounds(listRef, indexRef.current)) {\n            indexRef.current = prevIndex;\n          }\n          onNavigate(indexRef.current);\n        }\n        if (event.key === ARROW_DOWN) {\n          stopEvent(event);\n          if (prevIndex === -1) {\n            indexRef.current = minIndex;\n          } else {\n            indexRef.current = findNonDisabledIndex(listRef, {\n              startingIndex: prevIndex,\n              amount: cols,\n              disabledIndices\n            });\n            if (loop && prevIndex + cols > maxIndex) {\n              indexRef.current = findNonDisabledIndex(listRef, {\n                startingIndex: prevIndex % cols - cols,\n                amount: cols,\n                disabledIndices\n              });\n            }\n          }\n          if (isIndexOutOfBounds(listRef, indexRef.current)) {\n            indexRef.current = prevIndex;\n          }\n          onNavigate(indexRef.current);\n        }\n\n        // Remains on the same row/column.\n        if (orientation === 'both') {\n          const prevRow = Math.floor(prevIndex / cols);\n          if (event.key === ARROW_RIGHT) {\n            stopEvent(event);\n            if (prevIndex % cols !== cols - 1) {\n              indexRef.current = findNonDisabledIndex(listRef, {\n                startingIndex: prevIndex,\n                disabledIndices\n              });\n              if (loop && isDifferentRow(indexRef.current, cols, prevRow)) {\n                indexRef.current = findNonDisabledIndex(listRef, {\n                  startingIndex: prevIndex - prevIndex % cols - 1,\n                  disabledIndices\n                });\n              }\n            } else if (loop) {\n              indexRef.current = findNonDisabledIndex(listRef, {\n                startingIndex: prevIndex - prevIndex % cols - 1,\n                disabledIndices\n              });\n            }\n            if (isDifferentRow(indexRef.current, cols, prevRow)) {\n              indexRef.current = prevIndex;\n            }\n          }\n          if (event.key === ARROW_LEFT) {\n            stopEvent(event);\n            if (prevIndex % cols !== 0) {\n              indexRef.current = findNonDisabledIndex(listRef, {\n                startingIndex: prevIndex,\n                disabledIndices,\n                decrement: true\n              });\n              if (loop && isDifferentRow(indexRef.current, cols, prevRow)) {\n                indexRef.current = findNonDisabledIndex(listRef, {\n                  startingIndex: prevIndex + (cols - prevIndex % cols),\n                  decrement: true,\n                  disabledIndices\n                });\n              }\n            } else if (loop) {\n              indexRef.current = findNonDisabledIndex(listRef, {\n                startingIndex: prevIndex + (cols - prevIndex % cols),\n                decrement: true,\n                disabledIndices\n              });\n            }\n            if (isDifferentRow(indexRef.current, cols, prevRow)) {\n              indexRef.current = prevIndex;\n            }\n          }\n          const lastRow = Math.floor(maxIndex / cols) === prevRow;\n          if (isIndexOutOfBounds(listRef, indexRef.current)) {\n            if (loop && lastRow) {\n              indexRef.current = event.key === ARROW_LEFT ? maxIndex : findNonDisabledIndex(listRef, {\n                startingIndex: prevIndex - prevIndex % cols - 1,\n                disabledIndices\n              });\n            } else {\n              indexRef.current = prevIndex;\n            }\n          }\n          onNavigate(indexRef.current);\n          return;\n        }\n      }\n      if (isMainOrientationKey(event.key, orientation)) {\n        stopEvent(event);\n\n        // Reset the index if no item is focused.\n        if (open && !virtual && activeElement(event.currentTarget.ownerDocument) === event.currentTarget) {\n          indexRef.current = isMainOrientationToEndKey(event.key, orientation, rtl) ? minIndex : maxIndex;\n          onNavigate(indexRef.current);\n          return;\n        }\n        if (isMainOrientationToEndKey(event.key, orientation, rtl)) {\n          if (loop) {\n            indexRef.current = currentIndex >= maxIndex ? allowEscape && currentIndex !== listRef.current.length ? -1 : minIndex : findNonDisabledIndex(listRef, {\n              startingIndex: currentIndex,\n              disabledIndices\n            });\n          } else {\n            indexRef.current = Math.min(maxIndex, findNonDisabledIndex(listRef, {\n              startingIndex: currentIndex,\n              disabledIndices\n            }));\n          }\n        } else {\n          if (loop) {\n            indexRef.current = currentIndex <= minIndex ? allowEscape && currentIndex !== -1 ? listRef.current.length : maxIndex : findNonDisabledIndex(listRef, {\n              startingIndex: currentIndex,\n              decrement: true,\n              disabledIndices\n            });\n          } else {\n            indexRef.current = Math.max(minIndex, findNonDisabledIndex(listRef, {\n              startingIndex: currentIndex,\n              decrement: true,\n              disabledIndices\n            }));\n          }\n        }\n        if (isIndexOutOfBounds(listRef, indexRef.current)) {\n          onNavigate(null);\n        } else {\n          onNavigate(indexRef.current);\n        }\n      }\n    }\n    function checkVirtualMouse(event) {\n      if (focusItemOnOpen === 'auto' && isVirtualClick(event.nativeEvent)) {\n        focusItemOnOpenRef.current = true;\n      }\n    }\n    function checkVirtualPointer(event) {\n      // `pointerdown` fires first, reset the state then perform the checks.\n      focusItemOnOpenRef.current = focusItemOnOpen;\n      if (focusItemOnOpen === 'auto' && isVirtualPointerEvent(event.nativeEvent)) {\n        focusItemOnOpenRef.current = true;\n      }\n    }\n    const ariaActiveDescendantProp = virtual && open && hasActiveIndex && {\n      'aria-activedescendant': activeId\n    };\n    return {\n      reference: {\n        ...ariaActiveDescendantProp,\n        onKeyDown(event) {\n          isPointerModalityRef.current = false;\n          const isArrowKey = event.key.indexOf('Arrow') === 0;\n          if (virtual && open) {\n            return onKeyDown(event);\n          }\n\n          // If a floating element should not open on arrow key down, avoid\n          // setting `activeIndex` while it's closed.\n          if (!open && !openOnArrowKeyDown && isArrowKey) {\n            return;\n          }\n          const isNavigationKey = isArrowKey || event.key === 'Enter' || event.key.trim() === '';\n          const isMainKey = isMainOrientationKey(event.key, orientation);\n          const isCrossKey = isCrossOrientationOpenKey(event.key, orientation, rtl);\n          if (isNavigationKey) {\n            keyRef.current = nested && isMainKey ? null : event.key;\n          }\n          if (nested) {\n            if (isCrossKey) {\n              stopEvent(event);\n              if (open) {\n                indexRef.current = getMinIndex(listRef, disabledIndices);\n                onNavigate(indexRef.current);\n              } else {\n                onOpenChange(true, event.nativeEvent);\n              }\n            }\n            return;\n          }\n          if (isMainKey) {\n            if (selectedIndex != null) {\n              indexRef.current = selectedIndex;\n            }\n            stopEvent(event);\n            if (!open && openOnArrowKeyDown) {\n              onOpenChange(true, event.nativeEvent);\n            } else {\n              onKeyDown(event);\n            }\n            if (open) {\n              onNavigate(indexRef.current);\n            }\n          }\n        },\n        onFocus() {\n          if (open) {\n            onNavigate(null);\n          }\n        },\n        onPointerDown: checkVirtualPointer,\n        onMouseDown: checkVirtualMouse,\n        onClick: checkVirtualMouse\n      },\n      floating: {\n        'aria-orientation': orientation === 'both' ? undefined : orientation,\n        ...ariaActiveDescendantProp,\n        onKeyDown,\n        onPointerMove() {\n          isPointerModalityRef.current = true;\n        }\n      },\n      item\n    };\n  }, [domReference, refs, activeId, disabledIndicesRef, latestOpenRef, listRef, enabled, orientation, rtl, virtual, open, hasActiveIndex, nested, selectedIndex, openOnArrowKeyDown, allowEscape, cols, loop, focusItemOnOpen, onNavigate, onOpenChange, item]);\n}\n\n/**\n * Merges an array of refs into a single memoized callback ref or `null`.\n * @see https://floating-ui.com/docs/useMergeRefs\n */\nfunction useMergeRefs(refs) {\n  return React.useMemo(() => {\n    if (refs.every(ref => ref == null)) {\n      return null;\n    }\n    return value => {\n      refs.forEach(ref => {\n        if (typeof ref === 'function') {\n          ref(value);\n        } else if (ref != null) {\n          ref.current = value;\n        }\n      });\n    };\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, refs);\n}\n\n/**\n * Adds base screen reader props to the reference and floating elements for a\n * given floating element `role`.\n * @see https://floating-ui.com/docs/useRole\n */\nfunction useRole(context, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    floatingId\n  } = context;\n  const {\n    enabled = true,\n    role = 'dialog'\n  } = props;\n  const referenceId = useId();\n  return React.useMemo(() => {\n    const floatingProps = {\n      id: floatingId,\n      role\n    };\n    if (!enabled) {\n      return {};\n    }\n    if (role === 'tooltip') {\n      return {\n        reference: {\n          'aria-describedby': open ? floatingId : undefined\n        },\n        floating: floatingProps\n      };\n    }\n    return {\n      reference: {\n        'aria-expanded': open ? 'true' : 'false',\n        'aria-haspopup': role === 'alertdialog' ? 'dialog' : role,\n        'aria-controls': open ? floatingId : undefined,\n        ...(role === 'listbox' && {\n          role: 'combobox'\n        }),\n        ...(role === 'menu' && {\n          id: referenceId\n        })\n      },\n      floating: {\n        ...floatingProps,\n        ...(role === 'menu' && {\n          'aria-labelledby': referenceId\n        })\n      }\n    };\n  }, [enabled, role, open, floatingId, referenceId]);\n}\n\n// Converts a JS style key like `backgroundColor` to a CSS transition-property\n// like `background-color`.\nconst camelCaseToKebabCase = str => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? '-' : '') + $.toLowerCase());\nfunction execWithArgsOrReturn(valueOrFn, args) {\n  return typeof valueOrFn === 'function' ? valueOrFn(args) : valueOrFn;\n}\nfunction useDelayUnmount(open, durationMs) {\n  const [isMounted, setIsMounted] = React.useState(open);\n  if (open && !isMounted) {\n    setIsMounted(true);\n  }\n  React.useEffect(() => {\n    if (!open) {\n      const timeout = setTimeout(() => setIsMounted(false), durationMs);\n      return () => clearTimeout(timeout);\n    }\n  }, [open, durationMs]);\n  return isMounted;\n}\n/**\n * Provides a status string to apply CSS transitions to a floating element,\n * correctly handling placement-aware transitions.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstatus\n */\nfunction useTransitionStatus(context, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    elements: {\n      floating\n    }\n  } = context;\n  const {\n    duration = 250\n  } = props;\n  const isNumberDuration = typeof duration === 'number';\n  const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n  const [initiated, setInitiated] = React.useState(false);\n  const [status, setStatus] = React.useState('unmounted');\n  const isMounted = useDelayUnmount(open, closeDuration);\n\n  // `initiated` check prevents this `setState` call from breaking\n  // <FloatingPortal />. This call is necessary to ensure subsequent opens\n  // after the initial one allows the correct side animation to play when the\n  // placement has changed.\n  index(() => {\n    if (initiated && !isMounted) {\n      setStatus('unmounted');\n    }\n  }, [initiated, isMounted]);\n  index(() => {\n    if (!floating) return;\n    if (open) {\n      setStatus('initial');\n      const frame = requestAnimationFrame(() => {\n        setStatus('open');\n      });\n      return () => {\n        cancelAnimationFrame(frame);\n      };\n    } else {\n      setInitiated(true);\n      setStatus('close');\n    }\n  }, [open, floating]);\n  return {\n    isMounted,\n    status\n  };\n}\n/**\n * Provides styles to apply CSS transitions to a floating element, correctly\n * handling placement-aware transitions. Wrapper around `useTransitionStatus`.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstyles\n */\nfunction useTransitionStyles(context, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    initial: unstable_initial = {\n      opacity: 0\n    },\n    open: unstable_open,\n    close: unstable_close,\n    common: unstable_common,\n    duration = 250\n  } = props;\n  const placement = context.placement;\n  const side = placement.split('-')[0];\n  const fnArgs = React.useMemo(() => ({\n    side,\n    placement\n  }), [side, placement]);\n  const isNumberDuration = typeof duration === 'number';\n  const openDuration = (isNumberDuration ? duration : duration.open) || 0;\n  const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n  const [styles, setStyles] = React.useState(() => ({\n    ...execWithArgsOrReturn(unstable_common, fnArgs),\n    ...execWithArgsOrReturn(unstable_initial, fnArgs)\n  }));\n  const {\n    isMounted,\n    status\n  } = useTransitionStatus(context, {\n    duration\n  });\n  const initialRef = useLatestRef(unstable_initial);\n  const openRef = useLatestRef(unstable_open);\n  const closeRef = useLatestRef(unstable_close);\n  const commonRef = useLatestRef(unstable_common);\n  index(() => {\n    const initialStyles = execWithArgsOrReturn(initialRef.current, fnArgs);\n    const closeStyles = execWithArgsOrReturn(closeRef.current, fnArgs);\n    const commonStyles = execWithArgsOrReturn(commonRef.current, fnArgs);\n    const openStyles = execWithArgsOrReturn(openRef.current, fnArgs) || Object.keys(initialStyles).reduce((acc, key) => {\n      acc[key] = '';\n      return acc;\n    }, {});\n    if (status === 'initial') {\n      setStyles(styles => ({\n        transitionProperty: styles.transitionProperty,\n        ...commonStyles,\n        ...initialStyles\n      }));\n    }\n    if (status === 'open') {\n      setStyles({\n        transitionProperty: Object.keys(openStyles).map(camelCaseToKebabCase).join(','),\n        transitionDuration: openDuration + \"ms\",\n        ...commonStyles,\n        ...openStyles\n      });\n    }\n    if (status === 'close') {\n      const styles = closeStyles || initialStyles;\n      setStyles({\n        transitionProperty: Object.keys(styles).map(camelCaseToKebabCase).join(','),\n        transitionDuration: closeDuration + \"ms\",\n        ...commonStyles,\n        ...styles\n      });\n    }\n  }, [closeDuration, closeRef, initialRef, openRef, commonRef, openDuration, status, fnArgs]);\n  return {\n    isMounted,\n    styles\n  };\n}\n\n/**\n * Provides a matching callback that can be used to focus an item as the user\n * types, often used in tandem with `useListNavigation()`.\n * @see https://floating-ui.com/docs/useTypeahead\n */\nfunction useTypeahead(context, props) {\n  var _ref;\n  const {\n    open,\n    dataRef\n  } = context;\n  const {\n    listRef,\n    activeIndex,\n    onMatch: unstable_onMatch,\n    onTypingChange: unstable_onTypingChange,\n    enabled = true,\n    findMatch = null,\n    resetMs = 750,\n    ignoreKeys = [],\n    selectedIndex = null\n  } = props;\n  const timeoutIdRef = React.useRef();\n  const stringRef = React.useRef('');\n  const prevIndexRef = React.useRef((_ref = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref : -1);\n  const matchIndexRef = React.useRef(null);\n  const onMatch = useEffectEvent(unstable_onMatch);\n  const onTypingChange = useEffectEvent(unstable_onTypingChange);\n  const findMatchRef = useLatestRef(findMatch);\n  const ignoreKeysRef = useLatestRef(ignoreKeys);\n  index(() => {\n    if (open) {\n      clearTimeout(timeoutIdRef.current);\n      matchIndexRef.current = null;\n      stringRef.current = '';\n    }\n  }, [open]);\n  index(() => {\n    // Sync arrow key navigation but not typeahead navigation.\n    if (open && stringRef.current === '') {\n      var _ref2;\n      prevIndexRef.current = (_ref2 = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref2 : -1;\n    }\n  }, [open, selectedIndex, activeIndex]);\n  return React.useMemo(() => {\n    if (!enabled) {\n      return {};\n    }\n    function setTypingChange(value) {\n      if (value) {\n        if (!dataRef.current.typing) {\n          dataRef.current.typing = value;\n          onTypingChange(value);\n        }\n      } else {\n        if (dataRef.current.typing) {\n          dataRef.current.typing = value;\n          onTypingChange(value);\n        }\n      }\n    }\n    function getMatchingIndex(list, orderedList, string) {\n      const str = findMatchRef.current ? findMatchRef.current(orderedList, string) : orderedList.find(text => (text == null ? void 0 : text.toLocaleLowerCase().indexOf(string.toLocaleLowerCase())) === 0);\n      return str ? list.indexOf(str) : -1;\n    }\n    function onKeyDown(event) {\n      const listContent = listRef.current;\n      if (stringRef.current.length > 0 && stringRef.current[0] !== ' ') {\n        if (getMatchingIndex(listContent, listContent, stringRef.current) === -1) {\n          setTypingChange(false);\n        } else if (event.key === ' ') {\n          stopEvent(event);\n        }\n      }\n      if (listContent == null || ignoreKeysRef.current.includes(event.key) ||\n      // Character key.\n      event.key.length !== 1 ||\n      // Modifier key.\n      event.ctrlKey || event.metaKey || event.altKey) {\n        return;\n      }\n      if (open && event.key !== ' ') {\n        stopEvent(event);\n        setTypingChange(true);\n      }\n\n      // Bail out if the list contains a word like \"llama\" or \"aaron\". TODO:\n      // allow it in this case, too.\n      const allowRapidSuccessionOfFirstLetter = listContent.every(text => {\n        var _text$, _text$2;\n        return text ? ((_text$ = text[0]) == null ? void 0 : _text$.toLocaleLowerCase()) !== ((_text$2 = text[1]) == null ? void 0 : _text$2.toLocaleLowerCase()) : true;\n      });\n\n      // Allows the user to cycle through items that start with the same letter\n      // in rapid succession.\n      if (allowRapidSuccessionOfFirstLetter && stringRef.current === event.key) {\n        stringRef.current = '';\n        prevIndexRef.current = matchIndexRef.current;\n      }\n      stringRef.current += event.key;\n      clearTimeout(timeoutIdRef.current);\n      timeoutIdRef.current = setTimeout(() => {\n        stringRef.current = '';\n        prevIndexRef.current = matchIndexRef.current;\n        setTypingChange(false);\n      }, resetMs);\n      const prevIndex = prevIndexRef.current;\n      const index = getMatchingIndex(listContent, [...listContent.slice((prevIndex || 0) + 1), ...listContent.slice(0, (prevIndex || 0) + 1)], stringRef.current);\n      if (index !== -1) {\n        onMatch(index);\n        matchIndexRef.current = index;\n      } else if (event.key !== ' ') {\n        stringRef.current = '';\n        setTypingChange(false);\n      }\n    }\n    return {\n      reference: {\n        onKeyDown\n      },\n      floating: {\n        onKeyDown,\n        onKeyUp(event) {\n          if (event.key === ' ') {\n            setTypingChange(false);\n          }\n        }\n      }\n    };\n  }, [enabled, open, dataRef, listRef, resetMs, ignoreKeysRef, findMatchRef, onMatch, onTypingChange]);\n}\n\nfunction getArgsWithCustomFloatingHeight(state, height) {\n  return {\n    ...state,\n    rects: {\n      ...state.rects,\n      floating: {\n        ...state.rects.floating,\n        height\n      }\n    }\n  };\n}\n/**\n * Positions the floating element such that an inner element inside\n * of it is anchored to the reference element.\n * @see https://floating-ui.com/docs/inner\n */\nconst inner = props => ({\n  name: 'inner',\n  options: props,\n  async fn(state) {\n    const {\n      listRef,\n      overflowRef,\n      onFallbackChange,\n      offset: innerOffset = 0,\n      index = 0,\n      minItemsVisible = 4,\n      referenceOverflowThreshold = 0,\n      scrollRef,\n      ...detectOverflowOptions\n    } = props;\n    const {\n      rects,\n      elements: {\n        floating\n      }\n    } = state;\n    const item = listRef.current[index];\n    if (process.env.NODE_ENV !== \"production\") {\n      if (!state.placement.startsWith('bottom')) {\n        console.warn(['Floating UI: `placement` side must be \"bottom\" when using the', '`inner` middleware.'].join(' '));\n      }\n    }\n    if (!item) {\n      return {};\n    }\n    const nextArgs = {\n      ...state,\n      ...(await offset(-item.offsetTop - floating.clientTop - rects.reference.height / 2 - item.offsetHeight / 2 - innerOffset).fn(state))\n    };\n    const el = (scrollRef == null ? void 0 : scrollRef.current) || floating;\n    const overflow = await detectOverflow(getArgsWithCustomFloatingHeight(nextArgs, el.scrollHeight), detectOverflowOptions);\n    const refOverflow = await detectOverflow(nextArgs, {\n      ...detectOverflowOptions,\n      elementContext: 'reference'\n    });\n    const diffY = Math.max(0, overflow.top);\n    const nextY = nextArgs.y + diffY;\n    const maxHeight = Math.max(0, el.scrollHeight - diffY - Math.max(0, overflow.bottom));\n    el.style.maxHeight = maxHeight + \"px\";\n    el.scrollTop = diffY;\n\n    // There is not enough space, fallback to standard anchored positioning\n    if (onFallbackChange) {\n      if (el.offsetHeight < item.offsetHeight * Math.min(minItemsVisible, listRef.current.length - 1) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold) {\n        flushSync(() => onFallbackChange(true));\n      } else {\n        flushSync(() => onFallbackChange(false));\n      }\n    }\n    if (overflowRef) {\n      overflowRef.current = await detectOverflow(getArgsWithCustomFloatingHeight({\n        ...nextArgs,\n        y: nextY\n      }, el.offsetHeight), detectOverflowOptions);\n    }\n    return {\n      y: nextY\n    };\n  }\n});\n/**\n * Changes the `inner` middleware's `offset` upon a `wheel` event to\n * expand the floating element's height, revealing more list items.\n * @see https://floating-ui.com/docs/inner\n */\nfunction useInnerOffset(context, props) {\n  const {\n    open,\n    elements\n  } = context;\n  const {\n    enabled = true,\n    overflowRef,\n    scrollRef,\n    onChange: unstable_onChange\n  } = props;\n  const onChange = useEffectEvent(unstable_onChange);\n  const controlledScrollingRef = React.useRef(false);\n  const prevScrollTopRef = React.useRef(null);\n  const initialOverflowRef = React.useRef(null);\n  React.useEffect(() => {\n    if (!enabled) {\n      return;\n    }\n    function onWheel(e) {\n      if (e.ctrlKey || !el || overflowRef.current == null) {\n        return;\n      }\n      const dY = e.deltaY;\n      const isAtTop = overflowRef.current.top >= -0.5;\n      const isAtBottom = overflowRef.current.bottom >= -0.5;\n      const remainingScroll = el.scrollHeight - el.clientHeight;\n      const sign = dY < 0 ? -1 : 1;\n      const method = dY < 0 ? 'max' : 'min';\n      if (el.scrollHeight <= el.clientHeight) {\n        return;\n      }\n      if (!isAtTop && dY > 0 || !isAtBottom && dY < 0) {\n        e.preventDefault();\n        flushSync(() => {\n          onChange(d => d + Math[method](dY, remainingScroll * sign));\n        });\n      } else if (/firefox/i.test(getUserAgent())) {\n        // Needed to propagate scrolling during momentum scrolling phase once\n        // it gets limited by the boundary. UX improvement, not critical.\n        el.scrollTop += dY;\n      }\n    }\n    const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n    if (open && el) {\n      el.addEventListener('wheel', onWheel);\n\n      // Wait for the position to be ready.\n      requestAnimationFrame(() => {\n        prevScrollTopRef.current = el.scrollTop;\n        if (overflowRef.current != null) {\n          initialOverflowRef.current = {\n            ...overflowRef.current\n          };\n        }\n      });\n      return () => {\n        prevScrollTopRef.current = null;\n        initialOverflowRef.current = null;\n        el.removeEventListener('wheel', onWheel);\n      };\n    }\n  }, [enabled, open, elements.floating, overflowRef, scrollRef, onChange]);\n  return React.useMemo(() => {\n    if (!enabled) {\n      return {};\n    }\n    return {\n      floating: {\n        onKeyDown() {\n          controlledScrollingRef.current = true;\n        },\n        onWheel() {\n          controlledScrollingRef.current = false;\n        },\n        onPointerMove() {\n          controlledScrollingRef.current = false;\n        },\n        onScroll() {\n          const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n          if (!overflowRef.current || !el || !controlledScrollingRef.current) {\n            return;\n          }\n          if (prevScrollTopRef.current !== null) {\n            const scrollDiff = el.scrollTop - prevScrollTopRef.current;\n            if (overflowRef.current.bottom < -0.5 && scrollDiff < -1 || overflowRef.current.top < -0.5 && scrollDiff > 1) {\n              flushSync(() => onChange(d => d + scrollDiff));\n            }\n          }\n\n          // [Firefox] Wait for the height change to have been applied.\n          requestAnimationFrame(() => {\n            prevScrollTopRef.current = el.scrollTop;\n          });\n        }\n      }\n    };\n  }, [enabled, overflowRef, elements.floating, scrollRef, onChange]);\n}\n\nfunction isPointInPolygon(point, polygon) {\n  const [x, y] = point;\n  let isInside = false;\n  const length = polygon.length;\n  for (let i = 0, j = length - 1; i < length; j = i++) {\n    const [xi, yi] = polygon[i] || [0, 0];\n    const [xj, yj] = polygon[j] || [0, 0];\n    const intersect = yi >= y !== yj >= y && x <= (xj - xi) * (y - yi) / (yj - yi) + xi;\n    if (intersect) {\n      isInside = !isInside;\n    }\n  }\n  return isInside;\n}\nfunction isInside(point, rect) {\n  return point[0] >= rect.x && point[0] <= rect.x + rect.width && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n}\n/**\n * Generates a safe polygon area that the user can traverse without closing the\n * floating element once leaving the reference element.\n * @see https://floating-ui.com/docs/useHover#safePolygon\n */\nfunction safePolygon(options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    buffer = 0.5,\n    blockPointerEvents = false,\n    requireIntent = true\n  } = options;\n  let timeoutId;\n  let hasLanded = false;\n  let lastX = null;\n  let lastY = null;\n  let lastCursorTime = performance.now();\n  function getCursorSpeed(x, y) {\n    const currentTime = performance.now();\n    const elapsedTime = currentTime - lastCursorTime;\n    if (lastX === null || lastY === null || elapsedTime === 0) {\n      lastX = x;\n      lastY = y;\n      lastCursorTime = currentTime;\n      return null;\n    }\n    const deltaX = x - lastX;\n    const deltaY = y - lastY;\n    const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n    const speed = distance / elapsedTime; // px / ms\n\n    lastX = x;\n    lastY = y;\n    lastCursorTime = currentTime;\n    return speed;\n  }\n  const fn = _ref => {\n    let {\n      x,\n      y,\n      placement,\n      elements,\n      onClose,\n      nodeId,\n      tree\n    } = _ref;\n    return function onMouseMove(event) {\n      function close() {\n        clearTimeout(timeoutId);\n        onClose();\n      }\n      clearTimeout(timeoutId);\n      if (!elements.domReference || !elements.floating || placement == null || x == null || y == null) {\n        return;\n      }\n      const {\n        clientX,\n        clientY\n      } = event;\n      const clientPoint = [clientX, clientY];\n      const target = getTarget(event);\n      const isLeave = event.type === 'mouseleave';\n      const isOverFloatingEl = contains(elements.floating, target);\n      const isOverReferenceEl = contains(elements.domReference, target);\n      const refRect = elements.domReference.getBoundingClientRect();\n      const rect = elements.floating.getBoundingClientRect();\n      const side = placement.split('-')[0];\n      const cursorLeaveFromRight = x > rect.right - rect.width / 2;\n      const cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;\n      const isOverReferenceRect = isInside(clientPoint, refRect);\n      const isFloatingWider = rect.width > refRect.width;\n      const isFloatingTaller = rect.height > refRect.height;\n      const left = (isFloatingWider ? refRect : rect).left;\n      const right = (isFloatingWider ? refRect : rect).right;\n      const top = (isFloatingTaller ? refRect : rect).top;\n      const bottom = (isFloatingTaller ? refRect : rect).bottom;\n      if (isOverFloatingEl) {\n        hasLanded = true;\n        if (!isLeave) {\n          return;\n        }\n      }\n      if (isOverReferenceEl) {\n        hasLanded = false;\n      }\n      if (isOverReferenceEl && !isLeave) {\n        hasLanded = true;\n        return;\n      }\n\n      // Prevent overlapping floating element from being stuck in an open-close\n      // loop: https://github.com/floating-ui/floating-ui/issues/1910\n      if (isLeave && isElement(event.relatedTarget) && contains(elements.floating, event.relatedTarget)) {\n        return;\n      }\n\n      // If any nested child is open, abort.\n      if (tree && getChildren(tree.nodesRef.current, nodeId).some(_ref2 => {\n        let {\n          context\n        } = _ref2;\n        return context == null ? void 0 : context.open;\n      })) {\n        return;\n      }\n\n      // If the pointer is leaving from the opposite side, the \"buffer\" logic\n      // creates a point where the floating element remains open, but should be\n      // ignored.\n      // A constant of 1 handles floating point rounding errors.\n      if (side === 'top' && y >= refRect.bottom - 1 || side === 'bottom' && y <= refRect.top + 1 || side === 'left' && x >= refRect.right - 1 || side === 'right' && x <= refRect.left + 1) {\n        return close();\n      }\n\n      // Ignore when the cursor is within the rectangular trough between the\n      // two elements. Since the triangle is created from the cursor point,\n      // which can start beyond the ref element's edge, traversing back and\n      // forth from the ref to the floating element can cause it to close. This\n      // ensures it always remains open in that case.\n      let rectPoly = [];\n      switch (side) {\n        case 'top':\n          rectPoly = [[left, refRect.top + 1], [left, rect.bottom - 1], [right, rect.bottom - 1], [right, refRect.top + 1]];\n          break;\n        case 'bottom':\n          rectPoly = [[left, rect.top + 1], [left, refRect.bottom - 1], [right, refRect.bottom - 1], [right, rect.top + 1]];\n          break;\n        case 'left':\n          rectPoly = [[rect.right - 1, bottom], [rect.right - 1, top], [refRect.left + 1, top], [refRect.left + 1, bottom]];\n          break;\n        case 'right':\n          rectPoly = [[refRect.right - 1, bottom], [refRect.right - 1, top], [rect.left + 1, top], [rect.left + 1, bottom]];\n          break;\n      }\n      function getPolygon(_ref3) {\n        let [x, y] = _ref3;\n        switch (side) {\n          case 'top':\n            {\n              const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n              const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n              const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.bottom - buffer : isFloatingWider ? rect.bottom - buffer : rect.top], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.bottom - buffer : rect.top : rect.bottom - buffer]];\n              return [cursorPointOne, cursorPointTwo, ...commonPoints];\n            }\n          case 'bottom':\n            {\n              const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n              const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n              const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.top + buffer : isFloatingWider ? rect.top + buffer : rect.bottom], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.top + buffer : rect.bottom : rect.top + buffer]];\n              return [cursorPointOne, cursorPointTwo, ...commonPoints];\n            }\n          case 'left':\n            {\n              const cursorPointOne = [x + buffer + 1, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n              const cursorPointTwo = [x + buffer + 1, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n              const commonPoints = [[cursorLeaveFromBottom ? rect.right - buffer : isFloatingTaller ? rect.right - buffer : rect.left, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.right - buffer : rect.left : rect.right - buffer, rect.bottom]];\n              return [...commonPoints, cursorPointOne, cursorPointTwo];\n            }\n          case 'right':\n            {\n              const cursorPointOne = [x - buffer, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n              const cursorPointTwo = [x - buffer, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n              const commonPoints = [[cursorLeaveFromBottom ? rect.left + buffer : isFloatingTaller ? rect.left + buffer : rect.right, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.left + buffer : rect.right : rect.left + buffer, rect.bottom]];\n              return [cursorPointOne, cursorPointTwo, ...commonPoints];\n            }\n        }\n      }\n      if (isPointInPolygon([clientX, clientY], rectPoly)) {\n        return;\n      } else if (hasLanded && !isOverReferenceRect) {\n        return close();\n      }\n      if (!isLeave && requireIntent) {\n        const cursorSpeed = getCursorSpeed(event.clientX, event.clientY);\n        const cursorSpeedThreshold = 0.1;\n        if (cursorSpeed !== null && cursorSpeed < cursorSpeedThreshold) {\n          return close();\n        }\n      }\n      if (!isPointInPolygon([clientX, clientY], getPolygon([x, y]))) {\n        close();\n      } else if (!hasLanded && requireIntent) {\n        timeoutId = window.setTimeout(close, 40);\n      }\n    };\n  };\n  fn.__options = {\n    blockPointerEvents\n  };\n  return fn;\n}\n\nexport { FloatingArrow, FloatingDelayGroup, FloatingFocusManager, FloatingList, FloatingNode, FloatingOverlay, FloatingPortal, FloatingTree, inner, safePolygon, useClick, useClientPoint, useDelayGroup, useDelayGroupContext, useDismiss, useFloating, useFloatingNodeId, useFloatingParentNodeId, useFloatingPortalNode, useFloatingTree, useFocus, useHover, useId, useInnerOffset, useInteractions, useListItem, useListNavigation, useMergeRefs, useRole, useTransitionStatus, useTransitionStyles, useTypeahead };\n",null,"function o(f){return r=>{f.forEach(n=>{typeof n==\"function\"?n(r):n!=null&&(n.current=r)})}}export{o as mergeRefs};\n//# sourceMappingURL=index.mjs.map\n","// THIS FILE IS AUTO GENERATED\nimport { GenIcon } from '../lib';\nexport function FiActivity (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 12 18 12 15 21 9 3 6 12 2 12\"}}]})(props);\n};\nexport function FiAirplay (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1\"}},{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 15 17 21 7 21 12 15\"}}]})(props);\n};\nexport function FiAlertCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12.01\",\"y2\":\"16\"}}]})(props);\n};\nexport function FiAlertOctagon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12.01\",\"y2\":\"16\"}}]})(props);\n};\nexport function FiAlertTriangle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"9\",\"x2\":\"12\",\"y2\":\"13\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"17\",\"x2\":\"12.01\",\"y2\":\"17\"}}]})(props);\n};\nexport function FiAlignCenter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"10\",\"x2\":\"6\",\"y2\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"18\",\"x2\":\"6\",\"y2\":\"18\"}}]})(props);\n};\nexport function FiAlignJustify (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"10\",\"x2\":\"3\",\"y2\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"}}]})(props);\n};\nexport function FiAlignLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"10\",\"x2\":\"3\",\"y2\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"}}]})(props);\n};\nexport function FiAlignRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"10\",\"x2\":\"7\",\"y2\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"7\",\"y2\":\"18\"}}]})(props);\n};\nexport function FiAnchor (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"r\":\"3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12H2a10 10 0 0 0 20 0h-3\"}}]})(props);\n};\nexport function FiAperture (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.31\",\"y1\":\"8\",\"x2\":\"20.05\",\"y2\":\"17.94\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9.69\",\"y1\":\"8\",\"x2\":\"21.17\",\"y2\":\"8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"7.38\",\"y1\":\"12\",\"x2\":\"13.12\",\"y2\":\"2.06\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9.69\",\"y1\":\"16\",\"x2\":\"3.95\",\"y2\":\"6.06\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.31\",\"y1\":\"16\",\"x2\":\"2.83\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16.62\",\"y1\":\"12\",\"x2\":\"10.88\",\"y2\":\"21.94\"}}]})(props);\n};\nexport function FiArchive (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 8 21 21 3 21 3 8\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"3\",\"width\":\"22\",\"height\":\"5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"12\",\"x2\":\"14\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiArrowDownCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 12 12 16 16 12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"16\"}}]})(props);\n};\nexport function FiArrowDownLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"7\",\"x2\":\"7\",\"y2\":\"17\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 17 7 17 7 7\"}}]})(props);\n};\nexport function FiArrowDownRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"7\",\"x2\":\"17\",\"y2\":\"17\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 7 17 17 7 17\"}}]})(props);\n};\nexport function FiArrowDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"5\",\"x2\":\"12\",\"y2\":\"19\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"19 12 12 19 5 12\"}}]})(props);\n};\nexport function FiArrowLeftCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 8 8 12 12 16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"12\",\"x2\":\"8\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiArrowLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"12\",\"x2\":\"5\",\"y2\":\"12\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 19 5 12 12 5\"}}]})(props);\n};\nexport function FiArrowRightCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 16 16 12 12 8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiArrowRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 5 19 12 12 19\"}}]})(props);\n};\nexport function FiArrowUpCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 12 12 8 8 12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"8\"}}]})(props);\n};\nexport function FiArrowUpLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"17\",\"x2\":\"7\",\"y2\":\"7\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 17 7 7 17 7\"}}]})(props);\n};\nexport function FiArrowUpRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"17\",\"x2\":\"17\",\"y2\":\"7\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 7 17 7 17 17\"}}]})(props);\n};\nexport function FiArrowUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"12\",\"y2\":\"5\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"5 12 12 5 19 12\"}}]})(props);\n};\nexport function FiAtSign (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-3.92 7.94\"}}]})(props);\n};\nexport function FiAward (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"8\",\"r\":\"7\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8.21 13.89 7 23 12 20 17 23 15.79 13.88\"}}]})(props);\n};\nexport function FiBarChart2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"20\",\"x2\":\"18\",\"y2\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12\",\"y2\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"20\",\"x2\":\"6\",\"y2\":\"14\"}}]})(props);\n};\nexport function FiBarChart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12\",\"y2\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"20\",\"x2\":\"18\",\"y2\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"20\",\"x2\":\"6\",\"y2\":\"16\"}}]})(props);\n};\nexport function FiBatteryCharging (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 18H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3.19M15 6h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-3.19\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"13\",\"x2\":\"23\",\"y2\":\"11\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"11 6 7 12 13 12 9 18\"}}]})(props);\n};\nexport function FiBattery (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"6\",\"width\":\"18\",\"height\":\"12\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"13\",\"x2\":\"23\",\"y2\":\"11\"}}]})(props);\n};\nexport function FiBellOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.73 21a2 2 0 0 1-3.46 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.63 13A17.89 17.89 0 0 1 18 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.26 6.26A5.86 5.86 0 0 0 6 8c0 7-3 9-3 9h14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8a6 6 0 0 0-9.33-5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"}}]})(props);\n};\nexport function FiBell (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.73 21a2 2 0 0 1-3.46 0\"}}]})(props);\n};\nexport function FiBluetooth (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"6.5 6.5 17.5 17.5 12 23 12 1 17.5 6.5 6.5 17.5\"}}]})(props);\n};\nexport function FiBold (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 4h8a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 12h9a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z\"}}]})(props);\n};\nexport function FiBookOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"}}]})(props);\n};\nexport function FiBook (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"}}]})(props);\n};\nexport function FiBookmark (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z\"}}]})(props);\n};\nexport function FiBox (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.27 6.96 12 12.01 20.73 6.96\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22.08\",\"x2\":\"12\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiBriefcase (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"7\",\"width\":\"20\",\"height\":\"14\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"}}]})(props);\n};\nexport function FiCalendar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"4\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"2\",\"x2\":\"16\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"2\",\"x2\":\"8\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"10\",\"x2\":\"21\",\"y2\":\"10\"}}]})(props);\n};\nexport function FiCameraOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 21H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3m3-3h6l2 3h4a2 2 0 0 1 2 2v9.34m-7.72-2.06a4 4 0 1 1-5.56-5.56\"}}]})(props);\n};\nexport function FiCamera (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"13\",\"r\":\"4\"}}]})(props);\n};\nexport function FiCast (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"20\",\"x2\":\"2.01\",\"y2\":\"20\"}}]})(props);\n};\nexport function FiCheckCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 4 12 14.01 9 11.01\"}}]})(props);\n};\nexport function FiCheckSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 11 12 14 22 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11\"}}]})(props);\n};\nexport function FiCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"20 6 9 17 4 12\"}}]})(props);\n};\nexport function FiChevronDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"6 9 12 15 18 9\"}}]})(props);\n};\nexport function FiChevronLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 18 9 12 15 6\"}}]})(props);\n};\nexport function FiChevronRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 18 15 12 9 6\"}}]})(props);\n};\nexport function FiChevronUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"18 15 12 9 6 15\"}}]})(props);\n};\nexport function FiChevronsDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 13 12 18 17 13\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 6 12 11 17 6\"}}]})(props);\n};\nexport function FiChevronsLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"11 17 6 12 11 7\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"18 17 13 12 18 7\"}}]})(props);\n};\nexport function FiChevronsRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"13 17 18 12 13 7\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"6 17 11 12 6 7\"}}]})(props);\n};\nexport function FiChevronsUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 11 12 6 7 11\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 18 12 13 7 18\"}}]})(props);\n};\nexport function FiChrome (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21.17\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3.95\",\"y1\":\"6.06\",\"x2\":\"8.54\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10.88\",\"y1\":\"21.94\",\"x2\":\"15.46\",\"y2\":\"14\"}}]})(props);\n};\nexport function FiCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}}]})(props);\n};\nexport function FiClipboard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"8\",\"y\":\"2\",\"width\":\"8\",\"height\":\"4\",\"rx\":\"1\",\"ry\":\"1\"}}]})(props);\n};\nexport function FiClock (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 6 12 12 16 14\"}}]})(props);\n};\nexport function FiCloudDrizzle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"19\",\"x2\":\"8\",\"y2\":\"21\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"19\",\"x2\":\"16\",\"y2\":\"21\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"16\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"21\",\"x2\":\"12\",\"y2\":\"23\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"15\",\"x2\":\"12\",\"y2\":\"17\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25\"}}]})(props);\n};\nexport function FiCloudLightning (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 16.9A5 5 0 0 0 18 7h-1.26a8 8 0 1 0-11.62 9\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"13 11 9 17 15 17 11 23\"}}]})(props);\n};\nexport function FiCloudOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.61 16.95A5 5 0 0 0 18 10h-1.26a8 8 0 0 0-7.05-6M5 5a8 8 0 0 0 4 15h9a5 5 0 0 0 1.7-.3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"}}]})(props);\n};\nexport function FiCloudRain (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"16\",\"y2\":\"21\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"21\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"15\",\"x2\":\"12\",\"y2\":\"23\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25\"}}]})(props);\n};\nexport function FiCloudSnow (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 17.58A5 5 0 0 0 18 8h-1.26A8 8 0 1 0 4 16.25\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"16\",\"x2\":\"8.01\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"20\",\"x2\":\"8.01\",\"y2\":\"20\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12.01\",\"y2\":\"18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12.01\",\"y2\":\"22\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"16\",\"x2\":\"16.01\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"20\",\"x2\":\"16.01\",\"y2\":\"20\"}}]})(props);\n};\nexport function FiCloud (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z\"}}]})(props);\n};\nexport function FiCode (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 18 22 12 16 6\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 6 2 12 8 18\"}}]})(props);\n};\nexport function FiCodepen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 22 8.5 22 15.5 12 22 2 15.5 2 8.5 12 2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"15.5\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 8.5 12 15.5 2 8.5\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"2 15.5 12 8.5 22 15.5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"8.5\"}}]})(props);\n};\nexport function FiCodesandbox (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7.5 4.21 12 6.81 16.5 4.21\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7.5 19.79 7.5 14.6 3 12\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 12 16.5 14.6 16.5 19.79\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.27 6.96 12 12.01 20.73 6.96\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22.08\",\"x2\":\"12\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiCoffee (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8h1a4 4 0 0 1 0 8h-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"1\",\"x2\":\"6\",\"y2\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"1\",\"x2\":\"10\",\"y2\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"1\",\"x2\":\"14\",\"y2\":\"4\"}}]})(props);\n};\nexport function FiColumns (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3h7a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-7m0-18H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7m0-18v18\"}}]})(props);\n};\nexport function FiCommand (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 3a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3H6a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3V6a3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3h12a3 3 0 0 0 3-3 3 3 0 0 0-3-3z\"}}]})(props);\n};\nexport function FiCompass (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polygon\",\"attr\":{\"points\":\"16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76\"}}]})(props);\n};\nexport function FiCopy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"9\",\"width\":\"13\",\"height\":\"13\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"}}]})(props);\n};\nexport function FiCornerDownLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 10 4 15 9 20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4v7a4 4 0 0 1-4 4H4\"}}]})(props);\n};\nexport function FiCornerDownRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 10 20 15 15 20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4v7a4 4 0 0 0 4 4h12\"}}]})(props);\n};\nexport function FiCornerLeftDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 15 9 20 4 15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4h-7a4 4 0 0 0-4 4v12\"}}]})(props);\n};\nexport function FiCornerLeftUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 9 9 4 4 9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 20h-7a4 4 0 0 1-4-4V4\"}}]})(props);\n};\nexport function FiCornerRightDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 15 15 20 20 15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4h7a4 4 0 0 1 4 4v12\"}}]})(props);\n};\nexport function FiCornerRightUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 9 15 4 20 9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h7a4 4 0 0 0 4-4V4\"}}]})(props);\n};\nexport function FiCornerUpLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 14 4 9 9 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 20v-7a4 4 0 0 0-4-4H4\"}}]})(props);\n};\nexport function FiCornerUpRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 14 20 9 15 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20v-7a4 4 0 0 1 4-4h12\"}}]})(props);\n};\nexport function FiCpu (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"4\",\"width\":\"16\",\"height\":\"16\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"9\",\"width\":\"6\",\"height\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"1\",\"x2\":\"9\",\"y2\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"1\",\"x2\":\"15\",\"y2\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"20\",\"x2\":\"9\",\"y2\":\"23\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"20\",\"x2\":\"15\",\"y2\":\"23\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"9\",\"x2\":\"23\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"14\",\"x2\":\"23\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"9\",\"x2\":\"4\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"14\",\"x2\":\"4\",\"y2\":\"14\"}}]})(props);\n};\nexport function FiCreditCard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"4\",\"width\":\"22\",\"height\":\"16\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"10\",\"x2\":\"23\",\"y2\":\"10\"}}]})(props);\n};\nexport function FiCrop (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.13 1L6 16a2 2 0 0 0 2 2h15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 6.13L16 6a2 2 0 0 1 2 2v15\"}}]})(props);\n};\nexport function FiCrosshair (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"y1\":\"12\",\"x2\":\"18\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"12\",\"x2\":\"2\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"6\",\"x2\":\"12\",\"y2\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"18\"}}]})(props);\n};\nexport function FiDatabase (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"rx\":\"9\",\"ry\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12c0 1.66-4 3-9 3s-9-1.34-9-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5\"}}]})(props);\n};\nexport function FiDelete (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 4H8l-7 8 7 8h13a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"9\",\"x2\":\"12\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"9\",\"x2\":\"18\",\"y2\":\"15\"}}]})(props);\n};\nexport function FiDisc (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"}}]})(props);\n};\nexport function FiDivideCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"8\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}}]})(props);\n};\nexport function FiDivideSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"8\"}}]})(props);\n};\nexport function FiDivide (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"6\",\"r\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"18\",\"r\":\"2\"}}]})(props);\n};\nexport function FiDollarSign (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"1\",\"x2\":\"12\",\"y2\":\"23\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"}}]})(props);\n};\nexport function FiDownloadCloud (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 17 12 21 16 17\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"12\",\"x2\":\"12\",\"y2\":\"21\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.88 18.09A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.29\"}}]})(props);\n};\nexport function FiDownload (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 10 12 15 17 10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"15\",\"x2\":\"12\",\"y2\":\"3\"}}]})(props);\n};\nexport function FiDribbble (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.56 2.75c4.37 6.03 6.02 9.42 8.03 17.72m2.54-15.38c-3.72 4.35-8.94 5.66-16.88 5.85m19.5 1.9c-3.5-.93-6.63-.82-8.94 0-2.58.92-5.01 2.86-7.44 6.32\"}}]})(props);\n};\nexport function FiDroplet (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z\"}}]})(props);\n};\nexport function FiEdit2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z\"}}]})(props);\n};\nexport function FiEdit3 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20h9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z\"}}]})(props);\n};\nexport function FiEdit (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"}}]})(props);\n};\nexport function FiExternalLink (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 3 21 3 21 9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"14\",\"x2\":\"21\",\"y2\":\"3\"}}]})(props);\n};\nexport function FiEyeOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"}}]})(props);\n};\nexport function FiEye (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"}}]})(props);\n};\nexport function FiFacebook (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z\"}}]})(props);\n};\nexport function FiFastForward (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"13 19 22 12 13 5 13 19\"}},{\"tag\":\"polygon\",\"attr\":{\"points\":\"2 19 11 12 2 5 2 19\"}}]})(props);\n};\nexport function FiFeather (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.24 12.24a6 6 0 0 0-8.49-8.49L5 10.5V19h8.5z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"8\",\"x2\":\"2\",\"y2\":\"22\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17.5\",\"y1\":\"15\",\"x2\":\"9\",\"y2\":\"15\"}}]})(props);\n};\nexport function FiFigma (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z\"}}]})(props);\n};\nexport function FiFileMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"15\",\"x2\":\"15\",\"y2\":\"15\"}}]})(props);\n};\nexport function FiFilePlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"15\",\"x2\":\"15\",\"y2\":\"15\"}}]})(props);\n};\nexport function FiFileText (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"13\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"17\",\"x2\":\"8\",\"y2\":\"17\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 9 9 9 8 9\"}}]})(props);\n};\nexport function FiFile (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"13 2 13 9 20 9\"}}]})(props);\n};\nexport function FiFilm (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"2\",\"width\":\"20\",\"height\":\"20\",\"rx\":\"2.18\",\"ry\":\"2.18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"2\",\"x2\":\"7\",\"y2\":\"22\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"2\",\"x2\":\"17\",\"y2\":\"22\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"7\",\"x2\":\"7\",\"y2\":\"7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"17\",\"x2\":\"7\",\"y2\":\"17\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"17\",\"x2\":\"22\",\"y2\":\"17\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"7\",\"x2\":\"22\",\"y2\":\"7\"}}]})(props);\n};\nexport function FiFilter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\"}}]})(props);\n};\nexport function FiFlag (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"22\",\"x2\":\"4\",\"y2\":\"15\"}}]})(props);\n};\nexport function FiFolderMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"14\",\"x2\":\"15\",\"y2\":\"14\"}}]})(props);\n};\nexport function FiFolderPlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"11\",\"x2\":\"12\",\"y2\":\"17\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"14\",\"x2\":\"15\",\"y2\":\"14\"}}]})(props);\n};\nexport function FiFolder (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"}}]})(props);\n};\nexport function FiFramer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 16V9h14V2H5l14 14h-7m-7 0l7 7v-7m-7 0h7\"}}]})(props);\n};\nexport function FiFrown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16s-1.5-2-4-2-4 2-4 2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"9.01\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"15.01\",\"y2\":\"9\"}}]})(props);\n};\nexport function FiGift (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"20 12 20 22 4 22 4 12\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"7\",\"width\":\"20\",\"height\":\"5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z\"}}]})(props);\n};\nexport function FiGitBranch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"3\",\"x2\":\"6\",\"y2\":\"15\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"6\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9a9 9 0 0 1-9 9\"}}]})(props);\n};\nexport function FiGitCommit (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1.05\",\"y1\":\"12\",\"x2\":\"7\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17.01\",\"y1\":\"12\",\"x2\":\"22.96\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiGitMerge (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"18\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 21V9a9 9 0 0 0 9 9\"}}]})(props);\n};\nexport function FiGitPullRequest (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"18\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 6h3a2 2 0 0 1 2 2v7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"9\",\"x2\":\"6\",\"y2\":\"21\"}}]})(props);\n};\nexport function FiGithub (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\"}}]})(props);\n};\nexport function FiGitlab (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.65 14.39L12 22.13 1.35 14.39a.84.84 0 0 1-.3-.94l1.22-3.78 2.44-7.51A.42.42 0 0 1 4.82 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.49h8.1l2.44-7.51A.42.42 0 0 1 18.6 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.51L23 13.45a.84.84 0 0 1-.35.94z\"}}]})(props);\n};\nexport function FiGlobe (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"}}]})(props);\n};\nexport function FiGrid (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"7\",\"height\":\"7\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"3\",\"width\":\"7\",\"height\":\"7\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"14\",\"width\":\"7\",\"height\":\"7\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"14\",\"width\":\"7\",\"height\":\"7\"}}]})(props);\n};\nexport function FiHardDrive (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"y1\":\"12\",\"x2\":\"2\",\"y2\":\"12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"16\",\"x2\":\"6.01\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"16\",\"x2\":\"10.01\",\"y2\":\"16\"}}]})(props);\n};\nexport function FiHash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"9\",\"x2\":\"20\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"15\",\"x2\":\"20\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"3\",\"x2\":\"8\",\"y2\":\"21\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"3\",\"x2\":\"14\",\"y2\":\"21\"}}]})(props);\n};\nexport function FiHeadphones (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 18v-6a9 9 0 0 1 18 0v6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z\"}}]})(props);\n};\nexport function FiHeart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"}}]})(props);\n};\nexport function FiHelpCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"17\",\"x2\":\"12.01\",\"y2\":\"17\"}}]})(props);\n};\nexport function FiHexagon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"}}]})(props);\n};\nexport function FiHome (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 22 9 12 15 12 15 22\"}}]})(props);\n};\nexport function FiImage (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"8.5\",\"r\":\"1.5\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 15 16 10 5 21\"}}]})(props);\n};\nexport function FiInbox (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 12 16 12 14 15 10 15 8 12 2 12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"}}]})(props);\n};\nexport function FiInfo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12.01\",\"y2\":\"8\"}}]})(props);\n};\nexport function FiInstagram (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"2\",\"width\":\"20\",\"height\":\"20\",\"rx\":\"5\",\"ry\":\"5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17.5\",\"y1\":\"6.5\",\"x2\":\"17.51\",\"y2\":\"6.5\"}}]})(props);\n};\nexport function FiItalic (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"4\",\"x2\":\"10\",\"y2\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"20\",\"x2\":\"5\",\"y2\":\"20\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"4\",\"x2\":\"9\",\"y2\":\"20\"}}]})(props);\n};\nexport function FiKey (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4\"}}]})(props);\n};\nexport function FiLayers (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 2 7 12 12 22 7 12 2\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"2 17 12 22 22 17\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"2 12 12 17 22 12\"}}]})(props);\n};\nexport function FiLayout (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"9\",\"x2\":\"21\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"21\",\"x2\":\"9\",\"y2\":\"9\"}}]})(props);\n};\nexport function FiLifeBuoy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"4.93\",\"x2\":\"9.17\",\"y2\":\"9.17\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.83\",\"y1\":\"14.83\",\"x2\":\"19.07\",\"y2\":\"19.07\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.83\",\"y1\":\"9.17\",\"x2\":\"19.07\",\"y2\":\"4.93\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.83\",\"y1\":\"9.17\",\"x2\":\"18.36\",\"y2\":\"5.64\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"19.07\",\"x2\":\"9.17\",\"y2\":\"14.83\"}}]})(props);\n};\nexport function FiLink2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiLink (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}}]})(props);\n};\nexport function FiLinkedin (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"9\",\"width\":\"4\",\"height\":\"12\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"4\",\"cy\":\"4\",\"r\":\"2\"}}]})(props);\n};\nexport function FiList (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"6\",\"x2\":\"21\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"21\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"18\",\"x2\":\"21\",\"y2\":\"18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"6\",\"x2\":\"3.01\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"12\",\"x2\":\"3.01\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"18\",\"x2\":\"3.01\",\"y2\":\"18\"}}]})(props);\n};\nexport function FiLoader (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12\",\"y2\":\"22\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"4.93\",\"x2\":\"7.76\",\"y2\":\"7.76\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16.24\",\"y1\":\"16.24\",\"x2\":\"19.07\",\"y2\":\"19.07\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"6\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"19.07\",\"x2\":\"7.76\",\"y2\":\"16.24\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16.24\",\"y1\":\"7.76\",\"x2\":\"19.07\",\"y2\":\"4.93\"}}]})(props);\n};\nexport function FiLock (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"11\",\"width\":\"18\",\"height\":\"11\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11V7a5 5 0 0 1 10 0v4\"}}]})(props);\n};\nexport function FiLogIn (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 17 15 12 10 7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"12\",\"x2\":\"3\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiLogOut (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 17 21 12 16 7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"12\",\"x2\":\"9\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiMail (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"22,6 12,13 2,6\"}}]})(props);\n};\nexport function FiMapPin (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"10\",\"r\":\"3\"}}]})(props);\n};\nexport function FiMap (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"1 6 1 22 8 18 16 22 23 18 23 2 16 6 8 2 1 6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"2\",\"x2\":\"8\",\"y2\":\"18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"6\",\"x2\":\"16\",\"y2\":\"22\"}}]})(props);\n};\nexport function FiMaximize2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 3 21 3 21 9\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 21 3 21 3 15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"3\",\"x2\":\"14\",\"y2\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"21\",\"x2\":\"10\",\"y2\":\"14\"}}]})(props);\n};\nexport function FiMaximize (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3\"}}]})(props);\n};\nexport function FiMeh (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"15\",\"x2\":\"16\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"9.01\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"15.01\",\"y2\":\"9\"}}]})(props);\n};\nexport function FiMenu (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"12\",\"x2\":\"21\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"6\",\"x2\":\"21\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"18\",\"x2\":\"21\",\"y2\":\"18\"}}]})(props);\n};\nexport function FiMessageCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z\"}}]})(props);\n};\nexport function FiMessageSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"}}]})(props);\n};\nexport function FiMicOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"12\",\"y2\":\"23\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"23\",\"x2\":\"16\",\"y2\":\"23\"}}]})(props);\n};\nexport function FiMic (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 10v2a7 7 0 0 1-14 0v-2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"12\",\"y2\":\"23\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"23\",\"x2\":\"16\",\"y2\":\"23\"}}]})(props);\n};\nexport function FiMinimize2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"4 14 10 14 10 20\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"20 10 14 10 14 4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"10\",\"x2\":\"21\",\"y2\":\"3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"21\",\"x2\":\"10\",\"y2\":\"14\"}}]})(props);\n};\nexport function FiMinimize (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3\"}}]})(props);\n};\nexport function FiMinusCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiMinusSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiMonitor (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"3\",\"width\":\"20\",\"height\":\"14\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"21\",\"x2\":\"16\",\"y2\":\"21\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"17\",\"x2\":\"12\",\"y2\":\"21\"}}]})(props);\n};\nexport function FiMoon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z\"}}]})(props);\n};\nexport function FiMoreHorizontal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19\",\"cy\":\"12\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"12\",\"r\":\"1\"}}]})(props);\n};\nexport function FiMoreVertical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"19\",\"r\":\"1\"}}]})(props);\n};\nexport function FiMousePointer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3l7.07 16.97 2.51-7.39 7.39-2.51L3 3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 13l6 6\"}}]})(props);\n};\nexport function FiMove (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"5 9 2 12 5 15\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 5 12 2 15 5\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 19 12 22 9 19\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"19 9 22 12 19 15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"22\"}}]})(props);\n};\nexport function FiMusic (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 18V5l12-2v13\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"16\",\"r\":\"3\"}}]})(props);\n};\nexport function FiNavigation2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 19 21 12 17 5 21 12 2\"}}]})(props);\n};\nexport function FiNavigation (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"3 11 22 2 13 21 11 13 3 11\"}}]})(props);\n};\nexport function FiOctagon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"}}]})(props);\n};\nexport function FiPackage (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"16.5\",\"y1\":\"9.4\",\"x2\":\"7.5\",\"y2\":\"4.21\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.27 6.96 12 12.01 20.73 6.96\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22.08\",\"x2\":\"12\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiPaperclip (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48\"}}]})(props);\n};\nexport function FiPauseCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"15\",\"x2\":\"10\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"15\",\"x2\":\"14\",\"y2\":\"9\"}}]})(props);\n};\nexport function FiPause (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"4\",\"width\":\"4\",\"height\":\"16\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"4\",\"width\":\"4\",\"height\":\"16\"}}]})(props);\n};\nexport function FiPenTool (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 19l7-7 3 3-7 7-3-3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13l-1.5-7.5L2 2l3.5 14.5L13 18l5-5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 2l7.586 7.586\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"2\"}}]})(props);\n};\nexport function FiPercent (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"5\",\"x2\":\"5\",\"y2\":\"19\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.5\",\"cy\":\"6.5\",\"r\":\"2.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17.5\",\"cy\":\"17.5\",\"r\":\"2.5\"}}]})(props);\n};\nexport function FiPhoneCall (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.05 5A5 5 0 0 1 19 8.95M15.05 1A9 9 0 0 1 23 8.94m-1 7.98v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"}}]})(props);\n};\nexport function FiPhoneForwarded (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"19 1 23 5 19 9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"5\",\"x2\":\"23\",\"y2\":\"5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"}}]})(props);\n};\nexport function FiPhoneIncoming (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 2 16 8 22 8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"1\",\"x2\":\"16\",\"y2\":\"8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"}}]})(props);\n};\nexport function FiPhoneMissed (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"1\",\"x2\":\"17\",\"y2\":\"7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"}}]})(props);\n};\nexport function FiPhoneOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.68 13.31a16 16 0 0 0 3.41 2.6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7 2 2 0 0 1 1.72 2v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.42 19.42 0 0 1-3.33-2.67m-2.67-3.34a19.79 19.79 0 0 1-3.07-8.63A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"1\",\"x2\":\"1\",\"y2\":\"23\"}}]})(props);\n};\nexport function FiPhoneOutgoing (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 7 23 1 17 1\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"8\",\"x2\":\"23\",\"y2\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"}}]})(props);\n};\nexport function FiPhone (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"}}]})(props);\n};\nexport function FiPieChart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.21 15.89A10 10 0 1 1 8 2.83\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12A10 10 0 0 0 12 2v10z\"}}]})(props);\n};\nexport function FiPlayCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polygon\",\"attr\":{\"points\":\"10 8 16 12 10 16 10 8\"}}]})(props);\n};\nexport function FiPlay (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"5 3 19 12 5 21 5 3\"}}]})(props);\n};\nexport function FiPlusCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiPlusSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiPlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"5\",\"x2\":\"12\",\"y2\":\"19\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiPocket (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 3h16a2 2 0 0 1 2 2v6a10 10 0 0 1-10 10A10 10 0 0 1 2 11V5a2 2 0 0 1 2-2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 10 12 14 16 10\"}}]})(props);\n};\nexport function FiPower (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.36 6.64a9 9 0 1 1-12.73 0\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiPrinter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"6 9 6 2 18 2 18 9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"14\",\"width\":\"12\",\"height\":\"8\"}}]})(props);\n};\nexport function FiRadio (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.24 7.76a6 6 0 0 1 0 8.49m-8.48-.01a6 6 0 0 1 0-8.49m11.31-2.82a10 10 0 0 1 0 14.14m-14.14 0a10 10 0 0 1 0-14.14\"}}]})(props);\n};\nexport function FiRefreshCcw (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"1 4 1 10 7 10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 20 23 14 17 14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.49 9A9 9 0 0 0 5.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 0 1 3.51 15\"}}]})(props);\n};\nexport function FiRefreshCw (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 4 23 10 17 10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"1 20 1 14 7 14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15\"}}]})(props);\n};\nexport function FiRepeat (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 1 21 5 17 9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 11V9a4 4 0 0 1 4-4h14\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 23 3 19 7 15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 13v2a4 4 0 0 1-4 4H3\"}}]})(props);\n};\nexport function FiRewind (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 19 2 12 11 5 11 19\"}},{\"tag\":\"polygon\",\"attr\":{\"points\":\"22 19 13 12 22 5 22 19\"}}]})(props);\n};\nexport function FiRotateCcw (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"1 4 1 10 7 10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.51 15a9 9 0 1 0 2.13-9.36L1 10\"}}]})(props);\n};\nexport function FiRotateCw (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 4 23 10 17 10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.49 15a9 9 0 1 1-2.12-9.36L23 10\"}}]})(props);\n};\nexport function FiRss (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 11a9 9 0 0 1 9 9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4a16 16 0 0 1 16 16\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"19\",\"r\":\"1\"}}]})(props);\n};\nexport function FiSave (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 21 17 13 7 13 7 21\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 3 7 8 15 8\"}}]})(props);\n};\nexport function FiScissors (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"4\",\"x2\":\"8.12\",\"y2\":\"15.88\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.47\",\"y1\":\"14.48\",\"x2\":\"20\",\"y2\":\"20\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8.12\",\"y1\":\"8.12\",\"x2\":\"12\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiSearch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"21\",\"x2\":\"16.65\",\"y2\":\"16.65\"}}]})(props);\n};\nexport function FiSend (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"y1\":\"2\",\"x2\":\"11\",\"y2\":\"13\"}},{\"tag\":\"polygon\",\"attr\":{\"points\":\"22 2 15 22 11 13 2 9 22 2\"}}]})(props);\n};\nexport function FiServer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"2\",\"width\":\"20\",\"height\":\"8\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"14\",\"width\":\"20\",\"height\":\"8\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"6\",\"x2\":\"6.01\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"18\",\"x2\":\"6.01\",\"y2\":\"18\"}}]})(props);\n};\nexport function FiSettings (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z\"}}]})(props);\n};\nexport function FiShare2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"5\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"12\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"19\",\"r\":\"3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8.59\",\"y1\":\"13.51\",\"x2\":\"15.42\",\"y2\":\"17.49\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15.41\",\"y1\":\"6.51\",\"x2\":\"8.59\",\"y2\":\"10.49\"}}]})(props);\n};\nexport function FiShare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 6 12 2 8 6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"15\"}}]})(props);\n};\nexport function FiShieldOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.69 14a6.9 6.9 0 0 0 .31-2V5l-8-3-3.16 1.18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.73 4.73L4 5v7c0 6 8 10 8 10a20.29 20.29 0 0 0 5.62-4.38\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"}}]})(props);\n};\nexport function FiShield (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"}}]})(props);\n};\nexport function FiShoppingBag (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"6\",\"x2\":\"21\",\"y2\":\"6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 10a4 4 0 0 1-8 0\"}}]})(props);\n};\nexport function FiShoppingCart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"21\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"20\",\"cy\":\"21\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6\"}}]})(props);\n};\nexport function FiShuffle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 3 21 3 21 8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"20\",\"x2\":\"21\",\"y2\":\"3\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 16 21 21 16 21\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"15\",\"x2\":\"21\",\"y2\":\"21\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"4\",\"x2\":\"9\",\"y2\":\"9\"}}]})(props);\n};\nexport function FiSidebar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"3\",\"x2\":\"9\",\"y2\":\"21\"}}]})(props);\n};\nexport function FiSkipBack (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"19 20 9 12 19 4 19 20\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"19\",\"x2\":\"5\",\"y2\":\"5\"}}]})(props);\n};\nexport function FiSkipForward (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"5 4 15 12 5 20 5 4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"5\",\"x2\":\"19\",\"y2\":\"19\"}}]})(props);\n};\nexport function FiSlack (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 10c-.83 0-1.5-.67-1.5-1.5v-5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.5 10H19V8.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 14c.83 0 1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5S8 21.33 8 20.5v-5c0-.83.67-1.5 1.5-1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.5 14H5v1.5c0 .83-.67 1.5-1.5 1.5S2 16.33 2 15.5 2.67 14 3.5 14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 14.5c0-.83.67-1.5 1.5-1.5h5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-5c-.83 0-1.5-.67-1.5-1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 19H14v1.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 9.5C10 8.67 9.33 8 8.5 8h-5C2.67 8 2 8.67 2 9.5S2.67 11 3.5 11h5c.83 0 1.5-.67 1.5-1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 5H10V3.5C10 2.67 9.33 2 8.5 2S7 2.67 7 3.5 7.67 5 8.5 5z\"}}]})(props);\n};\nexport function FiSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"4.93\",\"x2\":\"19.07\",\"y2\":\"19.07\"}}]})(props);\n};\nexport function FiSliders (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"21\",\"x2\":\"4\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"10\",\"x2\":\"4\",\"y2\":\"3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"21\",\"x2\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"21\",\"x2\":\"20\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"12\",\"x2\":\"20\",\"y2\":\"3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"14\",\"x2\":\"7\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"8\",\"x2\":\"15\",\"y2\":\"8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"16\",\"x2\":\"23\",\"y2\":\"16\"}}]})(props);\n};\nexport function FiSmartphone (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"5\",\"y\":\"2\",\"width\":\"14\",\"height\":\"20\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12.01\",\"y2\":\"18\"}}]})(props);\n};\nexport function FiSmile (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 14s1.5 2 4 2 4-2 4-2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"9.01\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"15.01\",\"y2\":\"9\"}}]})(props);\n};\nexport function FiSpeaker (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"2\",\"width\":\"16\",\"height\":\"20\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"14\",\"r\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"6\",\"x2\":\"12.01\",\"y2\":\"6\"}}]})(props);\n};\nexport function FiSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"}}]})(props);\n};\nexport function FiStar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"}}]})(props);\n};\nexport function FiStopCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"9\",\"width\":\"6\",\"height\":\"6\"}}]})(props);\n};\nexport function FiSun (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"1\",\"x2\":\"12\",\"y2\":\"3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"21\",\"x2\":\"12\",\"y2\":\"23\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"4.22\",\"x2\":\"5.64\",\"y2\":\"5.64\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"18.36\",\"x2\":\"19.78\",\"y2\":\"19.78\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"12\",\"x2\":\"3\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"12\",\"x2\":\"23\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"19.78\",\"x2\":\"5.64\",\"y2\":\"18.36\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"5.64\",\"x2\":\"19.78\",\"y2\":\"4.22\"}}]})(props);\n};\nexport function FiSunrise (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 18a5 5 0 0 0-10 0\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"10.22\",\"x2\":\"5.64\",\"y2\":\"11.64\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"23\",\"y2\":\"18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"11.64\",\"x2\":\"19.78\",\"y2\":\"10.22\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"22\",\"x2\":\"1\",\"y2\":\"22\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 6 12 2 16 6\"}}]})(props);\n};\nexport function FiSunset (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 18a5 5 0 0 0-10 0\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"9\",\"x2\":\"12\",\"y2\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"10.22\",\"x2\":\"5.64\",\"y2\":\"11.64\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"23\",\"y2\":\"18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"11.64\",\"x2\":\"19.78\",\"y2\":\"10.22\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"22\",\"x2\":\"1\",\"y2\":\"22\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 5 12 9 8 5\"}}]})(props);\n};\nexport function FiTable (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18\"}}]})(props);\n};\nexport function FiTablet (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"2\",\"width\":\"16\",\"height\":\"20\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12.01\",\"y2\":\"18\"}}]})(props);\n};\nexport function FiTag (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"7\",\"x2\":\"7.01\",\"y2\":\"7\"}}]})(props);\n};\nexport function FiTarget (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"6\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"}}]})(props);\n};\nexport function FiTerminal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"4 17 10 11 4 5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"20\",\"y2\":\"19\"}}]})(props);\n};\nexport function FiThermometer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z\"}}]})(props);\n};\nexport function FiThumbsDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"}}]})(props);\n};\nexport function FiThumbsUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"}}]})(props);\n};\nexport function FiToggleLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"5\",\"width\":\"22\",\"height\":\"14\",\"rx\":\"7\",\"ry\":\"7\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"12\",\"r\":\"3\"}}]})(props);\n};\nexport function FiToggleRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"5\",\"width\":\"22\",\"height\":\"14\",\"rx\":\"7\",\"ry\":\"7\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"12\",\"r\":\"3\"}}]})(props);\n};\nexport function FiTool (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z\"}}]})(props);\n};\nexport function FiTrash2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"3 6 5 6 21 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"11\",\"x2\":\"10\",\"y2\":\"17\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"11\",\"x2\":\"14\",\"y2\":\"17\"}}]})(props);\n};\nexport function FiTrash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"3 6 5 6 21 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"}}]})(props);\n};\nexport function FiTrello (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"7\",\"y\":\"7\",\"width\":\"3\",\"height\":\"9\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"7\",\"width\":\"3\",\"height\":\"5\"}}]})(props);\n};\nexport function FiTrendingDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 18 13.5 8.5 8.5 13.5 1 6\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 18 23 18 23 12\"}}]})(props);\n};\nexport function FiTrendingUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 6 13.5 15.5 8.5 10.5 1 18\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 6 23 6 23 12\"}}]})(props);\n};\nexport function FiTriangle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"}}]})(props);\n};\nexport function FiTruck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"3\",\"width\":\"15\",\"height\":\"13\"}},{\"tag\":\"polygon\",\"attr\":{\"points\":\"16 8 20 8 23 11 23 16 16 16 16 8\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5.5\",\"cy\":\"18.5\",\"r\":\"2.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18.5\",\"cy\":\"18.5\",\"r\":\"2.5\"}}]})(props);\n};\nexport function FiTv (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"7\",\"width\":\"20\",\"height\":\"15\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 2 12 7 7 2\"}}]})(props);\n};\nexport function FiTwitch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 2H3v16h5v4l4-4h5l4-4V2zM11 11V7M16 11V7\"}}]})(props);\n};\nexport function FiTwitter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z\"}}]})(props);\n};\nexport function FiType (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"4 7 4 4 20 4 20 7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"20\",\"x2\":\"15\",\"y2\":\"20\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"4\",\"x2\":\"12\",\"y2\":\"20\"}}]})(props);\n};\nexport function FiUmbrella (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23 12a11.05 11.05 0 0 0-22 0zm-5 7a3 3 0 0 1-6 0v-7\"}}]})(props);\n};\nexport function FiUnderline (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 3v7a6 6 0 0 0 6 6 6 6 0 0 0 6-6V3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"21\",\"x2\":\"20\",\"y2\":\"21\"}}]})(props);\n};\nexport function FiUnlock (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"11\",\"width\":\"18\",\"height\":\"11\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11V7a5 5 0 0 1 9.9-1\"}}]})(props);\n};\nexport function FiUploadCloud (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 16 12 12 8 16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"12\",\"x2\":\"12\",\"y2\":\"21\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 16 12 12 8 16\"}}]})(props);\n};\nexport function FiUpload (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 8 12 3 7 8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"3\",\"x2\":\"12\",\"y2\":\"15\"}}]})(props);\n};\nexport function FiUserCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 11 19 13 23 9\"}}]})(props);\n};\nexport function FiUserMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"11\",\"x2\":\"17\",\"y2\":\"11\"}}]})(props);\n};\nexport function FiUserPlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"8\",\"x2\":\"20\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"11\",\"x2\":\"17\",\"y2\":\"11\"}}]})(props);\n};\nexport function FiUserX (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"8\",\"x2\":\"23\",\"y2\":\"13\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"8\",\"x2\":\"18\",\"y2\":\"13\"}}]})(props);\n};\nexport function FiUser (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}}]})(props);\n};\nexport function FiUsers (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"7\",\"r\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 21v-2a4 4 0 0 0-3-3.87\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 3.13a4 4 0 0 1 0 7.75\"}}]})(props);\n};\nexport function FiVideoOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16v1a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2m5.66 0H14a2 2 0 0 1 2 2v3.34l1 1L23 7v10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"}}]})(props);\n};\nexport function FiVideo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"23 7 16 12 23 17 23 7\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"5\",\"width\":\"15\",\"height\":\"14\",\"rx\":\"2\",\"ry\":\"2\"}}]})(props);\n};\nexport function FiVoicemail (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"5.5\",\"cy\":\"11.5\",\"r\":\"4.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18.5\",\"cy\":\"11.5\",\"r\":\"4.5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"5.5\",\"y1\":\"16\",\"x2\":\"18.5\",\"y2\":\"16\"}}]})(props);\n};\nexport function FiVolume1 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.54 8.46a5 5 0 0 1 0 7.07\"}}]})(props);\n};\nexport function FiVolume2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07\"}}]})(props);\n};\nexport function FiVolumeX (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"9\",\"x2\":\"17\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"9\",\"x2\":\"23\",\"y2\":\"15\"}}]})(props);\n};\nexport function FiVolume (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"}}]})(props);\n};\nexport function FiWatch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"7\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 9 12 12 13.5 13.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.51 17.35l-.35 3.83a2 2 0 0 1-2 1.82H9.83a2 2 0 0 1-2-1.82l-.35-3.83m.01-10.7l.35-3.83A2 2 0 0 1 9.83 1h4.35a2 2 0 0 1 2 1.82l.35 3.83\"}}]})(props);\n};\nexport function FiWifiOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.72 11.06A10.94 10.94 0 0 1 19 12.55\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12.55a10.94 10.94 0 0 1 5.17-2.39\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.71 5.05A16 16 0 0 1 22.58 9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1.42 9a15.91 15.91 0 0 1 4.7-2.88\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.53 16.11a6 6 0 0 1 6.95 0\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12.01\",\"y2\":\"20\"}}]})(props);\n};\nexport function FiWifi (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12.55a11 11 0 0 1 14.08 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1.42 9a16 16 0 0 1 21.16 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.53 16.11a6 6 0 0 1 6.95 0\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12.01\",\"y2\":\"20\"}}]})(props);\n};\nexport function FiWind (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.59 4.59A2 2 0 1 1 11 8H2m10.59 11.41A2 2 0 1 0 14 16H2m15.73-8.27A2.5 2.5 0 1 1 19.5 12H2\"}}]})(props);\n};\nexport function FiXCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"9\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"15\",\"y2\":\"15\"}}]})(props);\n};\nexport function FiXOctagon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"9\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"15\",\"y2\":\"15\"}}]})(props);\n};\nexport function FiXSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"15\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"9\",\"y2\":\"15\"}}]})(props);\n};\nexport function FiX (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"6\",\"x2\":\"6\",\"y2\":\"18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"6\",\"x2\":\"18\",\"y2\":\"18\"}}]})(props);\n};\nexport function FiYoutube (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z\"}},{\"tag\":\"polygon\",\"attr\":{\"points\":\"9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02\"}}]})(props);\n};\nexport function FiZapOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"12.41 6.75 13 2 10.57 4.92\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"18.57 12.91 21 10 15.66 10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 8 3 14 12 14 11 22 16 16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"}}]})(props);\n};\nexport function FiZap (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"}}]})(props);\n};\nexport function FiZoomIn (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"21\",\"x2\":\"16.65\",\"y2\":\"16.65\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"11\",\"y1\":\"8\",\"x2\":\"11\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"11\",\"x2\":\"14\",\"y2\":\"11\"}}]})(props);\n};\nexport function FiZoomOut (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"21\",\"x2\":\"16.65\",\"y2\":\"16.65\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"11\",\"x2\":\"14\",\"y2\":\"11\"}}]})(props);\n};\n",null,null,null,null,"'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar aStackPool = [];\nvar bStackPool = [];\n/**\n * Checks if two values are equal. Values may be primitives, arrays, or objects.\n * Returns true if both arguments have the same keys and values.\n *\n * @see http://underscorejs.org\n * @copyright 2009-2013 Jeremy Ashkenas, DocumentCloud Inc.\n * @license MIT\n */\n\nfunction areEqual(a, b) {\n  var aStack = aStackPool.length ? aStackPool.pop() : [];\n  var bStack = bStackPool.length ? bStackPool.pop() : [];\n  var result = eq(a, b, aStack, bStack);\n  aStack.length = 0;\n  bStack.length = 0;\n  aStackPool.push(aStack);\n  bStackPool.push(bStack);\n  return result;\n}\n\nfunction eq(a, b, aStack, bStack) {\n  if (a === b) {\n    // Identical objects are equal. `0 === -0`, but they aren't identical.\n    return a !== 0 || 1 / a == 1 / b;\n  }\n\n  if (a == null || b == null) {\n    // a or b can be `null` or `undefined`\n    return false;\n  }\n\n  if (typeof a != 'object' || typeof b != 'object') {\n    return false;\n  }\n\n  var objToStr = Object.prototype.toString;\n  var className = objToStr.call(a);\n\n  if (className != objToStr.call(b)) {\n    return false;\n  }\n\n  switch (className) {\n    case '[object String]':\n      return a == String(b);\n\n    case '[object Number]':\n      return isNaN(a) || isNaN(b) ? false : a == Number(b);\n\n    case '[object Date]':\n    case '[object Boolean]':\n      return +a == +b;\n\n    case '[object RegExp]':\n      return a.source == b.source && a.global == b.global && a.multiline == b.multiline && a.ignoreCase == b.ignoreCase;\n  } // Assume equality for cyclic structures.\n\n\n  var length = aStack.length;\n\n  while (length--) {\n    if (aStack[length] == a) {\n      return bStack[length] == b;\n    }\n  }\n\n  aStack.push(a);\n  bStack.push(b);\n  var size = 0; // Recursively compare objects and arrays.\n\n  if (className === '[object Array]') {\n    size = a.length;\n\n    if (size !== b.length) {\n      return false;\n    } // Deep compare the contents, ignoring non-numeric properties.\n\n\n    while (size--) {\n      if (!eq(a[size], b[size], aStack, bStack)) {\n        return false;\n      }\n    }\n  } else {\n    if (a.constructor !== b.constructor) {\n      return false;\n    }\n\n    if (a.hasOwnProperty('valueOf') && b.hasOwnProperty('valueOf')) {\n      return a.valueOf() == b.valueOf();\n    }\n\n    var keys = Object.keys(a);\n\n    if (keys.length != Object.keys(b).length) {\n      return false;\n    }\n\n    for (var i = 0; i < keys.length; i++) {\n      if (!eq(a[keys[i]], b[keys[i]], aStack, bStack)) {\n        return false;\n      }\n    }\n  }\n\n  aStack.pop();\n  bStack.pop();\n  return true;\n}\n\nmodule.exports = areEqual;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nfunction makeEmptyFunction(arg) {\n  return function () {\n    return arg;\n  };\n}\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\n\n\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\n\nemptyFunction.thatReturnsThis = function () {\n  return this;\n};\n\nemptyFunction.thatReturnsArgument = function (arg) {\n  return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nvar emptyFunction = require(\"./emptyFunction\");\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\n\nfunction printWarning(format) {\n  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    args[_key - 1] = arguments[_key];\n  }\n\n  var argIndex = 0;\n  var message = 'Warning: ' + format.replace(/%s/g, function () {\n    return args[argIndex++];\n  });\n\n  if (typeof console !== 'undefined') {\n    console.error(message);\n  }\n\n  try {\n    // --- Welcome to debugging React ---\n    // This error was thrown as a convenience so that you can use this stack\n    // to find the callsite that caused this warning to fire.\n    throw new Error(message);\n  } catch (x) {}\n}\n\nvar warning = process.env.NODE_ENV !== \"production\" ? function (condition, format) {\n  if (format === undefined) {\n    throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n  }\n\n  if (!condition) {\n    for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n      args[_key2 - 2] = arguments[_key2];\n    }\n\n    printWarning.apply(void 0, [format].concat(args));\n  }\n} : emptyFunction;\nmodule.exports = warning;","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(t, e) { if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e; if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\"); return _assertThisInitialized(t); }\nfunction _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); return e; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }\nfunction _inherits(t, e) { if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, \"prototype\", { writable: !1 }), e && _setPrototypeOf(t, e); }\nfunction _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar React = require('react');\nvar PropTypes = require('prop-types');\nvar _require = require('focus-trap'),\n  createFocusTrap = _require.createFocusTrap;\nvar _require2 = require('tabbable'),\n  isFocusable = _require2.isFocusable;\nvar FocusTrap = /*#__PURE__*/function (_React$Component) {\n  function FocusTrap(props) {\n    var _this;\n    _classCallCheck(this, FocusTrap);\n    _this = _callSuper(this, FocusTrap, [props]);\n    /**\n     * Gets the node for the given option, which is expected to be an option that\n     *  can be either a DOM node, a string that is a selector to get a node, `false`\n     *  (if a node is explicitly NOT given), or a function that returns any of these\n     *  values.\n     * @param {string} optionName\n     * @returns {undefined | false | HTMLElement | SVGElement} Returns\n     *  `undefined` if the option is not specified; `false` if the option\n     *  resolved to `false` (node explicitly not given); otherwise, the resolved\n     *  DOM node.\n     * @throws {Error} If the option is set, not `false`, and is not, or does not\n     *  resolve to a node.\n     */\n    _defineProperty(_this, \"getNodeForOption\", function (optionName) {\n      var _this$internalOptions;\n      // use internal options first, falling back to original options\n      var optionValue = (_this$internalOptions = this.internalOptions[optionName]) !== null && _this$internalOptions !== void 0 ? _this$internalOptions : this.originalOptions[optionName];\n      if (typeof optionValue === 'function') {\n        for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n          params[_key - 1] = arguments[_key];\n        }\n        optionValue = optionValue.apply(void 0, params);\n      }\n      if (optionValue === true) {\n        optionValue = undefined; // use default value\n      }\n      if (!optionValue) {\n        if (optionValue === undefined || optionValue === false) {\n          return optionValue;\n        }\n        // else, empty string (invalid), null (invalid), 0 (invalid)\n\n        throw new Error(\"`\".concat(optionName, \"` was specified but was not a node, or did not return a node\"));\n      }\n      var node = optionValue; // could be HTMLElement, SVGElement, or non-empty string at this point\n\n      if (typeof optionValue === 'string') {\n        var _this$getDocument;\n        node = (_this$getDocument = this.getDocument()) === null || _this$getDocument === void 0 ? void 0 : _this$getDocument.querySelector(optionValue); // resolve to node, or null if fails\n        if (!node) {\n          throw new Error(\"`\".concat(optionName, \"` as selector refers to no known node\"));\n        }\n      }\n      return node;\n    });\n    _this.handleDeactivate = _this.handleDeactivate.bind(_this);\n    _this.handlePostDeactivate = _this.handlePostDeactivate.bind(_this);\n    _this.handleClickOutsideDeactivates = _this.handleClickOutsideDeactivates.bind(_this);\n\n    // focus-trap options used internally when creating the trap\n    _this.internalOptions = {\n      // We need to hijack the returnFocusOnDeactivate option,\n      // because React can move focus into the element before we arrived at\n      // this lifecycle hook (e.g. with autoFocus inputs). So the component\n      // captures the previouslyFocusedElement in componentWillMount,\n      // then (optionally) returns focus to it in componentWillUnmount.\n      returnFocusOnDeactivate: false,\n      // the rest of these are also related to deactivation of the trap, and we\n      //  need to use them and control them as well\n      checkCanReturnFocus: null,\n      onDeactivate: _this.handleDeactivate,\n      onPostDeactivate: _this.handlePostDeactivate,\n      // we need to special-case this setting as well so that we can know if we should\n      //  NOT return focus if the trap gets auto-deactivated as the result of an\n      //  outside click (otherwise, we'll always think we should return focus because\n      //  of how we manage that flag internally here)\n      clickOutsideDeactivates: _this.handleClickOutsideDeactivates\n    };\n\n    // original options provided by the consumer\n    _this.originalOptions = {\n      // because of the above `internalOptions`, we maintain our own flag for\n      //  this option, and default it to `true` because that's focus-trap's default\n      returnFocusOnDeactivate: true,\n      // because of the above `internalOptions`, we keep these separate since\n      //  they're part of the deactivation process which we configure (internally) to\n      //  be shared between focus-trap and focus-trap-react\n      onDeactivate: null,\n      onPostDeactivate: null,\n      checkCanReturnFocus: null,\n      // the user's setting, defaulted to false since focus-trap defaults this to false\n      clickOutsideDeactivates: false\n    };\n    var focusTrapOptions = props.focusTrapOptions;\n    for (var optionName in focusTrapOptions) {\n      if (!Object.prototype.hasOwnProperty.call(focusTrapOptions, optionName)) {\n        continue;\n      }\n      if (optionName === 'returnFocusOnDeactivate' || optionName === 'onDeactivate' || optionName === 'onPostDeactivate' || optionName === 'checkCanReturnFocus' || optionName === 'clickOutsideDeactivates') {\n        _this.originalOptions[optionName] = focusTrapOptions[optionName];\n        continue; // exclude from internalOptions\n      }\n      _this.internalOptions[optionName] = focusTrapOptions[optionName];\n    }\n\n    // if set, `{ target: Node, allowDeactivation: boolean }` where `target` is the outside\n    //  node that was clicked, and `allowDeactivation` is the result of the consumer's\n    //  option (stored in `this.originalOptions.clickOutsideDeactivates`, which may be a\n    //  function) whether to allow or deny auto-deactivation on click on this outside node\n    _this.outsideClick = null;\n\n    // elements from which to create the focus trap on mount; if a child is used\n    //  instead of the `containerElements` prop, we'll get the child's related\n    //  element when the trap renders and then is declared 'mounted'\n    _this.focusTrapElements = props.containerElements || [];\n\n    // now we remember what the currently focused element is, not relying on focus-trap\n    _this.updatePreviousElement();\n    return _this;\n  }\n\n  /**\n   * Gets the configured document.\n   * @returns {Document|undefined} Configured document, falling back to the main\n   *  document, if it exists. During SSR, `undefined` is returned since the\n   *  document doesn't exist.\n   */\n  _inherits(FocusTrap, _React$Component);\n  return _createClass(FocusTrap, [{\n    key: \"getDocument\",\n    value: function getDocument() {\n      // SSR: careful to check if `document` exists before accessing it as a variable\n      return this.props.focusTrapOptions.document || (typeof document !== 'undefined' ? document : undefined);\n    }\n  }, {\n    key: \"getReturnFocusNode\",\n    value: function getReturnFocusNode() {\n      var node = this.getNodeForOption('setReturnFocus', this.previouslyFocusedElement);\n      return node ? node : node === false ? false : this.previouslyFocusedElement;\n    }\n\n    /** Update the previously focused element with the currently focused element. */\n  }, {\n    key: \"updatePreviousElement\",\n    value: function updatePreviousElement() {\n      var currentDocument = this.getDocument();\n      if (currentDocument) {\n        this.previouslyFocusedElement = currentDocument.activeElement;\n      }\n    }\n  }, {\n    key: \"deactivateTrap\",\n    value: function deactivateTrap() {\n      // NOTE: it's possible the focus trap has already been deactivated without our knowing it,\n      //  especially if the user set the `clickOutsideDeactivates: true` option on the trap,\n      //  and the mouse was clicked on some element outside the trap; at that point, focus-trap\n      //  will initiate its auto-deactivation process, which will call our own\n      //  handleDeactivate(), which will call into this method\n      if (!this.focusTrap || !this.focusTrap.active) {\n        return;\n      }\n      this.focusTrap.deactivate({\n        // NOTE: we never let the trap return the focus since we do that ourselves\n        returnFocus: false,\n        // we'll call this in our own post deactivate handler so make sure the trap doesn't\n        //  do it prematurely\n        checkCanReturnFocus: null,\n        // let it call the user's original deactivate handler, if any, instead of\n        //  our own which calls back into this function\n        onDeactivate: this.originalOptions.onDeactivate\n        // NOTE: for post deactivate, don't specify anything so that it calls the\n        //  onPostDeactivate handler specified on `this.internalOptions`\n        //  which will always be our own `handlePostDeactivate()` handler, which\n        //  will finish things off by calling the user's provided onPostDeactivate\n        //  handler, if any, at the right time\n        // onPostDeactivate: NOTHING\n      });\n    }\n  }, {\n    key: \"handleClickOutsideDeactivates\",\n    value: function handleClickOutsideDeactivates(event) {\n      // use consumer's option (or call their handler) as the permission or denial\n      var allowDeactivation = typeof this.originalOptions.clickOutsideDeactivates === 'function' ? this.originalOptions.clickOutsideDeactivates.call(null, event) // call out of context\n      : this.originalOptions.clickOutsideDeactivates; // boolean\n\n      if (allowDeactivation) {\n        // capture the outside target that was clicked so we can use it in the deactivation\n        //  process since the consumer allowed it to cause auto-deactivation\n        this.outsideClick = {\n          target: event.target,\n          allowDeactivation: allowDeactivation\n        };\n      }\n      return allowDeactivation;\n    }\n  }, {\n    key: \"handleDeactivate\",\n    value: function handleDeactivate() {\n      if (this.originalOptions.onDeactivate) {\n        this.originalOptions.onDeactivate.call(null); // call user's handler out of context\n      }\n      this.deactivateTrap();\n    }\n  }, {\n    key: \"handlePostDeactivate\",\n    value: function handlePostDeactivate() {\n      var _this2 = this;\n      var finishDeactivation = function finishDeactivation() {\n        var returnFocusNode = _this2.getReturnFocusNode();\n        var canReturnFocus = !!(\n        // did the consumer allow it?\n\n        _this2.originalOptions.returnFocusOnDeactivate && // can we actually focus the node?\n        returnFocusNode !== null && returnFocusNode !== void 0 && returnFocusNode.focus && (\n        // was there an outside click that allowed deactivation?\n        !_this2.outsideClick ||\n        // did the consumer allow deactivation when the outside node was clicked?\n        _this2.outsideClick.allowDeactivation &&\n        // is the outside node NOT focusable (implying that it did NOT receive focus\n        //  as a result of the click-through) -- in which case do NOT restore focus\n        //  to `returnFocusNode` because focus should remain on the outside node\n        !isFocusable(_this2.outsideClick.target, _this2.internalOptions.tabbableOptions))\n\n        // if no, the restore focus to `returnFocusNode` at this point\n        );\n        var _this2$internalOption = _this2.internalOptions.preventScroll,\n          preventScroll = _this2$internalOption === void 0 ? false : _this2$internalOption;\n        if (canReturnFocus) {\n          // return focus to the element that had focus when the trap was activated\n          returnFocusNode.focus({\n            preventScroll: preventScroll\n          });\n        }\n        if (_this2.originalOptions.onPostDeactivate) {\n          _this2.originalOptions.onPostDeactivate.call(null); // don't call it in context of \"this\"\n        }\n        _this2.outsideClick = null; // reset: no longer needed\n      };\n      if (this.originalOptions.checkCanReturnFocus) {\n        this.originalOptions.checkCanReturnFocus.call(null, this.getReturnFocusNode()) // call out of context\n        .then(finishDeactivation, finishDeactivation);\n      } else {\n        finishDeactivation();\n      }\n    }\n  }, {\n    key: \"setupFocusTrap\",\n    value: function setupFocusTrap() {\n      if (this.focusTrap) {\n        // trap already exists: it's possible we're in StrictMode and we're being remounted,\n        //  in which case, we will have deactivated the trap when we got unmounted (remember,\n        //  StrictMode, in development, purposely unmounts and remounts components after\n        //  mounting them the first time to make sure they have reusable state,\n        //  @see https://reactjs.org/docs/strict-mode.html#ensuring-reusable-state) so now\n        //  we need to restore the state of the trap according to our component state\n        // NOTE: Strict mode __violates__ assumptions about the `componentWillUnmount()` API\n        //  which clearly states -- even for React 18 -- that, \"Once a component instance is\n        //  unmounted, __it will never be mounted again.__\" (emphasis ours). So when we get\n        //  unmounted, we assume we're gone forever and we deactivate the trap. But then\n        //  we get remounted and we're supposed to restore state. But if you had paused,\n        //  we've now deactivated (we don't know we're amount to get remounted again)\n        //  which means we need to reactivate and then pause. Otherwise, do nothing.\n        if (this.props.active && !this.focusTrap.active) {\n          this.focusTrap.activate();\n          if (this.props.paused) {\n            this.focusTrap.pause();\n          }\n        }\n      } else {\n        var nodesExist = this.focusTrapElements.some(Boolean);\n        if (nodesExist) {\n          // eslint-disable-next-line react/prop-types -- _createFocusTrap is an internal prop\n          this.focusTrap = this.props._createFocusTrap(this.focusTrapElements, this.internalOptions);\n          if (this.props.active) {\n            this.focusTrap.activate();\n          }\n          if (this.props.paused) {\n            this.focusTrap.pause();\n          }\n        }\n      }\n    }\n  }, {\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      if (this.props.active) {\n        this.setupFocusTrap();\n      }\n      // else, wait for later activation in case the `focusTrapOptions` will be updated\n      //  again before the trap is activated (e.g. if waiting to know what the document\n      //  object will be, so the Trap must be rendered, but the consumer is waiting to\n      //  activate until they have obtained the document from a ref)\n      //  @see https://github.com/focus-trap/focus-trap-react/issues/539\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      if (this.focusTrap) {\n        if (prevProps.containerElements !== this.props.containerElements) {\n          this.focusTrap.updateContainerElements(this.props.containerElements);\n        }\n        var hasActivated = !prevProps.active && this.props.active;\n        var hasDeactivated = prevProps.active && !this.props.active;\n        var hasPaused = !prevProps.paused && this.props.paused;\n        var hasUnpaused = prevProps.paused && !this.props.paused;\n        if (hasActivated) {\n          this.updatePreviousElement();\n          this.focusTrap.activate();\n        }\n        if (hasDeactivated) {\n          this.deactivateTrap();\n          return; // un/pause does nothing on an inactive trap\n        }\n        if (hasPaused) {\n          this.focusTrap.pause();\n        }\n        if (hasUnpaused) {\n          this.focusTrap.unpause();\n        }\n      } else {\n        // NOTE: if we're in `componentDidUpdate` and we don't have a trap yet,\n        //  it either means it shouldn't be active, or it should be but none of\n        //  of given `containerElements` were present in the DOM the last time\n        //  we tried to create the trap\n\n        if (prevProps.containerElements !== this.props.containerElements) {\n          this.focusTrapElements = this.props.containerElements;\n        }\n\n        // don't create the trap unless it should be active in case the consumer\n        //  is still updating `focusTrapOptions`\n        //  @see https://github.com/focus-trap/focus-trap-react/issues/539\n        if (this.props.active) {\n          this.updatePreviousElement();\n          this.setupFocusTrap();\n        }\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.deactivateTrap();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this3 = this;\n      var child = this.props.children ? React.Children.only(this.props.children) : undefined;\n      if (child) {\n        if (child.type && child.type === React.Fragment) {\n          throw new Error('A focus-trap cannot use a Fragment as its child container. Try replacing it with a <div> element.');\n        }\n        var callbackRef = function callbackRef(element) {\n          var containerElements = _this3.props.containerElements;\n          if (child) {\n            if (typeof child.ref === 'function') {\n              child.ref(element);\n            } else if (child.ref) {\n              child.ref.current = element;\n            }\n          }\n          _this3.focusTrapElements = containerElements ? containerElements : [element];\n        };\n        var childWithRef = React.cloneElement(child, {\n          ref: callbackRef\n        });\n        return childWithRef;\n      }\n      return null;\n    }\n  }]);\n}(React.Component); // support server-side rendering where `Element` will not be defined\nvar ElementType = typeof Element === 'undefined' ? Function : Element;\nFocusTrap.propTypes = {\n  active: PropTypes.bool,\n  paused: PropTypes.bool,\n  focusTrapOptions: PropTypes.shape({\n    document: PropTypes.object,\n    onActivate: PropTypes.func,\n    onPostActivate: PropTypes.func,\n    checkCanFocusTrap: PropTypes.func,\n    onPause: PropTypes.func,\n    onPostPause: PropTypes.func,\n    onUnpause: PropTypes.func,\n    onPostUnpause: PropTypes.func,\n    onDeactivate: PropTypes.func,\n    onPostDeactivate: PropTypes.func,\n    checkCanReturnFocus: PropTypes.func,\n    initialFocus: PropTypes.oneOfType([PropTypes.instanceOf(ElementType), PropTypes.string, PropTypes.bool, PropTypes.func]),\n    fallbackFocus: PropTypes.oneOfType([PropTypes.instanceOf(ElementType), PropTypes.string,\n    // NOTE: does not support `false` as value (or return value from function)\n    PropTypes.func]),\n    escapeDeactivates: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n    clickOutsideDeactivates: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n    returnFocusOnDeactivate: PropTypes.bool,\n    setReturnFocus: PropTypes.oneOfType([PropTypes.instanceOf(ElementType), PropTypes.string, PropTypes.bool, PropTypes.func]),\n    allowOutsideClick: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n    preventScroll: PropTypes.bool,\n    tabbableOptions: PropTypes.shape({\n      displayCheck: PropTypes.oneOf(['full', 'legacy-full', 'non-zero-area', 'none']),\n      getShadowRoot: PropTypes.oneOfType([PropTypes.bool, PropTypes.func])\n    }),\n    trapStack: PropTypes.array,\n    isKeyForward: PropTypes.func,\n    isKeyBackward: PropTypes.func\n  }),\n  containerElements: PropTypes.arrayOf(PropTypes.instanceOf(ElementType)),\n  // DOM element ONLY\n  children: PropTypes.oneOfType([PropTypes.element,\n  // React element\n  PropTypes.instanceOf(ElementType) // DOM element\n  ])\n\n  // NOTE: _createFocusTrap is internal, for testing purposes only, so we don't\n  //  specify it here. It's expected to be set to the function returned from\n  //  require('focus-trap'), or one with a compatible interface.\n};\nFocusTrap.defaultProps = {\n  active: true,\n  paused: false,\n  focusTrapOptions: {},\n  _createFocusTrap: createFocusTrap\n};\nmodule.exports = FocusTrap;","import {\n  tabbable,\n  focusable,\n  isFocusable,\n  isTabbable,\n  getTabIndex,\n} from 'tabbable';\n\nconst activeFocusTraps = {\n  activateTrap(trapStack, trap) {\n    if (trapStack.length > 0) {\n      const activeTrap = trapStack[trapStack.length - 1];\n      if (activeTrap !== trap) {\n        activeTrap.pause();\n      }\n    }\n\n    const trapIndex = trapStack.indexOf(trap);\n    if (trapIndex === -1) {\n      trapStack.push(trap);\n    } else {\n      // move this existing trap to the front of the queue\n      trapStack.splice(trapIndex, 1);\n      trapStack.push(trap);\n    }\n  },\n\n  deactivateTrap(trapStack, trap) {\n    const trapIndex = trapStack.indexOf(trap);\n    if (trapIndex !== -1) {\n      trapStack.splice(trapIndex, 1);\n    }\n\n    if (trapStack.length > 0) {\n      trapStack[trapStack.length - 1].unpause();\n    }\n  },\n};\n\nconst isSelectableInput = function (node) {\n  return (\n    node.tagName &&\n    node.tagName.toLowerCase() === 'input' &&\n    typeof node.select === 'function'\n  );\n};\n\nconst isEscapeEvent = function (e) {\n  return e?.key === 'Escape' || e?.key === 'Esc' || e?.keyCode === 27;\n};\n\nconst isTabEvent = function (e) {\n  return e?.key === 'Tab' || e?.keyCode === 9;\n};\n\n// checks for TAB by default\nconst isKeyForward = function (e) {\n  return isTabEvent(e) && !e.shiftKey;\n};\n\n// checks for SHIFT+TAB by default\nconst isKeyBackward = function (e) {\n  return isTabEvent(e) && e.shiftKey;\n};\n\nconst delay = function (fn) {\n  return setTimeout(fn, 0);\n};\n\n// Array.find/findIndex() are not supported on IE; this replicates enough\n//  of Array.findIndex() for our needs\nconst findIndex = function (arr, fn) {\n  let idx = -1;\n\n  arr.every(function (value, i) {\n    if (fn(value)) {\n      idx = i;\n      return false; // break\n    }\n\n    return true; // next\n  });\n\n  return idx;\n};\n\n/**\n * Get an option's value when it could be a plain value, or a handler that provides\n *  the value.\n * @param {*} value Option's value to check.\n * @param {...*} [params] Any parameters to pass to the handler, if `value` is a function.\n * @returns {*} The `value`, or the handler's returned value.\n */\nconst valueOrHandler = function (value, ...params) {\n  return typeof value === 'function' ? value(...params) : value;\n};\n\nconst getActualTarget = function (event) {\n  // NOTE: If the trap is _inside_ a shadow DOM, event.target will always be the\n  //  shadow host. However, event.target.composedPath() will be an array of\n  //  nodes \"clicked\" from inner-most (the actual element inside the shadow) to\n  //  outer-most (the host HTML document). If we have access to composedPath(),\n  //  then use its first element; otherwise, fall back to event.target (and\n  //  this only works for an _open_ shadow DOM; otherwise,\n  //  composedPath()[0] === event.target always).\n  return event.target.shadowRoot && typeof event.composedPath === 'function'\n    ? event.composedPath()[0]\n    : event.target;\n};\n\n// NOTE: this must be _outside_ `createFocusTrap()` to make sure all traps in this\n//  current instance use the same stack if `userOptions.trapStack` isn't specified\nconst internalTrapStack = [];\n\nconst createFocusTrap = function (elements, userOptions) {\n  // SSR: a live trap shouldn't be created in this type of environment so this\n  //  should be safe code to execute if the `document` option isn't specified\n  const doc = userOptions?.document || document;\n\n  const trapStack = userOptions?.trapStack || internalTrapStack;\n\n  const config = {\n    returnFocusOnDeactivate: true,\n    escapeDeactivates: true,\n    delayInitialFocus: true,\n    isKeyForward,\n    isKeyBackward,\n    ...userOptions,\n  };\n\n  const state = {\n    // containers given to createFocusTrap()\n    // @type {Array<HTMLElement>}\n    containers: [],\n\n    // list of objects identifying tabbable nodes in `containers` in the trap\n    // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap\n    //  is active, but the trap should never get to a state where there isn't at least one group\n    //  with at least one tabbable node in it (that would lead to an error condition that would\n    //  result in an error being thrown)\n    // @type {Array<{\n    //   container: HTMLElement,\n    //   tabbableNodes: Array<HTMLElement>, // empty if none\n    //   focusableNodes: Array<HTMLElement>, // empty if none\n    //   posTabIndexesFound: boolean,\n    //   firstTabbableNode: HTMLElement|undefined,\n    //   lastTabbableNode: HTMLElement|undefined,\n    //   firstDomTabbableNode: HTMLElement|undefined,\n    //   lastDomTabbableNode: HTMLElement|undefined,\n    //   nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined\n    // }>}\n    containerGroups: [], // same order/length as `containers` list\n\n    // references to objects in `containerGroups`, but only those that actually have\n    //  tabbable nodes in them\n    // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__\n    //  the same length\n    tabbableGroups: [],\n\n    nodeFocusedBeforeActivation: null,\n    mostRecentlyFocusedNode: null,\n    active: false,\n    paused: false,\n\n    // timer ID for when delayInitialFocus is true and initial focus in this trap\n    //  has been delayed during activation\n    delayInitialFocusTimer: undefined,\n\n    // the most recent KeyboardEvent for the configured nav key (typically [SHIFT+]TAB), if any\n    recentNavEvent: undefined,\n  };\n\n  let trap; // eslint-disable-line prefer-const -- some private functions reference it, and its methods reference private functions, so we must declare here and define later\n\n  /**\n   * Gets a configuration option value.\n   * @param {Object|undefined} configOverrideOptions If true, and option is defined in this set,\n   *  value will be taken from this object. Otherwise, value will be taken from base configuration.\n   * @param {string} optionName Name of the option whose value is sought.\n   * @param {string|undefined} [configOptionName] Name of option to use __instead of__ `optionName`\n   *  IIF `configOverrideOptions` is not defined. Otherwise, `optionName` is used.\n   */\n  const getOption = (configOverrideOptions, optionName, configOptionName) => {\n    return configOverrideOptions &&\n      configOverrideOptions[optionName] !== undefined\n      ? configOverrideOptions[optionName]\n      : config[configOptionName || optionName];\n  };\n\n  /**\n   * Finds the index of the container that contains the element.\n   * @param {HTMLElement} element\n   * @param {Event} [event] If available, and `element` isn't directly found in any container,\n   *  the event's composed path is used to see if includes any known trap containers in the\n   *  case where the element is inside a Shadow DOM.\n   * @returns {number} Index of the container in either `state.containers` or\n   *  `state.containerGroups` (the order/length of these lists are the same); -1\n   *  if the element isn't found.\n   */\n  const findContainerIndex = function (element, event) {\n    const composedPath =\n      typeof event?.composedPath === 'function'\n        ? event.composedPath()\n        : undefined;\n    // NOTE: search `containerGroups` because it's possible a group contains no tabbable\n    //  nodes, but still contains focusable nodes (e.g. if they all have `tabindex=-1`)\n    //  and we still need to find the element in there\n    return state.containerGroups.findIndex(\n      ({ container, tabbableNodes }) =>\n        container.contains(element) ||\n        // fall back to explicit tabbable search which will take into consideration any\n        //  web components if the `tabbableOptions.getShadowRoot` option was used for\n        //  the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't\n        //  look inside web components even if open)\n        composedPath?.includes(container) ||\n        tabbableNodes.find((node) => node === element)\n    );\n  };\n\n  /**\n   * Gets the node for the given option, which is expected to be an option that\n   *  can be either a DOM node, a string that is a selector to get a node, `false`\n   *  (if a node is explicitly NOT given), or a function that returns any of these\n   *  values.\n   * @param {string} optionName\n   * @returns {undefined | false | HTMLElement | SVGElement} Returns\n   *  `undefined` if the option is not specified; `false` if the option\n   *  resolved to `false` (node explicitly not given); otherwise, the resolved\n   *  DOM node.\n   * @throws {Error} If the option is set, not `false`, and is not, or does not\n   *  resolve to a node.\n   */\n  const getNodeForOption = function (optionName, ...params) {\n    let optionValue = config[optionName];\n\n    if (typeof optionValue === 'function') {\n      optionValue = optionValue(...params);\n    }\n\n    if (optionValue === true) {\n      optionValue = undefined; // use default value\n    }\n\n    if (!optionValue) {\n      if (optionValue === undefined || optionValue === false) {\n        return optionValue;\n      }\n      // else, empty string (invalid), null (invalid), 0 (invalid)\n\n      throw new Error(\n        `\\`${optionName}\\` was specified but was not a node, or did not return a node`\n      );\n    }\n\n    let node = optionValue; // could be HTMLElement, SVGElement, or non-empty string at this point\n\n    if (typeof optionValue === 'string') {\n      node = doc.querySelector(optionValue); // resolve to node, or null if fails\n      if (!node) {\n        throw new Error(\n          `\\`${optionName}\\` as selector refers to no known node`\n        );\n      }\n    }\n\n    return node;\n  };\n\n  const getInitialFocusNode = function () {\n    let node = getNodeForOption('initialFocus');\n\n    // false explicitly indicates we want no initialFocus at all\n    if (node === false) {\n      return false;\n    }\n\n    if (node === undefined || !isFocusable(node, config.tabbableOptions)) {\n      // option not specified nor focusable: use fallback options\n      if (findContainerIndex(doc.activeElement) >= 0) {\n        node = doc.activeElement;\n      } else {\n        const firstTabbableGroup = state.tabbableGroups[0];\n        const firstTabbableNode =\n          firstTabbableGroup && firstTabbableGroup.firstTabbableNode;\n\n        // NOTE: `fallbackFocus` option function cannot return `false` (not supported)\n        node = firstTabbableNode || getNodeForOption('fallbackFocus');\n      }\n    }\n\n    if (!node) {\n      throw new Error(\n        'Your focus-trap needs to have at least one focusable element'\n      );\n    }\n\n    return node;\n  };\n\n  const updateTabbableNodes = function () {\n    state.containerGroups = state.containers.map((container) => {\n      const tabbableNodes = tabbable(container, config.tabbableOptions);\n\n      // NOTE: if we have tabbable nodes, we must have focusable nodes; focusable nodes\n      //  are a superset of tabbable nodes since nodes with negative `tabindex` attributes\n      //  are focusable but not tabbable\n      const focusableNodes = focusable(container, config.tabbableOptions);\n\n      const firstTabbableNode =\n        tabbableNodes.length > 0 ? tabbableNodes[0] : undefined;\n      const lastTabbableNode =\n        tabbableNodes.length > 0\n          ? tabbableNodes[tabbableNodes.length - 1]\n          : undefined;\n\n      const firstDomTabbableNode = focusableNodes.find((node) =>\n        isTabbable(node)\n      );\n      const lastDomTabbableNode = focusableNodes\n        .slice()\n        .reverse()\n        .find((node) => isTabbable(node));\n\n      const posTabIndexesFound = !!tabbableNodes.find(\n        (node) => getTabIndex(node) > 0\n      );\n\n      return {\n        container,\n        tabbableNodes,\n        focusableNodes,\n\n        /** True if at least one node with positive `tabindex` was found in this container. */\n        posTabIndexesFound,\n\n        /** First tabbable node in container, __tabindex__ order; `undefined` if none. */\n        firstTabbableNode,\n        /** Last tabbable node in container, __tabindex__ order; `undefined` if none. */\n        lastTabbableNode,\n\n        // NOTE: DOM order is NOT NECESSARILY \"document position\" order, but figuring that out\n        //  would require more than just https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\n        //  because that API doesn't work with Shadow DOM as well as it should (@see\n        //  https://github.com/whatwg/dom/issues/320) and since this first/last is only needed, so far,\n        //  to address an edge case related to positive tabindex support, this seems like a much easier,\n        //  \"close enough most of the time\" alternative for positive tabindexes which should generally\n        //  be avoided anyway...\n        /** First tabbable node in container, __DOM__ order; `undefined` if none. */\n        firstDomTabbableNode,\n        /** Last tabbable node in container, __DOM__ order; `undefined` if none. */\n        lastDomTabbableNode,\n\n        /**\n         * Finds the __tabbable__ node that follows the given node in the specified direction,\n         *  in this container, if any.\n         * @param {HTMLElement} node\n         * @param {boolean} [forward] True if going in forward tab order; false if going\n         *  in reverse.\n         * @returns {HTMLElement|undefined} The next tabbable node, if any.\n         */\n        nextTabbableNode(node, forward = true) {\n          const nodeIdx = tabbableNodes.indexOf(node);\n          if (nodeIdx < 0) {\n            // either not tabbable nor focusable, or was focused but not tabbable (negative tabindex):\n            //  since `node` should at least have been focusable, we assume that's the case and mimic\n            //  what browsers do, which is set focus to the next node in __document position order__,\n            //  regardless of positive tabindexes, if any -- and for reasons explained in the NOTE\n            //  above related to `firstDomTabbable` and `lastDomTabbable` properties, we fall back to\n            //  basic DOM order\n            if (forward) {\n              return focusableNodes\n                .slice(focusableNodes.indexOf(node) + 1)\n                .find((el) => isTabbable(el));\n            }\n\n            return focusableNodes\n              .slice(0, focusableNodes.indexOf(node))\n              .reverse()\n              .find((el) => isTabbable(el));\n          }\n\n          return tabbableNodes[nodeIdx + (forward ? 1 : -1)];\n        },\n      };\n    });\n\n    state.tabbableGroups = state.containerGroups.filter(\n      (group) => group.tabbableNodes.length > 0\n    );\n\n    // throw if no groups have tabbable nodes and we don't have a fallback focus node either\n    if (\n      state.tabbableGroups.length <= 0 &&\n      !getNodeForOption('fallbackFocus') // returning false not supported for this option\n    ) {\n      throw new Error(\n        'Your focus-trap must have at least one container with at least one tabbable node in it at all times'\n      );\n    }\n\n    // NOTE: Positive tabindexes are only properly supported in single-container traps because\n    //  doing it across multiple containers where tabindexes could be all over the place\n    //  would require Tabbable to support multiple containers, would require additional\n    //  specialized Shadow DOM support, and would require Tabbable's multi-container support\n    //  to look at those containers in document position order rather than user-provided\n    //  order (as they are treated in Focus-trap, for legacy reasons). See discussion on\n    //  https://github.com/focus-trap/focus-trap/issues/375 for more details.\n    if (\n      state.containerGroups.find((g) => g.posTabIndexesFound) &&\n      state.containerGroups.length > 1\n    ) {\n      throw new Error(\n        \"At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.\"\n      );\n    }\n  };\n\n  /**\n   * Gets the current activeElement. If it's a web-component and has open shadow-root\n   * it will recursively search inside shadow roots for the \"true\" activeElement.\n   *\n   * @param {Document | ShadowRoot} el\n   *\n   * @returns {HTMLElement} The element that currently has the focus\n   **/\n  const getActiveElement = function (el) {\n    const activeElement = el.activeElement;\n\n    if (!activeElement) {\n      return;\n    }\n\n    if (\n      activeElement.shadowRoot &&\n      activeElement.shadowRoot.activeElement !== null\n    ) {\n      return getActiveElement(activeElement.shadowRoot);\n    }\n\n    return activeElement;\n  };\n\n  const tryFocus = function (node) {\n    if (node === false) {\n      return;\n    }\n\n    if (node === getActiveElement(document)) {\n      return;\n    }\n\n    if (!node || !node.focus) {\n      tryFocus(getInitialFocusNode());\n      return;\n    }\n\n    node.focus({ preventScroll: !!config.preventScroll });\n    // NOTE: focus() API does not trigger focusIn event so set MRU node manually\n    state.mostRecentlyFocusedNode = node;\n\n    if (isSelectableInput(node)) {\n      node.select();\n    }\n  };\n\n  const getReturnFocusNode = function (previousActiveElement) {\n    const node = getNodeForOption('setReturnFocus', previousActiveElement);\n    return node ? node : node === false ? false : previousActiveElement;\n  };\n\n  /**\n   * Finds the next node (in either direction) where focus should move according to a\n   *  keyboard focus-in event.\n   * @param {Object} params\n   * @param {Node} [params.target] Known target __from which__ to navigate, if any.\n   * @param {KeyboardEvent|FocusEvent} [params.event] Event to use if `target` isn't known (event\n   *  will be used to determine the `target`). Ignored if `target` is specified.\n   * @param {boolean} [params.isBackward] True if focus should move backward.\n   * @returns {Node|undefined} The next node, or `undefined` if a next node couldn't be\n   *  determined given the current state of the trap.\n   */\n  const findNextNavNode = function ({ target, event, isBackward = false }) {\n    target = target || getActualTarget(event);\n    updateTabbableNodes();\n\n    let destinationNode = null;\n\n    if (state.tabbableGroups.length > 0) {\n      // make sure the target is actually contained in a group\n      // NOTE: the target may also be the container itself if it's focusable\n      //  with tabIndex='-1' and was given initial focus\n      const containerIndex = findContainerIndex(target, event);\n      const containerGroup =\n        containerIndex >= 0 ? state.containerGroups[containerIndex] : undefined;\n\n      if (containerIndex < 0) {\n        // target not found in any group: quite possible focus has escaped the trap,\n        //  so bring it back into...\n        if (isBackward) {\n          // ...the last node in the last group\n          destinationNode =\n            state.tabbableGroups[state.tabbableGroups.length - 1]\n              .lastTabbableNode;\n        } else {\n          // ...the first node in the first group\n          destinationNode = state.tabbableGroups[0].firstTabbableNode;\n        }\n      } else if (isBackward) {\n        // REVERSE\n\n        // is the target the first tabbable node in a group?\n        let startOfGroupIndex = findIndex(\n          state.tabbableGroups,\n          ({ firstTabbableNode }) => target === firstTabbableNode\n        );\n\n        if (\n          startOfGroupIndex < 0 &&\n          (containerGroup.container === target ||\n            (isFocusable(target, config.tabbableOptions) &&\n              !isTabbable(target, config.tabbableOptions) &&\n              !containerGroup.nextTabbableNode(target, false)))\n        ) {\n          // an exception case where the target is either the container itself, or\n          //  a non-tabbable node that was given focus (i.e. tabindex is negative\n          //  and user clicked on it or node was programmatically given focus)\n          //  and is not followed by any other tabbable node, in which\n          //  case, we should handle shift+tab as if focus were on the container's\n          //  first tabbable node, and go to the last tabbable node of the LAST group\n          startOfGroupIndex = containerIndex;\n        }\n\n        if (startOfGroupIndex >= 0) {\n          // YES: then shift+tab should go to the last tabbable node in the\n          //  previous group (and wrap around to the last tabbable node of\n          //  the LAST group if it's the first tabbable node of the FIRST group)\n          const destinationGroupIndex =\n            startOfGroupIndex === 0\n              ? state.tabbableGroups.length - 1\n              : startOfGroupIndex - 1;\n\n          const destinationGroup = state.tabbableGroups[destinationGroupIndex];\n\n          destinationNode =\n            getTabIndex(target) >= 0\n              ? destinationGroup.lastTabbableNode\n              : destinationGroup.lastDomTabbableNode;\n        } else if (!isTabEvent(event)) {\n          // user must have customized the nav keys so we have to move focus manually _within_\n          //  the active group: do this based on the order determined by tabbable()\n          destinationNode = containerGroup.nextTabbableNode(target, false);\n        }\n      } else {\n        // FORWARD\n\n        // is the target the last tabbable node in a group?\n        let lastOfGroupIndex = findIndex(\n          state.tabbableGroups,\n          ({ lastTabbableNode }) => target === lastTabbableNode\n        );\n\n        if (\n          lastOfGroupIndex < 0 &&\n          (containerGroup.container === target ||\n            (isFocusable(target, config.tabbableOptions) &&\n              !isTabbable(target, config.tabbableOptions) &&\n              !containerGroup.nextTabbableNode(target)))\n        ) {\n          // an exception case where the target is the container itself, or\n          //  a non-tabbable node that was given focus (i.e. tabindex is negative\n          //  and user clicked on it or node was programmatically given focus)\n          //  and is not followed by any other tabbable node, in which\n          //  case, we should handle tab as if focus were on the container's\n          //  last tabbable node, and go to the first tabbable node of the FIRST group\n          lastOfGroupIndex = containerIndex;\n        }\n\n        if (lastOfGroupIndex >= 0) {\n          // YES: then tab should go to the first tabbable node in the next\n          //  group (and wrap around to the first tabbable node of the FIRST\n          //  group if it's the last tabbable node of the LAST group)\n          const destinationGroupIndex =\n            lastOfGroupIndex === state.tabbableGroups.length - 1\n              ? 0\n              : lastOfGroupIndex + 1;\n\n          const destinationGroup = state.tabbableGroups[destinationGroupIndex];\n\n          destinationNode =\n            getTabIndex(target) >= 0\n              ? destinationGroup.firstTabbableNode\n              : destinationGroup.firstDomTabbableNode;\n        } else if (!isTabEvent(event)) {\n          // user must have customized the nav keys so we have to move focus manually _within_\n          //  the active group: do this based on the order determined by tabbable()\n          destinationNode = containerGroup.nextTabbableNode(target);\n        }\n      }\n    } else {\n      // no groups available\n      // NOTE: the fallbackFocus option does not support returning false to opt-out\n      destinationNode = getNodeForOption('fallbackFocus');\n    }\n\n    return destinationNode;\n  };\n\n  // This needs to be done on mousedown and touchstart instead of click\n  // so that it precedes the focus event.\n  const checkPointerDown = function (e) {\n    const target = getActualTarget(e);\n\n    if (findContainerIndex(target, e) >= 0) {\n      // allow the click since it ocurred inside the trap\n      return;\n    }\n\n    if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n      // immediately deactivate the trap\n      trap.deactivate({\n        // NOTE: by setting `returnFocus: false`, deactivate() will do nothing,\n        //  which will result in the outside click setting focus to the node\n        //  that was clicked (and if not focusable, to \"nothing\"); by setting\n        //  `returnFocus: true`, we'll attempt to re-focus the node originally-focused\n        //  on activation (or the configured `setReturnFocus` node), whether the\n        //  outside click was on a focusable node or not\n        returnFocus: config.returnFocusOnDeactivate,\n      });\n      return;\n    }\n\n    // This is needed for mobile devices.\n    // (If we'll only let `click` events through,\n    // then on mobile they will be blocked anyways if `touchstart` is blocked.)\n    if (valueOrHandler(config.allowOutsideClick, e)) {\n      // allow the click outside the trap to take place\n      return;\n    }\n\n    // otherwise, prevent the click\n    e.preventDefault();\n  };\n\n  // In case focus escapes the trap for some strange reason, pull it back in.\n  // NOTE: the focusIn event is NOT cancelable, so if focus escapes, it may cause unexpected\n  //  scrolling if the node that got focused was out of view; there's nothing we can do to\n  //  prevent that from happening by the time we discover that focus escaped\n  const checkFocusIn = function (event) {\n    const target = getActualTarget(event);\n    const targetContained = findContainerIndex(target, event) >= 0;\n\n    // In Firefox when you Tab out of an iframe the Document is briefly focused.\n    if (targetContained || target instanceof Document) {\n      if (targetContained) {\n        state.mostRecentlyFocusedNode = target;\n      }\n    } else {\n      // escaped! pull it back in to where it just left\n      event.stopImmediatePropagation();\n\n      // focus will escape if the MRU node had a positive tab index and user tried to nav forward;\n      //  it will also escape if the MRU node had a 0 tab index and user tried to nav backward\n      //  toward a node with a positive tab index\n      let nextNode; // next node to focus, if we find one\n      let navAcrossContainers = true;\n      if (state.mostRecentlyFocusedNode) {\n        if (getTabIndex(state.mostRecentlyFocusedNode) > 0) {\n          // MRU container index must be >=0 otherwise we wouldn't have it as an MRU node...\n          const mruContainerIdx = findContainerIndex(\n            state.mostRecentlyFocusedNode\n          );\n          // there MAY not be any tabbable nodes in the container if there are at least 2 containers\n          //  and the MRU node is focusable but not tabbable (focus-trap requires at least 1 container\n          //  with at least one tabbable node in order to function, so this could be the other container\n          //  with nothing tabbable in it)\n          const { tabbableNodes } = state.containerGroups[mruContainerIdx];\n          if (tabbableNodes.length > 0) {\n            // MRU tab index MAY not be found if the MRU node is focusable but not tabbable\n            const mruTabIdx = tabbableNodes.findIndex(\n              (node) => node === state.mostRecentlyFocusedNode\n            );\n            if (mruTabIdx >= 0) {\n              if (config.isKeyForward(state.recentNavEvent)) {\n                if (mruTabIdx + 1 < tabbableNodes.length) {\n                  nextNode = tabbableNodes[mruTabIdx + 1];\n                  navAcrossContainers = false;\n                }\n                // else, don't wrap within the container as focus should move to next/previous\n                //  container\n              } else {\n                if (mruTabIdx - 1 >= 0) {\n                  nextNode = tabbableNodes[mruTabIdx - 1];\n                  navAcrossContainers = false;\n                }\n                // else, don't wrap within the container as focus should move to next/previous\n                //  container\n              }\n              // else, don't find in container order without considering direction too\n            }\n          }\n          // else, no tabbable nodes in that container (which means we must have at least one other\n          //  container with at least one tabbable node in it, otherwise focus-trap would've thrown\n          //  an error the last time updateTabbableNodes() was run): find next node among all known\n          //  containers\n        } else {\n          // check to see if there's at least one tabbable node with a positive tab index inside\n          //  the trap because focus seems to escape when navigating backward from a tabbable node\n          //  with tabindex=0 when this is the case (instead of wrapping to the tabbable node with\n          //  the greatest positive tab index like it should)\n          if (\n            !state.containerGroups.some((g) =>\n              g.tabbableNodes.some((n) => getTabIndex(n) > 0)\n            )\n          ) {\n            // no containers with tabbable nodes with positive tab indexes which means the focus\n            //  escaped for some other reason and we should just execute the fallback to the\n            //  MRU node or initial focus node, if any\n            navAcrossContainers = false;\n          }\n        }\n      } else {\n        // no MRU node means we're likely in some initial condition when the trap has just\n        //  been activated and initial focus hasn't been given yet, in which case we should\n        //  fall through to trying to focus the initial focus node, which is what should\n        //  happen below at this point in the logic\n        navAcrossContainers = false;\n      }\n\n      if (navAcrossContainers) {\n        nextNode = findNextNavNode({\n          // move FROM the MRU node, not event-related node (which will be the node that is\n          //  outside the trap causing the focus escape we're trying to fix)\n          target: state.mostRecentlyFocusedNode,\n          isBackward: config.isKeyBackward(state.recentNavEvent),\n        });\n      }\n\n      if (nextNode) {\n        tryFocus(nextNode);\n      } else {\n        tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n      }\n    }\n\n    state.recentNavEvent = undefined; // clear\n  };\n\n  // Hijack key nav events on the first and last focusable nodes of the trap,\n  // in order to prevent focus from escaping. If it escapes for even a\n  // moment it can end up scrolling the page and causing confusion so we\n  // kind of need to capture the action at the keydown phase.\n  const checkKeyNav = function (event, isBackward = false) {\n    state.recentNavEvent = event;\n\n    const destinationNode = findNextNavNode({ event, isBackward });\n    if (destinationNode) {\n      if (isTabEvent(event)) {\n        // since tab natively moves focus, we wouldn't have a destination node unless we\n        //  were on the edge of a container and had to move to the next/previous edge, in\n        //  which case we want to prevent default to keep the browser from moving focus\n        //  to where it normally would\n        event.preventDefault();\n      }\n      tryFocus(destinationNode);\n    }\n    // else, let the browser take care of [shift+]tab and move the focus\n  };\n\n  const checkTabKey = function (event) {\n    if (config.isKeyForward(event) || config.isKeyBackward(event)) {\n      checkKeyNav(event, config.isKeyBackward(event));\n    }\n  };\n\n  // we use a different event phase for the Escape key to allow canceling the event and checking for this in escapeDeactivates\n  const checkEscapeKey = function (event) {\n    if (\n      isEscapeEvent(event) &&\n      valueOrHandler(config.escapeDeactivates, event) !== false\n    ) {\n      event.preventDefault();\n      trap.deactivate();\n    }\n  };\n\n  const checkClick = function (e) {\n    const target = getActualTarget(e);\n\n    if (findContainerIndex(target, e) >= 0) {\n      return;\n    }\n\n    if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n      return;\n    }\n\n    if (valueOrHandler(config.allowOutsideClick, e)) {\n      return;\n    }\n\n    e.preventDefault();\n    e.stopImmediatePropagation();\n  };\n\n  //\n  // EVENT LISTENERS\n  //\n\n  const addListeners = function () {\n    if (!state.active) {\n      return;\n    }\n\n    // There can be only one listening focus trap at a time\n    activeFocusTraps.activateTrap(trapStack, trap);\n\n    // Delay ensures that the focused element doesn't capture the event\n    // that caused the focus trap activation.\n    state.delayInitialFocusTimer = config.delayInitialFocus\n      ? delay(function () {\n          tryFocus(getInitialFocusNode());\n        })\n      : tryFocus(getInitialFocusNode());\n\n    doc.addEventListener('focusin', checkFocusIn, true);\n    doc.addEventListener('mousedown', checkPointerDown, {\n      capture: true,\n      passive: false,\n    });\n    doc.addEventListener('touchstart', checkPointerDown, {\n      capture: true,\n      passive: false,\n    });\n    doc.addEventListener('click', checkClick, {\n      capture: true,\n      passive: false,\n    });\n    doc.addEventListener('keydown', checkTabKey, {\n      capture: true,\n      passive: false,\n    });\n    doc.addEventListener('keydown', checkEscapeKey);\n\n    return trap;\n  };\n\n  const removeListeners = function () {\n    if (!state.active) {\n      return;\n    }\n\n    doc.removeEventListener('focusin', checkFocusIn, true);\n    doc.removeEventListener('mousedown', checkPointerDown, true);\n    doc.removeEventListener('touchstart', checkPointerDown, true);\n    doc.removeEventListener('click', checkClick, true);\n    doc.removeEventListener('keydown', checkTabKey, true);\n    doc.removeEventListener('keydown', checkEscapeKey);\n\n    return trap;\n  };\n\n  //\n  // MUTATION OBSERVER\n  //\n\n  const checkDomRemoval = function (mutations) {\n    const isFocusedNodeRemoved = mutations.some(function (mutation) {\n      const removedNodes = Array.from(mutation.removedNodes);\n      return removedNodes.some(function (node) {\n        return node === state.mostRecentlyFocusedNode;\n      });\n    });\n\n    // If the currently focused is removed then browsers will move focus to the\n    // <body> element. If this happens, try to move focus back into the trap.\n    if (isFocusedNodeRemoved) {\n      tryFocus(getInitialFocusNode());\n    }\n  };\n\n  // Use MutationObserver - if supported - to detect if focused node is removed\n  // from the DOM.\n  const mutationObserver =\n    typeof window !== 'undefined' && 'MutationObserver' in window\n      ? new MutationObserver(checkDomRemoval)\n      : undefined;\n\n  const updateObservedNodes = function () {\n    if (!mutationObserver) {\n      return;\n    }\n\n    mutationObserver.disconnect();\n    if (state.active && !state.paused) {\n      state.containers.map(function (container) {\n        mutationObserver.observe(container, {\n          subtree: true,\n          childList: true,\n        });\n      });\n    }\n  };\n\n  //\n  // TRAP DEFINITION\n  //\n\n  trap = {\n    get active() {\n      return state.active;\n    },\n\n    get paused() {\n      return state.paused;\n    },\n\n    activate(activateOptions) {\n      if (state.active) {\n        return this;\n      }\n\n      const onActivate = getOption(activateOptions, 'onActivate');\n      const onPostActivate = getOption(activateOptions, 'onPostActivate');\n      const checkCanFocusTrap = getOption(activateOptions, 'checkCanFocusTrap');\n\n      if (!checkCanFocusTrap) {\n        updateTabbableNodes();\n      }\n\n      state.active = true;\n      state.paused = false;\n      state.nodeFocusedBeforeActivation = doc.activeElement;\n\n      onActivate?.();\n\n      const finishActivation = () => {\n        if (checkCanFocusTrap) {\n          updateTabbableNodes();\n        }\n        addListeners();\n        updateObservedNodes();\n        onPostActivate?.();\n      };\n\n      if (checkCanFocusTrap) {\n        checkCanFocusTrap(state.containers.concat()).then(\n          finishActivation,\n          finishActivation\n        );\n        return this;\n      }\n\n      finishActivation();\n      return this;\n    },\n\n    deactivate(deactivateOptions) {\n      if (!state.active) {\n        return this;\n      }\n\n      const options = {\n        onDeactivate: config.onDeactivate,\n        onPostDeactivate: config.onPostDeactivate,\n        checkCanReturnFocus: config.checkCanReturnFocus,\n        ...deactivateOptions,\n      };\n\n      clearTimeout(state.delayInitialFocusTimer); // noop if undefined\n      state.delayInitialFocusTimer = undefined;\n\n      removeListeners();\n      state.active = false;\n      state.paused = false;\n      updateObservedNodes();\n\n      activeFocusTraps.deactivateTrap(trapStack, trap);\n\n      const onDeactivate = getOption(options, 'onDeactivate');\n      const onPostDeactivate = getOption(options, 'onPostDeactivate');\n      const checkCanReturnFocus = getOption(options, 'checkCanReturnFocus');\n      const returnFocus = getOption(\n        options,\n        'returnFocus',\n        'returnFocusOnDeactivate'\n      );\n\n      onDeactivate?.();\n\n      const finishDeactivation = () => {\n        delay(() => {\n          if (returnFocus) {\n            tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n          }\n          onPostDeactivate?.();\n        });\n      };\n\n      if (returnFocus && checkCanReturnFocus) {\n        checkCanReturnFocus(\n          getReturnFocusNode(state.nodeFocusedBeforeActivation)\n        ).then(finishDeactivation, finishDeactivation);\n        return this;\n      }\n\n      finishDeactivation();\n      return this;\n    },\n\n    pause(pauseOptions) {\n      if (state.paused || !state.active) {\n        return this;\n      }\n\n      const onPause = getOption(pauseOptions, 'onPause');\n      const onPostPause = getOption(pauseOptions, 'onPostPause');\n\n      state.paused = true;\n      onPause?.();\n\n      removeListeners();\n      updateObservedNodes();\n\n      onPostPause?.();\n      return this;\n    },\n\n    unpause(unpauseOptions) {\n      if (!state.paused || !state.active) {\n        return this;\n      }\n\n      const onUnpause = getOption(unpauseOptions, 'onUnpause');\n      const onPostUnpause = getOption(unpauseOptions, 'onPostUnpause');\n\n      state.paused = false;\n      onUnpause?.();\n\n      updateTabbableNodes();\n      addListeners();\n      updateObservedNodes();\n\n      onPostUnpause?.();\n      return this;\n    },\n\n    updateContainerElements(containerElements) {\n      const elementsAsArray = [].concat(containerElements).filter(Boolean);\n\n      state.containers = elementsAsArray.map((element) =>\n        typeof element === 'string' ? doc.querySelector(element) : element\n      );\n\n      if (state.active) {\n        updateTabbableNodes();\n      }\n\n      updateObservedNodes();\n\n      return this;\n    },\n  };\n\n  // initialize container elements\n  trap.updateContainerElements(elements);\n\n  return trap;\n};\n\nexport { createFocusTrap };\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n  childContextTypes: true,\n  contextType: true,\n  contextTypes: true,\n  defaultProps: true,\n  displayName: true,\n  getDefaultProps: true,\n  getDerivedStateFromError: true,\n  getDerivedStateFromProps: true,\n  mixins: true,\n  propTypes: true,\n  type: true\n};\nvar KNOWN_STATICS = {\n  name: true,\n  length: true,\n  prototype: true,\n  caller: true,\n  callee: true,\n  arguments: true,\n  arity: true\n};\nvar FORWARD_REF_STATICS = {\n  '$$typeof': true,\n  render: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true\n};\nvar MEMO_STATICS = {\n  '$$typeof': true,\n  compare: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n  type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n  // React v16.11 and below\n  if (reactIs.isMemo(component)) {\n    return MEMO_STATICS;\n  } // React v16.12 and above\n\n\n  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n  if (typeof sourceComponent !== 'string') {\n    // don't hoist over string (html) components\n    if (objectPrototype) {\n      var inheritedComponent = getPrototypeOf(sourceComponent);\n\n      if (inheritedComponent && inheritedComponent !== objectPrototype) {\n        hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n      }\n    }\n\n    var keys = getOwnPropertyNames(sourceComponent);\n\n    if (getOwnPropertySymbols) {\n      keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n    }\n\n    var targetStatics = getStatics(targetComponent);\n    var sourceStatics = getStatics(sourceComponent);\n\n    for (var i = 0; i < keys.length; ++i) {\n      var key = keys[i];\n\n      if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n        var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n        try {\n          // Avoid failures from read-only properties\n          defineProperty(targetComponent, key, descriptor);\n        } catch (e) {}\n      }\n    }\n  }\n\n  return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function (style, options) {\n  if (typeof style !== 'string') {\n    throw new TypeError('First argument must be a string');\n  }\n\n  if (!style) return [];\n\n  options = options || {};\n\n  /**\n   * Positional.\n   */\n  var lineno = 1;\n  var column = 1;\n\n  /**\n   * Update lineno and column based on `str`.\n   *\n   * @param {String} str\n   */\n  function updatePosition(str) {\n    var lines = str.match(NEWLINE_REGEX);\n    if (lines) lineno += lines.length;\n    var i = str.lastIndexOf(NEWLINE);\n    column = ~i ? str.length - i : column + str.length;\n  }\n\n  /**\n   * Mark position and patch `node.position`.\n   *\n   * @return {Function}\n   */\n  function position() {\n    var start = { line: lineno, column: column };\n    return function (node) {\n      node.position = new Position(start);\n      whitespace();\n      return node;\n    };\n  }\n\n  /**\n   * Store position information for a node.\n   *\n   * @constructor\n   * @property {Object} start\n   * @property {Object} end\n   * @property {undefined|String} source\n   */\n  function Position(start) {\n    this.start = start;\n    this.end = { line: lineno, column: column };\n    this.source = options.source;\n  }\n\n  /**\n   * Non-enumerable source string.\n   */\n  Position.prototype.content = style;\n\n  var errorsList = [];\n\n  /**\n   * Error `msg`.\n   *\n   * @param {String} msg\n   * @throws {Error}\n   */\n  function error(msg) {\n    var err = new Error(\n      options.source + ':' + lineno + ':' + column + ': ' + msg\n    );\n    err.reason = msg;\n    err.filename = options.source;\n    err.line = lineno;\n    err.column = column;\n    err.source = style;\n\n    if (options.silent) {\n      errorsList.push(err);\n    } else {\n      throw err;\n    }\n  }\n\n  /**\n   * Match `re` and return captures.\n   *\n   * @param {RegExp} re\n   * @return {undefined|Array}\n   */\n  function match(re) {\n    var m = re.exec(style);\n    if (!m) return;\n    var str = m[0];\n    updatePosition(str);\n    style = style.slice(str.length);\n    return m;\n  }\n\n  /**\n   * Parse whitespace.\n   */\n  function whitespace() {\n    match(WHITESPACE_REGEX);\n  }\n\n  /**\n   * Parse comments.\n   *\n   * @param {Object[]} [rules]\n   * @return {Object[]}\n   */\n  function comments(rules) {\n    var c;\n    rules = rules || [];\n    while ((c = comment())) {\n      if (c !== false) {\n        rules.push(c);\n      }\n    }\n    return rules;\n  }\n\n  /**\n   * Parse comment.\n   *\n   * @return {Object}\n   * @throws {Error}\n   */\n  function comment() {\n    var pos = position();\n    if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n    var i = 2;\n    while (\n      EMPTY_STRING != style.charAt(i) &&\n      (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n    ) {\n      ++i;\n    }\n    i += 2;\n\n    if (EMPTY_STRING === style.charAt(i - 1)) {\n      return error('End of comment missing');\n    }\n\n    var str = style.slice(2, i - 2);\n    column += 2;\n    updatePosition(str);\n    style = style.slice(i);\n    column += 2;\n\n    return pos({\n      type: TYPE_COMMENT,\n      comment: str\n    });\n  }\n\n  /**\n   * Parse declaration.\n   *\n   * @return {Object}\n   * @throws {Error}\n   */\n  function declaration() {\n    var pos = position();\n\n    // prop\n    var prop = match(PROPERTY_REGEX);\n    if (!prop) return;\n    comment();\n\n    // :\n    if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n    // val\n    var val = match(VALUE_REGEX);\n\n    var ret = pos({\n      type: TYPE_DECLARATION,\n      property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n      value: val\n        ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n        : EMPTY_STRING\n    });\n\n    // ;\n    match(SEMICOLON_REGEX);\n\n    return ret;\n  }\n\n  /**\n   * Parse declarations.\n   *\n   * @return {Object[]}\n   */\n  function declarations() {\n    var decls = [];\n\n    comments(decls);\n\n    // declarations\n    var decl;\n    while ((decl = declaration())) {\n      if (decl !== false) {\n        decls.push(decl);\n        comments(decls);\n      }\n    }\n\n    return decls;\n  }\n\n  whitespace();\n  return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n  return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  }\n\n  if (!condition) {\n    var error;\n    if (format === undefined) {\n      error = new Error(\n        'Minified exception occurred; use the non-minified dev environment ' +\n        'for the full error message and additional helpful warnings.'\n      );\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error(\n        format.replace(/%s/g, function() { return args[argIndex++]; })\n      );\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n};\n\nmodule.exports = invariant;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    var err = new Error(\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n    err.name = 'Invariant Violation';\n    throw err;\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bigint: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    elementType: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim,\n\n    checkPropTypes: emptyFunctionWithReset,\n    resetWarningCache: emptyFunction\n  };\n\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n  var ReactIs = require('react-is');\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;\nfunction Lg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction Mg(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function Ng(a){var b=a._init;return b(a._payload)}\nfunction Og(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Pg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Qg(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&Ng(f)===b.type))return d=e(b,c.props),d.ref=Lg(a,b,c),d.return=a,d;d=Rg(c.type,c.key,c.props,null,a.mode,d);d.ref=Lg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=Sg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Tg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=Qg(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=Rg(b.type,b.key,b.props,null,a.mode,c),\nc.ref=Lg(a,null,b),c.return=a,c;case wa:return b=Sg(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Tg(b,a.mode,c,null),b.return=a,b;Mg(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);Mg(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);Mg(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var th={},uh=Uf(th),vh=Uf(th),wh=Uf(th);function xh(a){if(a===th)throw Error(p(174));return a}\nfunction yh(a,b){G(wh,b);G(vh,a);G(uh,th);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(uh);G(uh,b)}function zh(){E(uh);E(vh);E(wh)}function Ah(a){xh(wh.current);var b=xh(uh.current);var c=lb(b,a.type);b!==c&&(G(vh,a),G(uh,c))}function Bh(a){vh.current===a&&(E(uh),E(vh))}var L=Uf(0);\nfunction Ch(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Dh=[];\nfunction Eh(){for(var a=0;a<Dh.length;a++)Dh[a]._workInProgressVersionPrimary=null;Dh.length=0}var Fh=ua.ReactCurrentDispatcher,Gh=ua.ReactCurrentBatchConfig,Hh=0,M=null,N=null,O=null,Ih=!1,Jh=!1,Kh=0,Lh=0;function P(){throw Error(p(321));}function Mh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Nh(a,b,c,d,e,f){Hh=f;M=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Fh.current=null===a||null===a.memoizedState?Oh:Ph;a=c(d,e);if(Jh){f=0;do{Jh=!1;Kh=0;if(25<=f)throw Error(p(301));f+=1;O=N=null;b.updateQueue=null;Fh.current=Qh;a=c(d,e)}while(Jh)}Fh.current=Rh;b=null!==N&&null!==N.next;Hh=0;O=N=M=null;Ih=!1;if(b)throw Error(p(300));return a}function Sh(){var a=0!==Kh;Kh=0;return a}\nfunction Th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===O?M.memoizedState=O=a:O=O.next=a;return O}function Uh(){if(null===N){var a=M.alternate;a=null!==a?a.memoizedState:null}else a=N.next;var b=null===O?M.memoizedState:O.next;if(null!==b)O=b,N=a;else{if(null===a)throw Error(p(310));N=a;a={memoizedState:N.memoizedState,baseState:N.baseState,baseQueue:N.baseQueue,queue:N.queue,next:null};null===O?M.memoizedState=O=a:O=O.next=a}return O}\nfunction Vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Wh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=N,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Hh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;M.lanes|=m;rh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(dh=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,M.lanes|=f,rh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction Xh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(dh=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function Yh(){}\nfunction Zh(a,b){var c=M,d=Uh(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,dh=!0);d=d.queue;$h(ai.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==O&&O.memoizedState.tag&1){c.flags|=2048;bi(9,ci.bind(null,c,d,e,b),void 0,null);if(null===Q)throw Error(p(349));0!==(Hh&30)||di(c,b,e)}return e}function di(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction ci(a,b,c,d){b.value=c;b.getSnapshot=d;ei(b)&&fi(a)}function ai(a,b,c){return c(function(){ei(b)&&fi(a)})}function ei(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function fi(a){var b=ih(a,1);null!==b&&gi(b,a,1,-1)}\nfunction hi(a){var b=Th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Vh,lastRenderedState:a};b.queue=a;a=a.dispatch=ii.bind(null,M,a);return[b.memoizedState,a]}\nfunction bi(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function ji(){return Uh().memoizedState}function ki(a,b,c,d){var e=Th();M.flags|=a;e.memoizedState=bi(1|b,c,void 0,void 0===d?null:d)}\nfunction li(a,b,c,d){var e=Uh();d=void 0===d?null:d;var f=void 0;if(null!==N){var g=N.memoizedState;f=g.destroy;if(null!==d&&Mh(d,g.deps)){e.memoizedState=bi(b,c,f,d);return}}M.flags|=a;e.memoizedState=bi(1|b,c,f,d)}function mi(a,b){return ki(8390656,8,a,b)}function $h(a,b){return li(2048,8,a,b)}function ni(a,b){return li(4,2,a,b)}function oi(a,b){return li(4,4,a,b)}\nfunction pi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function qi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return li(4,4,pi.bind(null,b,a),c)}function ri(){}function si(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction ti(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function ui(a,b,c){if(0===(Hh&21))return a.baseState&&(a.baseState=!1,dh=!0),a.memoizedState=c;He(c,b)||(c=yc(),M.lanes|=c,rh|=c,a.baseState=!0);return b}function vi(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Lh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Ph={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Wh,useRef:ji,useState:function(){return Wh(Vh)},\nuseDebugValue:ri,useDeferredValue:function(a){var b=Uh();return ui(b,N.memoizedState,a)},useTransition:function(){var a=Wh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1},Qh={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Xh,useRef:ji,useState:function(){return Xh(Vh)},useDebugValue:ri,useDeferredValue:function(a){var b=Uh();return null===\nN?b.memoizedState=a:ui(b,N.memoizedState,a)},useTransition:function(){var a=Xh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1};function Ci(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}function Di(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Ei={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=R(),d=\nyi(a),e=mh(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=nh(a,e,d);null!==b&&(gi(b,a,d,c),oh(b,a,d))}};function Fi(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction Gi(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=eh(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Ei;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Hi(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Ei.enqueueReplaceState(b,b.state,null)}\nfunction Ii(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs={};kh(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=eh(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Di(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Ei.enqueueReplaceState(e,e.state,null),qh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}function Ji(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}\nfunction Ki(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}function Li(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Mi=\"function\"===typeof WeakMap?WeakMap:Map;function Ni(a,b,c){c=mh(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Oi||(Oi=!0,Pi=d);Li(a,b)};return c}\nfunction Qi(a,b,c){c=mh(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Li(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Li(a,b);\"function\"!==typeof d&&(null===Ri?Ri=new Set([this]):Ri.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Si(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Mi;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ti.bind(null,a,b,c),b.then(a,a))}function Ui(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Vi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=mh(-1,1),b.tag=2,nh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Wi=ua.ReactCurrentOwner,dh=!1;function Xi(a,b,c,d){b.child=null===a?Vg(b,null,c,d):Ug(b,a.child,c,d)}\nfunction Yi(a,b,c,d,e){c=c.render;var f=b.ref;ch(b,e);d=Nh(a,b,c,d,f,e);c=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&c&&vg(b);b.flags|=1;Xi(a,b,d,e);return b.child}\nfunction $i(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!aj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,bj(a,b,f,d,e);a=Rg(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return Zi(a,b,e)}b.flags|=1;a=Pg(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction bj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(dh=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(dh=!0);else return b.lanes=a.lanes,Zi(a,b,e)}return cj(a,b,c,d,e)}\nfunction dj(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(ej,fj),fj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(ej,fj),fj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(ej,fj);fj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(ej,fj),fj|=d;Xi(a,b,e,c);return b.child}function gj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function cj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);ch(b,e);c=Nh(a,b,c,d,f,e);d=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&d&&vg(b);b.flags|=1;Xi(a,b,c,e);return b.child}\nfunction hj(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;ch(b,e);if(null===b.stateNode)ij(a,b),Gi(b,c,d),Ii(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=eh(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&Hi(b,g,d,l);jh=!1;var r=b.memoizedState;g.state=r;qh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||jh?(\"function\"===typeof m&&(Di(b,c,m,d),k=b.memoizedState),(h=jh||Fi(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;lh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Ci(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=eh(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&Hi(b,g,d,k);jh=!1;r=b.memoizedState;g.state=r;qh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||jh?(\"function\"===typeof y&&(Di(b,c,y,d),n=b.memoizedState),(l=jh||Fi(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return jj(a,b,c,d,f,e)}\nfunction jj(a,b,c,d,e,f){gj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),Zi(a,b,f);d=b.stateNode;Wi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Ug(b,a.child,null,f),b.child=Ug(b,null,h,f)):Xi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function kj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);yh(a,b.containerInfo)}\nfunction lj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Xi(a,b,c,d);return b.child}var mj={dehydrated:null,treeContext:null,retryLane:0};function nj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction oj(a,b,c){var d=b.pendingProps,e=L.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(L,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=pj(g,d,0,null),a=Tg(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=nj(c),b.memoizedState=mj,a):qj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return rj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=Pg(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=Pg(h,f):(f=Tg(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?nj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=mj;return d}f=a.child;a=f.sibling;d=Pg(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction qj(a,b){b=pj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function sj(a,b,c,d){null!==d&&Jg(d);Ug(b,a.child,null,c);a=qj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction rj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Ki(Error(p(422))),sj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=pj({mode:\"visible\",children:d.children},e,0,null);f=Tg(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Ug(b,a.child,null,g);b.child.memoizedState=nj(g);b.memoizedState=mj;return f}if(0===(b.mode&1))return sj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Ki(f,d,void 0);return sj(a,b,g,d)}h=0!==(g&a.childLanes);if(dh||h){d=Q;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,ih(a,e),gi(d,a,e,-1))}tj();d=Ki(Error(p(421)));return sj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=uj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=qj(b,d.children);b.flags|=4096;return b}function vj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);bh(a.return,b,c)}\nfunction wj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction xj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Xi(a,b,d.children,c);d=L.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&vj(a,c,b);else if(19===a.tag)vj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(L,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Ch(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);wj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Ch(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}wj(b,!0,c,null,f);break;case \"together\":wj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction ij(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function Zi(a,b,c){null!==a&&(b.dependencies=a.dependencies);rh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=Pg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Pg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction yj(a,b,c){switch(b.tag){case 3:kj(b);Ig();break;case 5:Ah(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:yh(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Wg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(L,L.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return oj(a,b,c);G(L,L.current&1);a=Zi(a,b,c);return null!==a?a.sibling:null}G(L,L.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return xj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(L,L.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,dj(a,b,c)}return Zi(a,b,c)}var zj,Aj,Bj,Cj;\nzj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Aj=function(){};\nBj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;xh(uh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Cj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Dj(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Ej(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;zh();E(Wf);E(H);Eh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Fj(zg),zg=null));Aj(a,b);S(b);return null;case 5:Bh(b);var e=xh(wh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Bj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Cj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=xh(wh.current);xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(L);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Fj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(L.current&1)?0===T&&(T=3):tj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return zh(),\nAj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return ah(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(L);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Dj(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Ch(a);if(null!==g){b.flags|=128;Dj(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(L,L.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Gj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Xj=!1;break a;case 3:X=h.stateNode.containerInfo;Xj=!0;break a;case 4:X=h.stateNode.containerInfo;Xj=!0;break a}h=h.return}if(null===X)throw Error(p(160));Zj(f,g,e);X=null;Xj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)dk(b,a),b=b.sibling}\nfunction dk(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:ck(b,a);ek(a);if(d&4){try{Pj(3,a,a.return),Qj(3,a)}catch(t){W(a,a.return,t)}try{Pj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);break;case 5:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:ck(b,a);ek(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:ck(b,a);ek(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:ck(b,a);ek(a);break;case 13:ck(b,a);ek(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(fk=B()));d&4&&ak(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,ck(b,a),U=l):ck(b,a);ek(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Pj(4,r,r.return);break;case 1:Lj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Lj(r,r.return);break;case 22:if(null!==r.memoizedState){gk(q);continue}}null!==y?(y.return=r,V=y):gk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:ck(b,a);ek(a);d&4&&ak(a);break;case 21:break;default:ck(b,\na),ek(a)}}function ek(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Tj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Uj(a);Wj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Uj(a);Vj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function hk(a,b,c){V=a;ik(a,b,c)}\nfunction ik(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Jj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Jj;var l=U;Jj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?jk(e):null!==k?(k.return=g,V=k):jk(e);for(;null!==f;)V=f,ik(f,b,c),f=f.sibling;V=e;Jj=h;U=l}kk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):kk(a,b,c)}}\nfunction kk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Qj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Ci(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&sh(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}sh(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Rj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function gk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction jk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Qj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Rj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Rj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar lk=Math.ceil,mk=ua.ReactCurrentDispatcher,nk=ua.ReactCurrentOwner,ok=ua.ReactCurrentBatchConfig,K=0,Q=null,Y=null,Z=0,fj=0,ej=Uf(0),T=0,pk=null,rh=0,qk=0,rk=0,sk=null,tk=null,fk=0,Gj=Infinity,uk=null,Oi=!1,Pi=null,Ri=null,vk=!1,wk=null,xk=0,yk=0,zk=null,Ak=-1,Bk=0;function R(){return 0!==(K&6)?B():-1!==Ak?Ak:Ak=B()}\nfunction yi(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Bk&&(Bk=yc()),Bk;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function gi(a,b,c,d){if(50<yk)throw yk=0,zk=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==Q)a===Q&&(0===(K&2)&&(qk|=c),4===T&&Ck(a,Z)),Dk(a,d),1===c&&0===K&&0===(b.mode&1)&&(Gj=B()+500,fg&&jg())}\nfunction Dk(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===Q?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Ek.bind(null,a)):hg(Ek.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Fk(c,Gk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Gk(a,b){Ak=-1;Bk=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Hk()&&a.callbackNode!==c)return null;var d=uc(a,a===Q?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Ik(a,d);else{b=d;var e=K;K|=2;var f=Jk();if(Q!==a||Z!==b)uk=null,Gj=B()+500,Kk(a,b);do try{Lk();break}catch(h){Mk(a,h)}while(1);$g();mk.current=f;K=e;null!==Y?b=0:(Q=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Nk(a,e)));if(1===b)throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;if(6===b)Ck(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Ok(e)&&(b=Ik(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Nk(a,f))),1===b))throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Pk(a,tk,uk);break;case 3:Ck(a,d);if((d&130023424)===d&&(b=fk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){R();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),b);break}Pk(a,tk,uk);break;case 4:Ck(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),d);break}Pk(a,tk,uk);break;case 5:Pk(a,tk,uk);break;default:throw Error(p(329));}}}Dk(a,B());return a.callbackNode===c?Gk.bind(null,a):null}\nfunction Nk(a,b){var c=sk;a.current.memoizedState.isDehydrated&&(Kk(a,b).flags|=256);a=Ik(a,b);2!==a&&(b=tk,tk=c,null!==b&&Fj(b));return a}function Fj(a){null===tk?tk=a:tk.push.apply(tk,a)}\nfunction Ok(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Ck(a,b){b&=~rk;b&=~qk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Ek(a){if(0!==(K&6))throw Error(p(327));Hk();var b=uc(a,0);if(0===(b&1))return Dk(a,B()),null;var c=Ik(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Nk(a,d))}if(1===c)throw c=pk,Kk(a,0),Ck(a,b),Dk(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Pk(a,tk,uk);Dk(a,B());return null}\nfunction Qk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Gj=B()+500,fg&&jg())}}function Rk(a){null!==wk&&0===wk.tag&&0===(K&6)&&Hk();var b=K;K|=1;var c=ok.transition,d=C;try{if(ok.transition=null,C=1,a)return a()}finally{C=d,ok.transition=c,K=b,0===(K&6)&&jg()}}function Hj(){fj=ej.current;E(ej)}\nfunction Kk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:zh();E(Wf);E(H);Eh();break;case 5:Bh(d);break;case 4:zh();break;case 13:E(L);break;case 19:E(L);break;case 10:ah(d.type._context);break;case 22:case 23:Hj()}c=c.return}Q=a;Y=a=Pg(a.current,null);Z=fj=b;T=0;pk=null;rk=qk=rh=0;tk=sk=null;if(null!==fh){for(b=\n0;b<fh.length;b++)if(c=fh[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}fh=null}return a}\nfunction Mk(a,b){do{var c=Y;try{$g();Fh.current=Rh;if(Ih){for(var d=M.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Ih=!1}Hh=0;O=N=M=null;Jh=!1;Kh=0;nk.current=null;if(null===c||null===c.return){T=1;pk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Ui(g);if(null!==y){y.flags&=-257;Vi(y,g,h,f,b);y.mode&1&&Si(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Si(f,l,b);tj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Ui(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Vi(J,g,h,f,b);Jg(Ji(k,h));break a}}f=k=Ji(k,h);4!==T&&(T=2);null===sk?sk=[f]:sk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Ni(f,k,b);ph(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Ri||!Ri.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Qi(f,h,b);ph(f,F);break a}}f=f.return}while(null!==f)}Sk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Jk(){var a=mk.current;mk.current=Rh;return null===a?Rh:a}\nfunction tj(){if(0===T||3===T||2===T)T=4;null===Q||0===(rh&268435455)&&0===(qk&268435455)||Ck(Q,Z)}function Ik(a,b){var c=K;K|=2;var d=Jk();if(Q!==a||Z!==b)uk=null,Kk(a,b);do try{Tk();break}catch(e){Mk(a,e)}while(1);$g();K=c;mk.current=d;if(null!==Y)throw Error(p(261));Q=null;Z=0;return T}function Tk(){for(;null!==Y;)Uk(Y)}function Lk(){for(;null!==Y&&!cc();)Uk(Y)}function Uk(a){var b=Vk(a.alternate,a,fj);a.memoizedProps=a.pendingProps;null===b?Sk(a):Y=b;nk.current=null}\nfunction Sk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Ej(c,b,fj),null!==c){Y=c;return}}else{c=Ij(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Pk(a,b,c){var d=C,e=ok.transition;try{ok.transition=null,C=1,Wk(a,b,c,d)}finally{ok.transition=e,C=d}return null}\nfunction Wk(a,b,c,d){do Hk();while(null!==wk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===Q&&(Y=Q=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||vk||(vk=!0,Fk(hc,function(){Hk();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=ok.transition;ok.transition=null;\nvar g=C;C=1;var h=K;K|=4;nk.current=null;Oj(a,c);dk(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;hk(c,a,e);dc();K=h;C=g;ok.transition=f}else a.current=c;vk&&(vk=!1,wk=a,xk=e);f=a.pendingLanes;0===f&&(Ri=null);mc(c.stateNode,d);Dk(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Oi)throw Oi=!1,a=Pi,Pi=null,a;0!==(xk&1)&&0!==a.tag&&Hk();f=a.pendingLanes;0!==(f&1)?a===zk?yk++:(yk=0,zk=a):yk=0;jg();return null}\nfunction Hk(){if(null!==wk){var a=Dc(xk),b=ok.transition,c=C;try{ok.transition=null;C=16>a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Pj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Sj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Pj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Qj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,ok.transition=b}}return!1}function Xk(a,b,c){b=Ji(c,b);b=Ni(a,b,1);a=nh(a,b,1);b=R();null!==a&&(Ac(a,1,b),Dk(a,b))}\nfunction W(a,b,c){if(3===a.tag)Xk(a,a,c);else for(;null!==b;){if(3===b.tag){Xk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ri||!Ri.has(d))){a=Ji(c,a);a=Qi(b,a,1);b=nh(b,a,1);a=R();null!==b&&(Ac(b,1,a),Dk(b,a));break}}b=b.return}}\nfunction Ti(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=R();a.pingedLanes|=a.suspendedLanes&c;Q===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction dl(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction el(a,b,c,d,e,f,g,h,k){a=bl(c,d,!0,a,e,f,g,h,k);a.context=dl(null);c=a.current;d=R();e=yi(c);f=mh(d,e);f.callback=void 0!==b&&null!==b?b:null;nh(c,f,e);a.current.lanes=e;Ac(a,e,d);Dk(a,d);return a}function fl(a,b,c,d){var e=b.current,f=R(),g=yi(e);c=dl(c);null===b.context?b.context=c:b.pendingContext=c;b=mh(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=nh(e,b,g);null!==a&&(gi(a,e,g,f),oh(a,e,g));return g}\nfunction gl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function hl(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function il(a,b){hl(a,b);(a=a.alternate)&&hl(a,b)}function jl(){return null}var kl=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ll(a){this._internalRoot=a}\nml.prototype.render=ll.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));fl(a,b,null,null)};ml.prototype.unmount=ll.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Rk(function(){fl(null,a,null,null)});b[uf]=null}};function ml(a){this._internalRoot=a}\nml.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function nl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function pl(){}\nfunction ql(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=gl(g);f.call(a)}}var g=el(b,d,a,0,null,!1,!1,\"\",pl);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Rk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=gl(k);h.call(a)}}var k=bl(a,0,!1,null,null,!1,!1,\"\",pl);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Rk(function(){fl(b,k,c,d)});return k}\nfunction rl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=gl(g);h.call(a)}}fl(b,g,a,e)}else g=ql(c,b,a,e,d);return gl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Dk(b,B()),0===(K&6)&&(Gj=B()+500,jg()))}break;case 13:Rk(function(){var b=ih(a,1);if(null!==b){var c=R();gi(b,a,1,c)}}),il(a,1)}};\nFc=function(a){if(13===a.tag){var b=ih(a,134217728);if(null!==b){var c=R();gi(b,a,134217728,c)}il(a,134217728)}};Gc=function(a){if(13===a.tag){var b=yi(a),c=ih(a,b);if(null!==c){var d=R();gi(c,a,b,d)}il(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Qk;Hb=Rk;\nvar sl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Qk]},tl={findFiberByHostInstance:Wc,bundleType:0,version:\"18.3.1\",rendererPackageName:\"react-dom\"};\nvar ul={bundleType:tl.bundleType,version:tl.version,rendererPackageName:tl.rendererPackageName,rendererConfig:tl.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:tl.findFiberByHostInstance||\njl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.3.1-next-f1338f8080-20240426\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var vl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!vl.isDisabled&&vl.supportsFiber)try{kc=vl.inject(ul),lc=vl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=sl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!nl(b))throw Error(p(200));return cl(a,b,null,c)};exports.createRoot=function(a,b){if(!nl(a))throw Error(p(299));var c=!1,d=\"\",e=kl;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=bl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ll(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Rk(a)};exports.hydrate=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!nl(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=kl;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=el(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new ml(b)};exports.render=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!ol(a))throw Error(p(40));return a._reactRootContainer?(Rk(function(){rl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Qk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!ol(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return rl(a,b,c,!1,d)};exports.version=\"18.3.1-next-f1338f8080-20240426\";\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n  exports.createRoot = m.createRoot;\n  exports.hydrateRoot = m.hydrateRoot;\n} else {\n  var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n  exports.createRoot = function(c, o) {\n    i.usingClientEntryPoint = true;\n    try {\n      return m.createRoot(c, o);\n    } finally {\n      i.usingClientEntryPoint = false;\n    }\n  };\n  exports.hydrateRoot = function(c, h, o) {\n    i.usingClientEntryPoint = true;\n    try {\n      return m.hydrateRoot(c, h, o);\n    } finally {\n      i.usingClientEntryPoint = false;\n    }\n  };\n}\n","'use strict';\n\nfunction checkDCE() {\n  /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n  if (\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n  ) {\n    return;\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    // This branch is unreachable because this function is only called\n    // in production, but the condition is true only in development.\n    // Therefore if the branch is still here, dead code elimination wasn't\n    // properly applied.\n    // Don't change the message. React DevTools relies on it. Also make sure\n    // this message doesn't occur elsewhere in this function, or it will cause\n    // a false positive.\n    throw new Error('^_^');\n  }\n  try {\n    // Verify that the code above has been dead code eliminated (DCE'd).\n    __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n  } catch (err) {\n    // DevTools shouldn't crash React, no matter what.\n    // We should still report in case we break this code.\n    console.error(err);\n  }\n}\n\nif (process.env.NODE_ENV === 'production') {\n  // DCE check should happen before ReactDOM bundle executes so that\n  // DevTools can report bad minification during injection.\n  checkDCE();\n  module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n  module.exports = require('./cjs/react-dom.development.js');\n}\n","// THIS FILE IS AUTO GENERATED\nimport { GenIcon } from '../lib';\nexport function HiAcademicCap (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.394 2.08a1 1 0 00-.788 0l-7 3a1 1 0 000 1.84L5.25 8.051a.999.999 0 01.356-.257l4-1.714a1 1 0 11.788 1.838L7.667 9.088l1.94.831a1 1 0 00.787 0l7-3a1 1 0 000-1.838l-7-3zM3.31 9.397L5 10.12v4.102a8.969 8.969 0 00-1.05-.174 1 1 0 01-.89-.89 11.115 11.115 0 01.25-3.762zM9.3 16.573A9.026 9.026 0 007 14.935v-3.957l1.818.78a3 3 0 002.364 0l5.508-2.361a11.026 11.026 0 01.25 3.762 1 1 0 01-.89.89 8.968 8.968 0 00-5.35 2.524 1 1 0 01-1.4 0zM6 18a1 1 0 001-1v-2.065a8.935 8.935 0 00-2-.712V17a1 1 0 001 1z\"}}]})(props);\n};\nexport function HiAdjustments (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 4a1 1 0 00-2 0v7.268a2 2 0 000 3.464V16a1 1 0 102 0v-1.268a2 2 0 000-3.464V4zM11 4a1 1 0 10-2 0v1.268a2 2 0 000 3.464V16a1 1 0 102 0V8.732a2 2 0 000-3.464V4zM16 3a1 1 0 011 1v7.268a2 2 0 010 3.464V16a1 1 0 11-2 0v-1.268a2 2 0 010-3.464V4a1 1 0 011-1z\"}}]})(props);\n};\nexport function HiAnnotation (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M18 13V5a2 2 0 00-2-2H4a2 2 0 00-2 2v8a2 2 0 002 2h3l3 3 3-3h3a2 2 0 002-2zM5 7a1 1 0 011-1h8a1 1 0 110 2H6a1 1 0 01-1-1zm1 3a1 1 0 100 2h3a1 1 0 100-2H6z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiArchive (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 3a2 2 0 100 4h12a2 2 0 100-4H4z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M3 8h14v7a2 2 0 01-2 2H5a2 2 0 01-2-2V8zm5 3a1 1 0 011-1h2a1 1 0 110 2H9a1 1 0 01-1-1z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiArrowCircleDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 18a8 8 0 100-16 8 8 0 000 16zm1-11a1 1 0 10-2 0v3.586L7.707 9.293a1 1 0 00-1.414 1.414l3 3a1 1 0 001.414 0l3-3a1 1 0 00-1.414-1.414L11 10.586V7z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiArrowCircleLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 18a8 8 0 100-16 8 8 0 000 16zm.707-10.293a1 1 0 00-1.414-1.414l-3 3a1 1 0 000 1.414l3 3a1 1 0 001.414-1.414L9.414 11H13a1 1 0 100-2H9.414l1.293-1.293z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiArrowCircleRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-8.707l-3-3a1 1 0 00-1.414 1.414L10.586 9H7a1 1 0 100 2h3.586l-1.293 1.293a1 1 0 101.414 1.414l3-3a1 1 0 000-1.414z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiArrowCircleUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-8.707l-3-3a1 1 0 00-1.414 0l-3 3a1 1 0 001.414 1.414L9 9.414V13a1 1 0 102 0V9.414l1.293 1.293a1 1 0 001.414-1.414z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiArrowDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M16.707 10.293a1 1 0 010 1.414l-6 6a1 1 0 01-1.414 0l-6-6a1 1 0 111.414-1.414L9 14.586V3a1 1 0 012 0v11.586l4.293-4.293a1 1 0 011.414 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiArrowLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M9.707 16.707a1 1 0 01-1.414 0l-6-6a1 1 0 010-1.414l6-6a1 1 0 011.414 1.414L5.414 9H17a1 1 0 110 2H5.414l4.293 4.293a1 1 0 010 1.414z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiArrowNarrowDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M14.707 12.293a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 111.414-1.414L9 14.586V3a1 1 0 012 0v11.586l2.293-2.293a1 1 0 011.414 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiArrowNarrowLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M7.707 14.707a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 1.414L5.414 9H17a1 1 0 110 2H5.414l2.293 2.293a1 1 0 010 1.414z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiArrowNarrowRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M12.293 5.293a1 1 0 011.414 0l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414-1.414L14.586 11H3a1 1 0 110-2h11.586l-2.293-2.293a1 1 0 010-1.414z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiArrowNarrowUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M5.293 7.707a1 1 0 010-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 01-1.414 1.414L11 5.414V17a1 1 0 11-2 0V5.414L6.707 7.707a1 1 0 01-1.414 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiArrowRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10.293 3.293a1 1 0 011.414 0l6 6a1 1 0 010 1.414l-6 6a1 1 0 01-1.414-1.414L14.586 11H3a1 1 0 110-2h11.586l-4.293-4.293a1 1 0 010-1.414z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiArrowSmDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M14.707 10.293a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 111.414-1.414L9 12.586V5a1 1 0 012 0v7.586l2.293-2.293a1 1 0 011.414 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiArrowSmLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M9.707 14.707a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 1.414L7.414 9H15a1 1 0 110 2H7.414l2.293 2.293a1 1 0 010 1.414z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiArrowSmRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10.293 5.293a1 1 0 011.414 0l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414-1.414L12.586 11H5a1 1 0 110-2h7.586l-2.293-2.293a1 1 0 010-1.414z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiArrowSmUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M5.293 9.707a1 1 0 010-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 01-1.414 1.414L11 7.414V15a1 1 0 11-2 0V7.414L6.707 9.707a1 1 0 01-1.414 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiArrowUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M3.293 9.707a1 1 0 010-1.414l6-6a1 1 0 011.414 0l6 6a1 1 0 01-1.414 1.414L11 5.414V17a1 1 0 11-2 0V5.414L4.707 9.707a1 1 0 01-1.414 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiArrowsExpand (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M3 4a1 1 0 011-1h4a1 1 0 010 2H6.414l2.293 2.293a1 1 0 01-1.414 1.414L5 6.414V8a1 1 0 01-2 0V4zm9 1a1 1 0 110-2h4a1 1 0 011 1v4a1 1 0 11-2 0V6.414l-2.293 2.293a1 1 0 11-1.414-1.414L13.586 5H12zm-9 7a1 1 0 112 0v1.586l2.293-2.293a1 1 0 011.414 1.414L6.414 15H8a1 1 0 110 2H4a1 1 0 01-1-1v-4zm13-1a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 110-2h1.586l-2.293-2.293a1 1 0 011.414-1.414L15 13.586V12a1 1 0 011-1z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiAtSymbol (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M14.243 5.757a6 6 0 10-.986 9.284 1 1 0 111.087 1.678A8 8 0 1118 10a3 3 0 01-4.8 2.401A4 4 0 1114 10a1 1 0 102 0c0-1.537-.586-3.07-1.757-4.243zM12 10a2 2 0 10-4 0 2 2 0 004 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiBackspace (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M6.707 4.879A3 3 0 018.828 4H15a3 3 0 013 3v6a3 3 0 01-3 3H8.828a3 3 0 01-2.12-.879l-4.415-4.414a1 1 0 010-1.414l4.414-4.414zm4 2.414a1 1 0 00-1.414 1.414L10.586 10l-1.293 1.293a1 1 0 101.414 1.414L12 11.414l1.293 1.293a1 1 0 001.414-1.414L13.414 10l1.293-1.293a1 1 0 00-1.414-1.414L12 8.586l-1.293-1.293z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiBadgeCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M6.267 3.455a3.066 3.066 0 001.745-.723 3.066 3.066 0 013.976 0 3.066 3.066 0 001.745.723 3.066 3.066 0 012.812 2.812c.051.643.304 1.254.723 1.745a3.066 3.066 0 010 3.976 3.066 3.066 0 00-.723 1.745 3.066 3.066 0 01-2.812 2.812 3.066 3.066 0 00-1.745.723 3.066 3.066 0 01-3.976 0 3.066 3.066 0 00-1.745-.723 3.066 3.066 0 01-2.812-2.812 3.066 3.066 0 00-.723-1.745 3.066 3.066 0 010-3.976 3.066 3.066 0 00.723-1.745 3.066 3.066 0 012.812-2.812zm7.44 5.252a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiBan (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M13.477 14.89A6 6 0 015.11 6.524l8.367 8.368zm1.414-1.414L6.524 5.11a6 6 0 018.367 8.367zM18 10a8 8 0 11-16 0 8 8 0 0116 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiBeaker (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M7 2a1 1 0 00-.707 1.707L7 4.414v3.758a1 1 0 01-.293.707l-4 4C.817 14.769 2.156 18 4.828 18h10.343c2.673 0 4.012-3.231 2.122-5.121l-4-4A1 1 0 0113 8.172V4.414l.707-.707A1 1 0 0013 2H7zm2 6.172V4h2v4.172a3 3 0 00.879 2.12l1.027 1.028a4 4 0 00-2.171.102l-.47.156a4 4 0 01-2.53 0l-.563-.187a1.993 1.993 0 00-.114-.035l1.063-1.063A3 3 0 009 8.172z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiBell (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 2a6 6 0 00-6 6v3.586l-.707.707A1 1 0 004 14h12a1 1 0 00.707-1.707L16 11.586V8a6 6 0 00-6-6zM10 18a3 3 0 01-3-3h6a3 3 0 01-3 3z\"}}]})(props);\n};\nexport function HiBookOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 4.804A7.968 7.968 0 005.5 4c-1.255 0-2.443.29-3.5.804v10A7.969 7.969 0 015.5 14c1.669 0 3.218.51 4.5 1.385A7.962 7.962 0 0114.5 14c1.255 0 2.443.29 3.5.804v-10A7.968 7.968 0 0014.5 4c-1.255 0-2.443.29-3.5.804V12a1 1 0 11-2 0V4.804z\"}}]})(props);\n};\nexport function HiBookmarkAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M3 5a2 2 0 012-2h10a2 2 0 012 2v10a2 2 0 01-2 2H5a2 2 0 01-2-2V5zm11 1H6v8l4-2 4 2V6z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiBookmark (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 4a2 2 0 012-2h6a2 2 0 012 2v14l-5-2.5L5 18V4z\"}}]})(props);\n};\nexport function HiBriefcase (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M6 6V5a3 3 0 013-3h2a3 3 0 013 3v1h2a2 2 0 012 2v3.57A22.952 22.952 0 0110 13a22.95 22.95 0 01-8-1.43V8a2 2 0 012-2h2zm2-1a1 1 0 011-1h2a1 1 0 011 1v1H8V5zm1 5a1 1 0 011-1h.01a1 1 0 110 2H10a1 1 0 01-1-1z\",\"clipRule\":\"evenodd\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 13.692V16a2 2 0 002 2h12a2 2 0 002-2v-2.308A24.974 24.974 0 0110 15c-2.796 0-5.487-.46-8-1.308z\"}}]})(props);\n};\nexport function HiCake (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M6 3a1 1 0 011-1h.01a1 1 0 010 2H7a1 1 0 01-1-1zm2 3a1 1 0 00-2 0v1a2 2 0 00-2 2v1a2 2 0 00-2 2v.683a3.7 3.7 0 011.055.485 1.704 1.704 0 001.89 0 3.704 3.704 0 014.11 0 1.704 1.704 0 001.89 0 3.704 3.704 0 014.11 0 1.704 1.704 0 001.89 0A3.7 3.7 0 0118 12.683V12a2 2 0 00-2-2V9a2 2 0 00-2-2V6a1 1 0 10-2 0v1h-1V6a1 1 0 10-2 0v1H8V6zm10 8.868a3.704 3.704 0 01-4.055-.036 1.704 1.704 0 00-1.89 0 3.704 3.704 0 01-4.11 0 1.704 1.704 0 00-1.89 0A3.704 3.704 0 012 14.868V17a1 1 0 001 1h14a1 1 0 001-1v-2.132zM9 3a1 1 0 011-1h.01a1 1 0 110 2H10a1 1 0 01-1-1zm3 0a1 1 0 011-1h.01a1 1 0 110 2H13a1 1 0 01-1-1z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiCalculator (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M6 2a2 2 0 00-2 2v12a2 2 0 002 2h8a2 2 0 002-2V4a2 2 0 00-2-2H6zm1 2a1 1 0 000 2h6a1 1 0 100-2H7zm6 7a1 1 0 011 1v3a1 1 0 11-2 0v-3a1 1 0 011-1zm-3 3a1 1 0 100 2h.01a1 1 0 100-2H10zm-4 1a1 1 0 011-1h.01a1 1 0 110 2H7a1 1 0 01-1-1zm1-4a1 1 0 100 2h.01a1 1 0 100-2H7zm2 1a1 1 0 011-1h.01a1 1 0 110 2H10a1 1 0 01-1-1zm4-4a1 1 0 100 2h.01a1 1 0 100-2H13zM9 9a1 1 0 011-1h.01a1 1 0 110 2H10a1 1 0 01-1-1zM7 8a1 1 0 000 2h.01a1 1 0 000-2H7z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiCalendar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M6 2a1 1 0 00-1 1v1H4a2 2 0 00-2 2v10a2 2 0 002 2h12a2 2 0 002-2V6a2 2 0 00-2-2h-1V3a1 1 0 10-2 0v1H7V3a1 1 0 00-1-1zm0 5a1 1 0 000 2h8a1 1 0 100-2H6z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiCamera (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M4 5a2 2 0 00-2 2v8a2 2 0 002 2h12a2 2 0 002-2V7a2 2 0 00-2-2h-1.586a1 1 0 01-.707-.293l-1.121-1.121A2 2 0 0011.172 3H8.828a2 2 0 00-1.414.586L6.293 4.707A1 1 0 015.586 5H4zm6 9a3 3 0 100-6 3 3 0 000 6z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiCash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M4 4a2 2 0 00-2 2v4a2 2 0 002 2V6h10a2 2 0 00-2-2H4zm2 6a2 2 0 012-2h8a2 2 0 012 2v4a2 2 0 01-2 2H8a2 2 0 01-2-2v-4zm6 4a2 2 0 100-4 2 2 0 000 4z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiChartBar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 11a1 1 0 011-1h2a1 1 0 011 1v5a1 1 0 01-1 1H3a1 1 0 01-1-1v-5zM8 7a1 1 0 011-1h2a1 1 0 011 1v9a1 1 0 01-1 1H9a1 1 0 01-1-1V7zM14 4a1 1 0 011-1h2a1 1 0 011 1v12a1 1 0 01-1 1h-2a1 1 0 01-1-1V4z\"}}]})(props);\n};\nexport function HiChartPie (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 10a8 8 0 018-8v8h8a8 8 0 11-16 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2.252A8.014 8.014 0 0117.748 8H12V2.252z\"}}]})(props);\n};\nexport function HiChartSquareBar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M5 3a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2V5a2 2 0 00-2-2H5zm9 4a1 1 0 10-2 0v6a1 1 0 102 0V7zm-3 2a1 1 0 10-2 0v4a1 1 0 102 0V9zm-3 3a1 1 0 10-2 0v1a1 1 0 102 0v-1z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiChatAlt2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 5a2 2 0 012-2h7a2 2 0 012 2v4a2 2 0 01-2 2H9l-3 3v-3H4a2 2 0 01-2-2V5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 7v2a4 4 0 01-4 4H9.828l-1.766 1.767c.28.149.599.233.938.233h2l3 3v-3h2a2 2 0 002-2V9a2 2 0 00-2-2h-1z\"}}]})(props);\n};\nexport function HiChatAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M18 5v8a2 2 0 01-2 2h-5l-5 4v-4H4a2 2 0 01-2-2V5a2 2 0 012-2h12a2 2 0 012 2zM7 8H5v2h2V8zm2 0h2v2H9V8zm6 0h-2v2h2V8z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiChat (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M18 10c0 3.866-3.582 7-8 7a8.841 8.841 0 01-4.083-.98L2 17l1.338-3.123C2.493 12.767 2 11.434 2 10c0-3.866 3.582-7 8-7s8 3.134 8 7zM7 9H5v2h2V9zm8 0h-2v2h2V9zM9 9h2v2H9V9z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiCheckCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiChevronDoubleDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M15.707 4.293a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-5-5a1 1 0 011.414-1.414L10 8.586l4.293-4.293a1 1 0 011.414 0zm0 6a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-5-5a1 1 0 111.414-1.414L10 14.586l4.293-4.293a1 1 0 011.414 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiChevronDoubleLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M15.707 15.707a1 1 0 01-1.414 0l-5-5a1 1 0 010-1.414l5-5a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 010 1.414zm-6 0a1 1 0 01-1.414 0l-5-5a1 1 0 010-1.414l5-5a1 1 0 011.414 1.414L5.414 10l4.293 4.293a1 1 0 010 1.414z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiChevronDoubleRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10.293 15.707a1 1 0 010-1.414L14.586 10l-4.293-4.293a1 1 0 111.414-1.414l5 5a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0z\",\"clipRule\":\"evenodd\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M4.293 15.707a1 1 0 010-1.414L8.586 10 4.293 5.707a1 1 0 011.414-1.414l5 5a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiChevronDoubleUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M4.293 15.707a1 1 0 010-1.414l5-5a1 1 0 011.414 0l5 5a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414 0zm0-6a1 1 0 010-1.414l5-5a1 1 0 011.414 0l5 5a1 1 0 01-1.414 1.414L10 5.414 5.707 9.707a1 1 0 01-1.414 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiChevronDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiChevronLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiChevronRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiChevronUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M14.707 12.707a1 1 0 01-1.414 0L10 9.414l-3.293 3.293a1 1 0 01-1.414-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 010 1.414z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiChip (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 7H7v6h6V7z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M7 2a1 1 0 012 0v1h2V2a1 1 0 112 0v1h2a2 2 0 012 2v2h1a1 1 0 110 2h-1v2h1a1 1 0 110 2h-1v2a2 2 0 01-2 2h-2v1a1 1 0 11-2 0v-1H9v1a1 1 0 11-2 0v-1H5a2 2 0 01-2-2v-2H2a1 1 0 110-2h1V9H2a1 1 0 010-2h1V5a2 2 0 012-2h2V2zM5 5h10v10H5V5z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiClipboardCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 2a1 1 0 000 2h2a1 1 0 100-2H9z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M4 5a2 2 0 012-2 3 3 0 003 3h2a3 3 0 003-3 2 2 0 012 2v11a2 2 0 01-2 2H6a2 2 0 01-2-2V5zm9.707 5.707a1 1 0 00-1.414-1.414L9 12.586l-1.293-1.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiClipboardCopy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 2a1 1 0 000 2h2a1 1 0 100-2H8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5a2 2 0 012-2 3 3 0 003 3h2a3 3 0 003-3 2 2 0 012 2v6h-4.586l1.293-1.293a1 1 0 00-1.414-1.414l-3 3a1 1 0 000 1.414l3 3a1 1 0 001.414-1.414L10.414 13H15v3a2 2 0 01-2 2H5a2 2 0 01-2-2V5zM15 11h2a1 1 0 110 2h-2v-2z\"}}]})(props);\n};\nexport function HiClipboardList (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 2a1 1 0 000 2h2a1 1 0 100-2H9z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M4 5a2 2 0 012-2 3 3 0 003 3h2a3 3 0 003-3 2 2 0 012 2v11a2 2 0 01-2 2H6a2 2 0 01-2-2V5zm3 4a1 1 0 000 2h.01a1 1 0 100-2H7zm3 0a1 1 0 000 2h3a1 1 0 100-2h-3zm-3 4a1 1 0 100 2h.01a1 1 0 100-2H7zm3 0a1 1 0 100 2h3a1 1 0 100-2h-3z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiClipboard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 3a1 1 0 011-1h2a1 1 0 110 2H9a1 1 0 01-1-1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 3a2 2 0 00-2 2v11a2 2 0 002 2h8a2 2 0 002-2V5a2 2 0 00-2-2 3 3 0 01-3 3H9a3 3 0 01-3-3z\"}}]})(props);\n};\nexport function HiClock (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 18a8 8 0 100-16 8 8 0 000 16zm1-12a1 1 0 10-2 0v4a1 1 0 00.293.707l2.828 2.829a1 1 0 101.415-1.415L11 9.586V6z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiCloudDownload (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M2 9.5A3.5 3.5 0 005.5 13H9v2.586l-1.293-1.293a1 1 0 00-1.414 1.414l3 3a1 1 0 001.414 0l3-3a1 1 0 00-1.414-1.414L11 15.586V13h2.5a4.5 4.5 0 10-.616-8.958 4.002 4.002 0 10-7.753 1.977A3.5 3.5 0 002 9.5zm9 3.5H9V8a1 1 0 012 0v5z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiCloudUpload (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.5 13a3.5 3.5 0 01-.369-6.98 4 4 0 117.753-1.977A4.5 4.5 0 1113.5 13H11V9.413l1.293 1.293a1 1 0 001.414-1.414l-3-3a1 1 0 00-1.414 0l-3 3a1 1 0 001.414 1.414L9 9.414V13H5.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 13h2v5a1 1 0 11-2 0v-5z\"}}]})(props);\n};\nexport function HiCloud (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.5 16a3.5 3.5 0 01-.369-6.98 4 4 0 117.753-1.977A4.5 4.5 0 1113.5 16h-8z\"}}]})(props);\n};\nexport function HiCode (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M12.316 3.051a1 1 0 01.633 1.265l-4 12a1 1 0 11-1.898-.632l4-12a1 1 0 011.265-.633zM5.707 6.293a1 1 0 010 1.414L3.414 10l2.293 2.293a1 1 0 11-1.414 1.414l-3-3a1 1 0 010-1.414l3-3a1 1 0 011.414 0zm8.586 0a1 1 0 011.414 0l3 3a1 1 0 010 1.414l-3 3a1 1 0 11-1.414-1.414L16.586 10l-2.293-2.293a1 1 0 010-1.414z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiCog (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M11.49 3.17c-.38-1.56-2.6-1.56-2.98 0a1.532 1.532 0 01-2.286.948c-1.372-.836-2.942.734-2.106 2.106.54.886.061 2.042-.947 2.287-1.561.379-1.561 2.6 0 2.978a1.532 1.532 0 01.947 2.287c-.836 1.372.734 2.942 2.106 2.106a1.532 1.532 0 012.287.947c.379 1.561 2.6 1.561 2.978 0a1.533 1.533 0 012.287-.947c1.372.836 2.942-.734 2.106-2.106a1.533 1.533 0 01.947-2.287c1.561-.379 1.561-2.6 0-2.978a1.532 1.532 0 01-.947-2.287c.836-1.372-.734-2.942-2.106-2.106a1.532 1.532 0 01-2.287-.947zM10 13a3 3 0 100-6 3 3 0 000 6z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiCollection (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 3a1 1 0 000 2h6a1 1 0 100-2H7zM4 7a1 1 0 011-1h10a1 1 0 110 2H5a1 1 0 01-1-1zM2 11a2 2 0 012-2h12a2 2 0 012 2v4a2 2 0 01-2 2H4a2 2 0 01-2-2v-4z\"}}]})(props);\n};\nexport function HiColorSwatch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M4 2a2 2 0 00-2 2v11a3 3 0 106 0V4a2 2 0 00-2-2H4zm1 14a1 1 0 100-2 1 1 0 000 2zm5-1.757l4.9-4.9a2 2 0 000-2.828L13.485 5.1a2 2 0 00-2.828 0L10 5.757v8.486zM16 18H9.071l6-6H16a2 2 0 012 2v2a2 2 0 01-2 2z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiCreditCard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4a2 2 0 00-2 2v1h16V6a2 2 0 00-2-2H4z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M18 9H2v5a2 2 0 002 2h12a2 2 0 002-2V9zM4 13a1 1 0 011-1h1a1 1 0 110 2H5a1 1 0 01-1-1zm5-1a1 1 0 100 2h1a1 1 0 100-2H9z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiCubeTransparent (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M9.504 1.132a1 1 0 01.992 0l1.75 1a1 1 0 11-.992 1.736L10 3.152l-1.254.716a1 1 0 11-.992-1.736l1.75-1zM5.618 4.504a1 1 0 01-.372 1.364L5.016 6l.23.132a1 1 0 11-.992 1.736L4 7.723V8a1 1 0 01-2 0V6a.996.996 0 01.52-.878l1.734-.99a1 1 0 011.364.372zm8.764 0a1 1 0 011.364-.372l1.733.99A1.002 1.002 0 0118 6v2a1 1 0 11-2 0v-.277l-.254.145a1 1 0 11-.992-1.736l.23-.132-.23-.132a1 1 0 01-.372-1.364zm-7 4a1 1 0 011.364-.372L10 8.848l1.254-.716a1 1 0 11.992 1.736L11 10.58V12a1 1 0 11-2 0v-1.42l-1.246-.712a1 1 0 01-.372-1.364zM3 11a1 1 0 011 1v1.42l1.246.712a1 1 0 11-.992 1.736l-1.75-1A1 1 0 012 14v-2a1 1 0 011-1zm14 0a1 1 0 011 1v2a1 1 0 01-.504.868l-1.75 1a1 1 0 11-.992-1.736L16 13.42V12a1 1 0 011-1zm-9.618 5.504a1 1 0 011.364-.372l.254.145V16a1 1 0 112 0v.277l.254-.145a1 1 0 11.992 1.736l-1.735.992a.995.995 0 01-1.022 0l-1.735-.992a1 1 0 01-.372-1.364z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiCube (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 17a1 1 0 001.447.894l4-2A1 1 0 0017 15V9.236a1 1 0 00-1.447-.894l-4 2a1 1 0 00-.553.894V17zM15.211 6.276a1 1 0 000-1.788l-4.764-2.382a1 1 0 00-.894 0L4.789 4.488a1 1 0 000 1.788l4.764 2.382a1 1 0 00.894 0l4.764-2.382zM4.447 8.342A1 1 0 003 9.236V15a1 1 0 00.553.894l4 2A1 1 0 009 17v-5.764a1 1 0 00-.553-.894l-4-2z\"}}]})(props);\n};\nexport function HiCurrencyBangladeshi (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 18a8 8 0 100-16 8 8 0 000 16zM7 4a1 1 0 000 2 1 1 0 011 1v1H7a1 1 0 000 2h1v3a3 3 0 106 0v-1a1 1 0 10-2 0v1a1 1 0 11-2 0v-3h3a1 1 0 100-2h-3V7a3 3 0 00-3-3z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiCurrencyDollar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.433 7.418c.155-.103.346-.196.567-.267v1.698a2.305 2.305 0 01-.567-.267C8.07 8.34 8 8.114 8 8c0-.114.07-.34.433-.582zM11 12.849v-1.698c.22.071.412.164.567.267.364.243.433.468.433.582 0 .114-.07.34-.433.582a2.305 2.305 0 01-.567.267z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 18a8 8 0 100-16 8 8 0 000 16zm1-13a1 1 0 10-2 0v.092a4.535 4.535 0 00-1.676.662C6.602 6.234 6 7.009 6 8c0 .99.602 1.765 1.324 2.246.48.32 1.054.545 1.676.662v1.941c-.391-.127-.68-.317-.843-.504a1 1 0 10-1.51 1.31c.562.649 1.413 1.076 2.353 1.253V15a1 1 0 102 0v-.092a4.535 4.535 0 001.676-.662C13.398 13.766 14 12.991 14 12c0-.99-.602-1.765-1.324-2.246A4.535 4.535 0 0011 9.092V7.151c.391.127.68.317.843.504a1 1 0 101.511-1.31c-.563-.649-1.413-1.076-2.354-1.253V5z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiCurrencyEuro (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.736 6.979C9.208 6.193 9.696 6 10 6c.304 0 .792.193 1.264.979a1 1 0 001.715-1.029C12.279 4.784 11.232 4 10 4s-2.279.784-2.979 1.95c-.285.475-.507 1-.67 1.55H6a1 1 0 000 2h.013a9.358 9.358 0 000 1H6a1 1 0 100 2h.351c.163.55.385 1.075.67 1.55C7.721 15.216 8.768 16 10 16s2.279-.784 2.979-1.95a1 1 0 10-1.715-1.029c-.472.786-.96.979-1.264.979-.304 0-.792-.193-1.264-.979a4.265 4.265 0 01-.264-.521H10a1 1 0 100-2H8.017a7.36 7.36 0 010-1H10a1 1 0 100-2H8.472c.08-.185.167-.36.264-.521z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiCurrencyPound (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 18a8 8 0 100-16 8 8 0 000 16zm1-14a3 3 0 00-3 3v2H7a1 1 0 000 2h1v1a1 1 0 01-1 1 1 1 0 100 2h6a1 1 0 100-2H9.83c.11-.313.17-.65.17-1v-1h1a1 1 0 100-2h-1V7a1 1 0 112 0 1 1 0 102 0 3 3 0 00-3-3z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiCurrencyRupee (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 18a8 8 0 100-16 8 8 0 000 16zM7 5a1 1 0 100 2h1a2 2 0 011.732 1H7a1 1 0 100 2h2.732A2 2 0 018 11H7a1 1 0 00-.707 1.707l3 3a1 1 0 001.414-1.414l-1.483-1.484A4.008 4.008 0 0011.874 10H13a1 1 0 100-2h-1.126a3.976 3.976 0 00-.41-1H13a1 1 0 100-2H7z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiCurrencyYen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 18a8 8 0 100-16 8 8 0 000 16zM7.858 5.485a1 1 0 00-1.715 1.03L7.633 9H7a1 1 0 100 2h1.834l.166.277V12H7a1 1 0 100 2h2v1a1 1 0 102 0v-1h2a1 1 0 100-2h-2v-.723l.166-.277H13a1 1 0 100-2h-.634l1.492-2.486a1 1 0 10-1.716-1.029L10.034 9h-.068L7.858 5.485z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiCursorClick (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M6.672 1.911a1 1 0 10-1.932.518l.259.966a1 1 0 001.932-.518l-.26-.966zM2.429 4.74a1 1 0 10-.517 1.932l.966.259a1 1 0 00.517-1.932l-.966-.26zm8.814-.569a1 1 0 00-1.415-1.414l-.707.707a1 1 0 101.415 1.415l.707-.708zm-7.071 7.072l.707-.707A1 1 0 003.465 9.12l-.708.707a1 1 0 001.415 1.415zm3.2-5.171a1 1 0 00-1.3 1.3l4 10a1 1 0 001.823.075l1.38-2.759 3.018 3.02a1 1 0 001.414-1.415l-3.019-3.02 2.76-1.379a1 1 0 00-.076-1.822l-10-4z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiDatabase (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 12v3c0 1.657 3.134 3 7 3s7-1.343 7-3v-3c0 1.657-3.134 3-7 3s-7-1.343-7-3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 7v3c0 1.657 3.134 3 7 3s7-1.343 7-3V7c0 1.657-3.134 3-7 3S3 8.657 3 7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 5c0 1.657-3.134 3-7 3S3 6.657 3 5s3.134-3 7-3 7 1.343 7 3z\"}}]})(props);\n};\nexport function HiDesktopComputer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M3 5a2 2 0 012-2h10a2 2 0 012 2v8a2 2 0 01-2 2h-2.22l.123.489.804.804A1 1 0 0113 18H7a1 1 0 01-.707-1.707l.804-.804L7.22 15H5a2 2 0 01-2-2V5zm5.771 7H5V5h10v7H8.771z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiDeviceMobile (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M7 2a2 2 0 00-2 2v12a2 2 0 002 2h6a2 2 0 002-2V4a2 2 0 00-2-2H7zm3 14a1 1 0 100-2 1 1 0 000 2z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiDeviceTablet (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M6 2a2 2 0 00-2 2v12a2 2 0 002 2h8a2 2 0 002-2V4a2 2 0 00-2-2H6zm4 14a1 1 0 100-2 1 1 0 000 2z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiDocumentAdd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M6 2a2 2 0 00-2 2v12a2 2 0 002 2h8a2 2 0 002-2V7.414A2 2 0 0015.414 6L12 2.586A2 2 0 0010.586 2H6zm5 6a1 1 0 10-2 0v2H7a1 1 0 100 2h2v2a1 1 0 102 0v-2h2a1 1 0 100-2h-2V8z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiDocumentDownload (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M6 2a2 2 0 00-2 2v12a2 2 0 002 2h8a2 2 0 002-2V7.414A2 2 0 0015.414 6L12 2.586A2 2 0 0010.586 2H6zm5 6a1 1 0 10-2 0v3.586l-1.293-1.293a1 1 0 10-1.414 1.414l3 3a1 1 0 001.414 0l3-3a1 1 0 00-1.414-1.414L11 11.586V8z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiDocumentDuplicate (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 2a2 2 0 00-2 2v8a2 2 0 002 2h6a2 2 0 002-2V6.414A2 2 0 0016.414 5L14 2.586A2 2 0 0012.586 2H9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 8a2 2 0 012-2v10h8a2 2 0 01-2 2H5a2 2 0 01-2-2V8z\"}}]})(props);\n};\nexport function HiDocumentRemove (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M6 2a2 2 0 00-2 2v12a2 2 0 002 2h8a2 2 0 002-2V7.414A2 2 0 0015.414 6L12 2.586A2 2 0 0010.586 2H6zm1 8a1 1 0 100 2h6a1 1 0 100-2H7z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiDocumentReport (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M6 2a2 2 0 00-2 2v12a2 2 0 002 2h8a2 2 0 002-2V7.414A2 2 0 0015.414 6L12 2.586A2 2 0 0010.586 2H6zm2 10a1 1 0 10-2 0v3a1 1 0 102 0v-3zm2-3a1 1 0 011 1v5a1 1 0 11-2 0v-5a1 1 0 011-1zm4-1a1 1 0 10-2 0v7a1 1 0 102 0V8z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiDocumentSearch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4a2 2 0 012-2h4.586A2 2 0 0112 2.586L15.414 6A2 2 0 0116 7.414V16a2 2 0 01-2 2h-1.528A6 6 0 004 9.528V4z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M8 10a4 4 0 00-3.446 6.032l-1.261 1.26a1 1 0 101.414 1.415l1.261-1.261A4 4 0 108 10zm-2 4a2 2 0 114 0 2 2 0 01-4 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiDocumentText (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M4 4a2 2 0 012-2h4.586A2 2 0 0112 2.586L15.414 6A2 2 0 0116 7.414V16a2 2 0 01-2 2H6a2 2 0 01-2-2V4zm2 6a1 1 0 011-1h6a1 1 0 110 2H7a1 1 0 01-1-1zm1 3a1 1 0 100 2h6a1 1 0 100-2H7z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiDocument (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M4 4a2 2 0 012-2h4.586A2 2 0 0112 2.586L15.414 6A2 2 0 0116 7.414V16a2 2 0 01-2 2H6a2 2 0 01-2-2V4z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiDotsCircleHorizontal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 18a8 8 0 100-16 8 8 0 000 16zM7 9H5v2h2V9zm8 0h-2v2h2V9zM9 9h2v2H9V9z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiDotsHorizontal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 10a2 2 0 11-4 0 2 2 0 014 0zM12 10a2 2 0 11-4 0 2 2 0 014 0zM16 12a2 2 0 100-4 2 2 0 000 4z\"}}]})(props);\n};\nexport function HiDotsVertical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z\"}}]})(props);\n};\nexport function HiDownload (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M3 17a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm3.293-7.707a1 1 0 011.414 0L9 10.586V3a1 1 0 112 0v7.586l1.293-1.293a1 1 0 111.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiDuplicate (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 9a2 2 0 012-2h6a2 2 0 012 2v6a2 2 0 01-2 2H9a2 2 0 01-2-2V9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 3a2 2 0 00-2 2v6a2 2 0 002 2V5h8a2 2 0 00-2-2H5z\"}}]})(props);\n};\nexport function HiEmojiHappy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 18a8 8 0 100-16 8 8 0 000 16zM7 9a1 1 0 100-2 1 1 0 000 2zm7-1a1 1 0 11-2 0 1 1 0 012 0zm-.464 5.535a1 1 0 10-1.415-1.414 3 3 0 01-4.242 0 1 1 0 00-1.415 1.414 5 5 0 007.072 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiEmojiSad (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 18a8 8 0 100-16 8 8 0 000 16zM7 9a1 1 0 100-2 1 1 0 000 2zm7-1a1 1 0 11-2 0 1 1 0 012 0zm-7.536 5.879a1 1 0 001.415 0 3 3 0 014.242 0 1 1 0 001.415-1.415 5 5 0 00-7.072 0 1 1 0 000 1.415z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiExclamationCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiExclamation (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiExternalLink (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 3a1 1 0 100 2h2.586l-6.293 6.293a1 1 0 101.414 1.414L15 6.414V9a1 1 0 102 0V4a1 1 0 00-1-1h-5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 5a2 2 0 00-2 2v8a2 2 0 002 2h8a2 2 0 002-2v-3a1 1 0 10-2 0v3H5V7h3a1 1 0 000-2H5z\"}}]})(props);\n};\nexport function HiEyeOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M3.707 2.293a1 1 0 00-1.414 1.414l14 14a1 1 0 001.414-1.414l-1.473-1.473A10.014 10.014 0 0019.542 10C18.268 5.943 14.478 3 10 3a9.958 9.958 0 00-4.512 1.074l-1.78-1.781zm4.261 4.26l1.514 1.515a2.003 2.003 0 012.45 2.45l1.514 1.514a4 4 0 00-5.478-5.478z\",\"clipRule\":\"evenodd\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.454 16.697L9.75 13.992a4 4 0 01-3.742-3.741L2.335 6.578A9.98 9.98 0 00.458 10c1.274 4.057 5.065 7 9.542 7 .847 0 1.669-.105 2.454-.303z\"}}]})(props);\n};\nexport function HiEye (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 12a2 2 0 100-4 2 2 0 000 4z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M.458 10C1.732 5.943 5.522 3 10 3s8.268 2.943 9.542 7c-1.274 4.057-5.064 7-9.542 7S1.732 14.057.458 10zM14 10a4 4 0 11-8 0 4 4 0 018 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiFastForward (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.555 5.168A1 1 0 003 6v8a1 1 0 001.555.832L10 11.202V14a1 1 0 001.555.832l6-4a1 1 0 000-1.664l-6-4A1 1 0 0010 6v2.798l-5.445-3.63z\"}}]})(props);\n};\nexport function HiFilm (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M4 3a2 2 0 00-2 2v10a2 2 0 002 2h12a2 2 0 002-2V5a2 2 0 00-2-2H4zm3 2h6v4H7V5zm8 8v2h1v-2h-1zm-2-2H7v4h6v-4zm2 0h1V9h-1v2zm1-4V5h-1v2h1zM5 5v2H4V5h1zm0 4H4v2h1V9zm-1 4h1v2H4v-2z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiFilter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M3 3a1 1 0 011-1h12a1 1 0 011 1v3a1 1 0 01-.293.707L12 11.414V15a1 1 0 01-.293.707l-2 2A1 1 0 018 17v-5.586L3.293 6.707A1 1 0 013 6V3z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiFingerPrint (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M6.625 2.655A9 9 0 0119 11a1 1 0 11-2 0 7 7 0 00-9.625-6.492 1 1 0 11-.75-1.853zM4.662 4.959A1 1 0 014.75 6.37 6.97 6.97 0 003 11a1 1 0 11-2 0 8.97 8.97 0 012.25-5.953 1 1 0 011.412-.088z\",\"clipRule\":\"evenodd\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M5 11a5 5 0 1110 0 1 1 0 11-2 0 3 3 0 10-6 0c0 1.677-.345 3.276-.968 4.729a1 1 0 11-1.838-.789A9.964 9.964 0 005 11zm8.921 2.012a1 1 0 01.831 1.145 19.86 19.86 0 01-.545 2.436 1 1 0 11-1.92-.558c.207-.713.371-1.445.49-2.192a1 1 0 011.144-.83z\",\"clipRule\":\"evenodd\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 10a1 1 0 011 1c0 2.236-.46 4.368-1.29 6.304a1 1 0 01-1.838-.789A13.952 13.952 0 009 11a1 1 0 011-1z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiFire (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M12.395 2.553a1 1 0 00-1.45-.385c-.345.23-.614.558-.822.88-.214.33-.403.713-.57 1.116-.334.804-.614 1.768-.84 2.734a31.365 31.365 0 00-.613 3.58 2.64 2.64 0 01-.945-1.067c-.328-.68-.398-1.534-.398-2.654A1 1 0 005.05 6.05 6.981 6.981 0 003 11a7 7 0 1011.95-4.95c-.592-.591-.98-.985-1.348-1.467-.363-.476-.724-1.063-1.207-2.03zM12.12 15.12A3 3 0 017 13s.879.5 2.5.5c0-1 .5-4 1.25-4.5.5 1 .786 1.293 1.371 1.879A2.99 2.99 0 0113 13a2.99 2.99 0 01-.879 2.121z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiFlag (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M3 6a3 3 0 013-3h10a1 1 0 01.8 1.6L14.25 8l2.55 3.4A1 1 0 0116 13H6a1 1 0 00-1 1v3a1 1 0 11-2 0V6z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiFolderAdd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M4 4a2 2 0 00-2 2v8a2 2 0 002 2h12a2 2 0 002-2V8a2 2 0 00-2-2h-5L9 4H4zm7 5a1 1 0 10-2 0v1H8a1 1 0 100 2h1v1a1 1 0 102 0v-1h1a1 1 0 100-2h-1V9z\"}}]})(props);\n};\nexport function HiFolderDownload (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M4 4a2 2 0 00-2 2v8a2 2 0 002 2h12a2 2 0 002-2V8a2 2 0 00-2-2h-5L9 4H4zm7 5a1 1 0 10-2 0v1.586l-.293-.293a1 1 0 10-1.414 1.414l2 2 .002.002a.997.997 0 001.41 0l.002-.002 2-2a1 1 0 00-1.414-1.414l-.293.293V9z\"}}]})(props);\n};\nexport function HiFolderOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M2 6a2 2 0 012-2h4l2 2h4a2 2 0 012 2v1H8a3 3 0 00-3 3v1.5a1.5 1.5 0 01-3 0V6z\",\"clipRule\":\"evenodd\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 12a2 2 0 012-2h8a2 2 0 012 2v2a2 2 0 01-2 2H2h2a2 2 0 002-2v-2z\"}}]})(props);\n};\nexport function HiFolderRemove (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M4 4a2 2 0 00-2 2v8a2 2 0 002 2h12a2 2 0 002-2V8a2 2 0 00-2-2h-5L9 4H4zm4 6a1 1 0 100 2h4a1 1 0 100-2H8z\"}}]})(props);\n};\nexport function HiFolder (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 6a2 2 0 012-2h5l2 2h5a2 2 0 012 2v6a2 2 0 01-2 2H4a2 2 0 01-2-2V6z\"}}]})(props);\n};\nexport function HiGift (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M5 5a3 3 0 015-2.236A3 3 0 0114.83 6H16a2 2 0 110 4h-5V9a1 1 0 10-2 0v1H4a2 2 0 110-4h1.17C5.06 5.687 5 5.35 5 5zm4 1V5a1 1 0 10-1 1h1zm3 0a1 1 0 10-1-1v1h1z\",\"clipRule\":\"evenodd\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 11H3v5a2 2 0 002 2h4v-7zM11 18h4a2 2 0 002-2v-5h-6v7z\"}}]})(props);\n};\nexport function HiGlobeAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M4.083 9h1.946c.089-1.546.383-2.97.837-4.118A6.004 6.004 0 004.083 9zM10 2a8 8 0 100 16 8 8 0 000-16zm0 2c-.076 0-.232.032-.465.262-.238.234-.497.623-.737 1.182-.389.907-.673 2.142-.766 3.556h3.936c-.093-1.414-.377-2.649-.766-3.556-.24-.56-.5-.948-.737-1.182C10.232 4.032 10.076 4 10 4zm3.971 5c-.089-1.546-.383-2.97-.837-4.118A6.004 6.004 0 0115.917 9h-1.946zm-2.003 2H8.032c.093 1.414.377 2.649.766 3.556.24.56.5.948.737 1.182.233.23.389.262.465.262.076 0 .232-.032.465-.262.238-.234.498-.623.737-1.182.389-.907.673-2.142.766-3.556zm1.166 4.118c.454-1.147.748-2.572.837-4.118h1.946a6.004 6.004 0 01-2.783 4.118zm-6.268 0C6.412 13.97 6.118 12.546 6.03 11H4.083a6.004 6.004 0 002.783 4.118z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiGlobe (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 18a8 8 0 100-16 8 8 0 000 16zM4.332 8.027a6.012 6.012 0 011.912-2.706C6.512 5.73 6.974 6 7.5 6A1.5 1.5 0 019 7.5V8a2 2 0 004 0 2 2 0 011.523-1.943A5.977 5.977 0 0116 10c0 .34-.028.675-.083 1H15a2 2 0 00-2 2v2.197A5.973 5.973 0 0110 16v-2a2 2 0 00-2-2 2 2 0 01-2-2 2 2 0 00-1.668-1.973z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiHand (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M9 3a1 1 0 012 0v5.5a.5.5 0 001 0V4a1 1 0 112 0v4.5a.5.5 0 001 0V6a1 1 0 112 0v5a7 7 0 11-14 0V9a1 1 0 012 0v2.5a.5.5 0 001 0V4a1 1 0 012 0v4.5a.5.5 0 001 0V3z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiHashtag (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M9.243 3.03a1 1 0 01.727 1.213L9.53 6h2.94l.56-2.243a1 1 0 111.94.486L14.53 6H17a1 1 0 110 2h-2.97l-1 4H15a1 1 0 110 2h-2.47l-.56 2.242a1 1 0 11-1.94-.485L10.47 14H7.53l-.56 2.242a1 1 0 11-1.94-.485L5.47 14H3a1 1 0 110-2h2.97l1-4H5a1 1 0 110-2h2.47l.56-2.243a1 1 0 011.213-.727zM9.03 8l-1 4h2.938l1-4H9.031z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiHeart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiHome (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.707 2.293a1 1 0 00-1.414 0l-7 7a1 1 0 001.414 1.414L4 10.414V17a1 1 0 001 1h2a1 1 0 001-1v-2a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 001 1h2a1 1 0 001-1v-6.586l.293.293a1 1 0 001.414-1.414l-7-7z\"}}]})(props);\n};\nexport function HiIdentification (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 2a1 1 0 00-1 1v1a1 1 0 002 0V3a1 1 0 00-1-1zM4 4h3a3 3 0 006 0h3a2 2 0 012 2v9a2 2 0 01-2 2H4a2 2 0 01-2-2V6a2 2 0 012-2zm2.5 7a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm2.45 4a2.5 2.5 0 10-4.9 0h4.9zM12 9a1 1 0 100 2h3a1 1 0 100-2h-3zm-1 4a1 1 0 011-1h2a1 1 0 110 2h-2a1 1 0 01-1-1z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiInboxIn (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.707 7.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l2-2a1 1 0 00-1.414-1.414L11 7.586V3a1 1 0 10-2 0v4.586l-.293-.293z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5a2 2 0 012-2h1a1 1 0 010 2H5v7h2l1 2h4l1-2h2V5h-1a1 1 0 110-2h1a2 2 0 012 2v10a2 2 0 01-2 2H5a2 2 0 01-2-2V5z\"}}]})(props);\n};\nexport function HiInbox (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M5 3a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2V5a2 2 0 00-2-2H5zm0 2h10v7h-2l-1 2H8l-1-2H5V5z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiInformationCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiKey (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M18 8a6 6 0 01-7.743 5.743L10 14l-1 1-1 1H6v2H2v-4l4.257-4.257A6 6 0 1118 8zm-6-4a1 1 0 100 2 2 2 0 012 2 1 1 0 102 0 4 4 0 00-4-4z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiLibrary (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10.496 2.132a1 1 0 00-.992 0l-7 4A1 1 0 003 8v7a1 1 0 100 2h14a1 1 0 100-2V8a1 1 0 00.496-1.868l-7-4zM6 9a1 1 0 00-1 1v3a1 1 0 102 0v-3a1 1 0 00-1-1zm3 1a1 1 0 012 0v3a1 1 0 11-2 0v-3zm5-1a1 1 0 00-1 1v3a1 1 0 102 0v-3a1 1 0 00-1-1z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiLightBulb (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 3a1 1 0 10-2 0v1a1 1 0 102 0V3zM15.657 5.757a1 1 0 00-1.414-1.414l-.707.707a1 1 0 001.414 1.414l.707-.707zM18 10a1 1 0 01-1 1h-1a1 1 0 110-2h1a1 1 0 011 1zM5.05 6.464A1 1 0 106.464 5.05l-.707-.707a1 1 0 00-1.414 1.414l.707.707zM5 10a1 1 0 01-1 1H3a1 1 0 110-2h1a1 1 0 011 1zM8 16v-1h4v1a2 2 0 11-4 0zM12 14c.015-.34.208-.646.477-.859a4 4 0 10-4.954 0c.27.213.462.519.476.859h4.002z\"}}]})(props);\n};\nexport function HiLightningBolt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M11.3 1.046A1 1 0 0112 2v5h4a1 1 0 01.82 1.573l-7 10A1 1 0 018 18v-5H4a1 1 0 01-.82-1.573l7-10a1 1 0 011.12-.38z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiLink (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M12.586 4.586a2 2 0 112.828 2.828l-3 3a2 2 0 01-2.828 0 1 1 0 00-1.414 1.414 4 4 0 005.656 0l3-3a4 4 0 00-5.656-5.656l-1.5 1.5a1 1 0 101.414 1.414l1.5-1.5zm-5 5a2 2 0 012.828 0 1 1 0 101.414-1.414 4 4 0 00-5.656 0l-3 3a4 4 0 105.656 5.656l1.5-1.5a1 1 0 10-1.414-1.414l-1.5 1.5a2 2 0 11-2.828-2.828l3-3z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiLocationMarker (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M5.05 4.05a7 7 0 119.9 9.9L10 18.9l-4.95-4.95a7 7 0 010-9.9zM10 11a2 2 0 100-4 2 2 0 000 4z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiLockClosed (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M5 9V7a5 5 0 0110 0v2a2 2 0 012 2v5a2 2 0 01-2 2H5a2 2 0 01-2-2v-5a2 2 0 012-2zm8-2v2H7V7a3 3 0 016 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiLockOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 2a5 5 0 00-5 5v2a2 2 0 00-2 2v5a2 2 0 002 2h10a2 2 0 002-2v-5a2 2 0 00-2-2H7V7a3 3 0 015.905-.75 1 1 0 001.937-.5A5.002 5.002 0 0010 2z\"}}]})(props);\n};\nexport function HiLogin (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M3 3a1 1 0 011 1v12a1 1 0 11-2 0V4a1 1 0 011-1zm7.707 3.293a1 1 0 010 1.414L9.414 9H17a1 1 0 110 2H9.414l1.293 1.293a1 1 0 01-1.414 1.414l-3-3a1 1 0 010-1.414l3-3a1 1 0 011.414 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiLogout (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M3 3a1 1 0 00-1 1v12a1 1 0 102 0V4a1 1 0 00-1-1zm10.293 9.293a1 1 0 001.414 1.414l3-3a1 1 0 000-1.414l-3-3a1 1 0 10-1.414 1.414L14.586 9H7a1 1 0 100 2h7.586l-1.293 1.293z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiMailOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M2.94 6.412A2 2 0 002 8.108V16a2 2 0 002 2h12a2 2 0 002-2V8.108a2 2 0 00-.94-1.696l-6-3.75a2 2 0 00-2.12 0l-6 3.75zm2.615 2.423a1 1 0 10-1.11 1.664l5 3.333a1 1 0 001.11 0l5-3.333a1 1 0 00-1.11-1.664L10 11.798 5.555 8.835z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiMail (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.003 5.884L10 9.882l7.997-3.998A2 2 0 0016 4H4a2 2 0 00-1.997 1.884z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8.118l-8 4-8-4V14a2 2 0 002 2h12a2 2 0 002-2V8.118z\"}}]})(props);\n};\nexport function HiMap (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M12 1.586l-4 4v12.828l4-4V1.586zM3.707 3.293A1 1 0 002 4v10a1 1 0 00.293.707L6 18.414V5.586L3.707 3.293zM17.707 5.293L14 1.586v12.828l2.293 2.293A1 1 0 0018 16V6a1 1 0 00-.293-.707z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiMenuAlt1 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h6a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiMenuAlt2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h6a1 1 0 110 2H4a1 1 0 01-1-1z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiMenuAlt3 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM9 15a1 1 0 011-1h6a1 1 0 110 2h-6a1 1 0 01-1-1z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiMenuAlt4 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M3 7a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 13a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiMenu (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiMicrophone (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M7 4a3 3 0 016 0v4a3 3 0 11-6 0V4zm4 10.93A7.001 7.001 0 0017 8a1 1 0 10-2 0A5 5 0 015 8a1 1 0 00-2 0 7.001 7.001 0 006 6.93V17H6a1 1 0 100 2h8a1 1 0 100-2h-3v-2.07z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiMinusCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 18a8 8 0 100-16 8 8 0 000 16zM7 9a1 1 0 000 2h6a1 1 0 100-2H7z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiMinusSm (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M5 10a1 1 0 011-1h8a1 1 0 110 2H6a1 1 0 01-1-1z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiMoon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z\"}}]})(props);\n};\nexport function HiMusicNote (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 3a1 1 0 00-1.196-.98l-10 2A1 1 0 006 5v9.114A4.369 4.369 0 005 14c-1.657 0-3 .895-3 2s1.343 2 3 2 3-.895 3-2V7.82l8-1.6v5.894A4.37 4.37 0 0015 12c-1.657 0-3 .895-3 2s1.343 2 3 2 3-.895 3-2V3z\"}}]})(props);\n};\nexport function HiNewspaper (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M2 5a2 2 0 012-2h8a2 2 0 012 2v10a2 2 0 002 2H4a2 2 0 01-2-2V5zm3 1h6v4H5V6zm6 6H5v2h6v-2z\",\"clipRule\":\"evenodd\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 7h1a2 2 0 012 2v5.5a1.5 1.5 0 01-3 0V7z\"}}]})(props);\n};\nexport function HiOfficeBuilding (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M4 4a2 2 0 012-2h8a2 2 0 012 2v12a1 1 0 110 2h-3a1 1 0 01-1-1v-2a1 1 0 00-1-1H9a1 1 0 00-1 1v2a1 1 0 01-1 1H4a1 1 0 110-2V4zm3 1h2v2H7V5zm2 4H7v2h2V9zm2-4h2v2h-2V5zm2 4h-2v2h2V9z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiPaperAirplane (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.894 2.553a1 1 0 00-1.788 0l-7 14a1 1 0 001.169 1.409l5-1.429A1 1 0 009 15.571V11a1 1 0 112 0v4.571a1 1 0 00.725.962l5 1.428a1 1 0 001.17-1.408l-7-14z\"}}]})(props);\n};\nexport function HiPaperClip (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M8 4a3 3 0 00-3 3v4a5 5 0 0010 0V7a1 1 0 112 0v4a7 7 0 11-14 0V7a5 5 0 0110 0v4a3 3 0 11-6 0V7a1 1 0 012 0v4a1 1 0 102 0V7a3 3 0 00-3-3z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiPause (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zM7 8a1 1 0 012 0v4a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v4a1 1 0 102 0V8a1 1 0 00-1-1z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiPencilAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.414 2.586a2 2 0 00-2.828 0L7 10.172V13h2.828l7.586-7.586a2 2 0 000-2.828z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M2 6a2 2 0 012-2h4a1 1 0 010 2H4v10h10v-4a1 1 0 112 0v4a2 2 0 01-2 2H4a2 2 0 01-2-2V6z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiPencil (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z\"}}]})(props);\n};\nexport function HiPhoneIncoming (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.414 7l3.293-3.293a1 1 0 00-1.414-1.414L13 5.586V4a1 1 0 10-2 0v4.003a.996.996 0 00.617.921A.997.997 0 0012 9h4a1 1 0 100-2h-1.586z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 3a1 1 0 011-1h2.153a1 1 0 01.986.836l.74 4.435a1 1 0 01-.54 1.06l-1.548.773a11.037 11.037 0 006.105 6.105l.774-1.548a1 1 0 011.059-.54l4.435.74a1 1 0 01.836.986V17a1 1 0 01-1 1h-2C7.82 18 2 12.18 2 5V3z\"}}]})(props);\n};\nexport function HiPhoneMissedCall (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 3a1 1 0 011-1h2.153a1 1 0 01.986.836l.74 4.435a1 1 0 01-.54 1.06l-1.548.773a11.037 11.037 0 006.105 6.105l.774-1.548a1 1 0 011.059-.54l4.435.74a1 1 0 01.836.986V17a1 1 0 01-1 1h-2C7.82 18 2 12.18 2 5V3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.707 3.293a1 1 0 010 1.414L15.414 6l1.293 1.293a1 1 0 01-1.414 1.414L14 7.414l-1.293 1.293a1 1 0 11-1.414-1.414L12.586 6l-1.293-1.293a1 1 0 011.414-1.414L14 4.586l1.293-1.293a1 1 0 011.414 0z\"}}]})(props);\n};\nexport function HiPhoneOutgoing (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.924 2.617a.997.997 0 00-.215-.322l-.004-.004A.997.997 0 0017 2h-4a1 1 0 100 2h1.586l-3.293 3.293a1 1 0 001.414 1.414L16 5.414V7a1 1 0 102 0V3a.997.997 0 00-.076-.383z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 3a1 1 0 011-1h2.153a1 1 0 01.986.836l.74 4.435a1 1 0 01-.54 1.06l-1.548.773a11.037 11.037 0 006.105 6.105l.774-1.548a1 1 0 011.059-.54l4.435.74a1 1 0 01.836.986V17a1 1 0 01-1 1h-2C7.82 18 2 12.18 2 5V3z\"}}]})(props);\n};\nexport function HiPhone (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 3a1 1 0 011-1h2.153a1 1 0 01.986.836l.74 4.435a1 1 0 01-.54 1.06l-1.548.773a11.037 11.037 0 006.105 6.105l.774-1.548a1 1 0 011.059-.54l4.435.74a1 1 0 01.836.986V17a1 1 0 01-1 1h-2C7.82 18 2 12.18 2 5V3z\"}}]})(props);\n};\nexport function HiPhotograph (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M4 3a2 2 0 00-2 2v10a2 2 0 002 2h12a2 2 0 002-2V5a2 2 0 00-2-2H4zm12 12H4l4-8 3 6 2-4 3 6z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiPlay (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 18a8 8 0 100-16 8 8 0 000 16zM9.555 7.168A1 1 0 008 8v4a1 1 0 001.555.832l3-2a1 1 0 000-1.664l-3-2z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiPlusCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 18a8 8 0 100-16 8 8 0 000 16zm1-11a1 1 0 10-2 0v2H7a1 1 0 100 2h2v2a1 1 0 102 0v-2h2a1 1 0 100-2h-2V7z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiPlusSm (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 5a1 1 0 011 1v3h3a1 1 0 110 2h-3v3a1 1 0 11-2 0v-3H6a1 1 0 110-2h3V6a1 1 0 011-1z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiPlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 3a1 1 0 011 1v5h5a1 1 0 110 2h-5v5a1 1 0 11-2 0v-5H4a1 1 0 110-2h5V4a1 1 0 011-1z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiPresentationChartBar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M3 3a1 1 0 000 2v8a2 2 0 002 2h2.586l-1.293 1.293a1 1 0 101.414 1.414L10 15.414l2.293 2.293a1 1 0 001.414-1.414L12.414 15H15a2 2 0 002-2V5a1 1 0 100-2H3zm11 4a1 1 0 10-2 0v4a1 1 0 102 0V7zm-3 1a1 1 0 10-2 0v3a1 1 0 102 0V8zM8 9a1 1 0 00-2 0v2a1 1 0 102 0V9z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiPresentationChartLine (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M3 3a1 1 0 000 2v8a2 2 0 002 2h2.586l-1.293 1.293a1 1 0 101.414 1.414L10 15.414l2.293 2.293a1 1 0 001.414-1.414L12.414 15H15a2 2 0 002-2V5a1 1 0 100-2H3zm11.707 4.707a1 1 0 00-1.414-1.414L10 9.586 8.707 8.293a1 1 0 00-1.414 0l-2 2a1 1 0 101.414 1.414L8 10.414l1.293 1.293a1 1 0 001.414 0l4-4z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiPrinter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M5 4v3H4a2 2 0 00-2 2v3a2 2 0 002 2h1v2a2 2 0 002 2h6a2 2 0 002-2v-2h1a2 2 0 002-2V9a2 2 0 00-2-2h-1V4a2 2 0 00-2-2H7a2 2 0 00-2 2zm8 0H7v3h6V4zm0 8H7v4h6v-4z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiPuzzle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 3.5a1.5 1.5 0 013 0V4a1 1 0 001 1h3a1 1 0 011 1v3a1 1 0 01-1 1h-.5a1.5 1.5 0 000 3h.5a1 1 0 011 1v3a1 1 0 01-1 1h-3a1 1 0 01-1-1v-.5a1.5 1.5 0 00-3 0v.5a1 1 0 01-1 1H6a1 1 0 01-1-1v-3a1 1 0 00-1-1h-.5a1.5 1.5 0 010-3H4a1 1 0 001-1V6a1 1 0 011-1h3a1 1 0 001-1v-.5z\"}}]})(props);\n};\nexport function HiQrcode (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M3 4a1 1 0 011-1h3a1 1 0 011 1v3a1 1 0 01-1 1H4a1 1 0 01-1-1V4zm2 2V5h1v1H5zM3 13a1 1 0 011-1h3a1 1 0 011 1v3a1 1 0 01-1 1H4a1 1 0 01-1-1v-3zm2 2v-1h1v1H5zM13 3a1 1 0 00-1 1v3a1 1 0 001 1h3a1 1 0 001-1V4a1 1 0 00-1-1h-3zm1 2v1h1V5h-1z\",\"clipRule\":\"evenodd\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 4a1 1 0 10-2 0v1a1 1 0 002 0V4zM10 7a1 1 0 011 1v1h2a1 1 0 110 2h-3a1 1 0 01-1-1V8a1 1 0 011-1zM16 9a1 1 0 100 2 1 1 0 000-2zM9 13a1 1 0 011-1h1a1 1 0 110 2v2a1 1 0 11-2 0v-3zM7 11a1 1 0 100-2H4a1 1 0 100 2h3zM17 13a1 1 0 01-1 1h-2a1 1 0 110-2h2a1 1 0 011 1zM16 17a1 1 0 100-2h-3a1 1 0 100 2h3z\"}}]})(props);\n};\nexport function HiQuestionMarkCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-3a1 1 0 00-.867.5 1 1 0 11-1.731-1A3 3 0 0113 8a3.001 3.001 0 01-2 2.83V11a1 1 0 11-2 0v-1a1 1 0 011-1 1 1 0 100-2zm0 8a1 1 0 100-2 1 1 0 000 2z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiReceiptRefund (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M5 2a2 2 0 00-2 2v14l3.5-2 3.5 2 3.5-2 3.5 2V4a2 2 0 00-2-2H5zm4.707 3.707a1 1 0 00-1.414-1.414l-3 3a1 1 0 000 1.414l3 3a1 1 0 001.414-1.414L8.414 9H10a3 3 0 013 3v1a1 1 0 102 0v-1a5 5 0 00-5-5H8.414l1.293-1.293z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiReceiptTax (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M5 2a2 2 0 00-2 2v14l3.5-2 3.5 2 3.5-2 3.5 2V4a2 2 0 00-2-2H5zm2.5 3a1.5 1.5 0 100 3 1.5 1.5 0 000-3zm6.207.293a1 1 0 00-1.414 0l-6 6a1 1 0 101.414 1.414l6-6a1 1 0 000-1.414zM12.5 10a1.5 1.5 0 100 3 1.5 1.5 0 000-3z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiRefresh (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M4 2a1 1 0 011 1v2.101a7.002 7.002 0 0111.601 2.566 1 1 0 11-1.885.666A5.002 5.002 0 005.999 7H9a1 1 0 010 2H4a1 1 0 01-1-1V3a1 1 0 011-1zm.008 9.057a1 1 0 011.276.61A5.002 5.002 0 0014.001 13H11a1 1 0 110-2h5a1 1 0 011 1v5a1 1 0 11-2 0v-2.101a7.002 7.002 0 01-11.601-2.566 1 1 0 01.61-1.276z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiReply (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M7.707 3.293a1 1 0 010 1.414L5.414 7H11a7 7 0 017 7v2a1 1 0 11-2 0v-2a5 5 0 00-5-5H5.414l2.293 2.293a1 1 0 11-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiRewind (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.445 14.832A1 1 0 0010 14v-2.798l5.445 3.63A1 1 0 0017 14V6a1 1 0 00-1.555-.832L10 8.798V6a1 1 0 00-1.555-.832l-6 4a1 1 0 000 1.664l6 4z\"}}]})(props);\n};\nexport function HiRss (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 3a1 1 0 000 2c5.523 0 10 4.477 10 10a1 1 0 102 0C17 8.373 11.627 3 5 3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 9a1 1 0 011-1 7 7 0 017 7 1 1 0 11-2 0 5 5 0 00-5-5 1 1 0 01-1-1zM3 15a2 2 0 114 0 2 2 0 01-4 0z\"}}]})(props);\n};\nexport function HiSaveAs (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.707 7.293a1 1 0 00-1.414 1.414l3 3a1 1 0 001.414 0l3-3a1 1 0 00-1.414-1.414L13 8.586V5h3a2 2 0 012 2v5a2 2 0 01-2 2H8a2 2 0 01-2-2V7a2 2 0 012-2h3v3.586L9.707 7.293zM11 3a1 1 0 112 0v2h-2V3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 9a2 2 0 00-2 2v5a2 2 0 002 2h8a2 2 0 002-2H4V9z\"}}]})(props);\n};\nexport function HiSave (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.707 10.293a1 1 0 10-1.414 1.414l3 3a1 1 0 001.414 0l3-3a1 1 0 00-1.414-1.414L11 11.586V6h5a2 2 0 012 2v7a2 2 0 01-2 2H4a2 2 0 01-2-2V8a2 2 0 012-2h5v5.586l-1.293-1.293zM9 4a1 1 0 012 0v2H9V4z\"}}]})(props);\n};\nexport function HiScale (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 2a1 1 0 011 1v1.323l3.954 1.582 1.599-.8a1 1 0 01.894 1.79l-1.233.616 1.738 5.42a1 1 0 01-.285 1.05A3.989 3.989 0 0115 15a3.989 3.989 0 01-2.667-1.019 1 1 0 01-.285-1.05l1.715-5.349L11 6.477V16h2a1 1 0 110 2H7a1 1 0 110-2h2V6.477L6.237 7.582l1.715 5.349a1 1 0 01-.285 1.05A3.989 3.989 0 015 15a3.989 3.989 0 01-2.667-1.019 1 1 0 01-.285-1.05l1.738-5.42-1.233-.617a1 1 0 01.894-1.788l1.599.799L9 4.323V3a1 1 0 011-1zm-5 8.274l-.818 2.552c.25.112.526.174.818.174.292 0 .569-.062.818-.174L5 10.274zm10 0l-.818 2.552c.25.112.526.174.818.174.292 0 .569-.062.818-.174L15 10.274z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiScissors (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M5.5 2a3.5 3.5 0 101.665 6.58L8.585 10l-1.42 1.42a3.5 3.5 0 101.414 1.414l8.128-8.127a1 1 0 00-1.414-1.414L10 8.586l-1.42-1.42A3.5 3.5 0 005.5 2zM4 5.5a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zm0 9a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z\",\"clipRule\":\"evenodd\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.828 11.414a1 1 0 00-1.414 1.414l3.879 3.88a1 1 0 001.414-1.415l-3.879-3.879z\"}}]})(props);\n};\nexport function HiSearchCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 9a2 2 0 114 0 2 2 0 01-4 0z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 18a8 8 0 100-16 8 8 0 000 16zm1-13a4 4 0 00-3.446 6.032l-2.261 2.26a1 1 0 101.414 1.415l2.261-2.261A4 4 0 1011 5z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiSearch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiSelector (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 3a1 1 0 01.707.293l3 3a1 1 0 01-1.414 1.414L10 5.414 7.707 7.707a1 1 0 01-1.414-1.414l3-3A1 1 0 0110 3zm-3.707 9.293a1 1 0 011.414 0L10 14.586l2.293-2.293a1 1 0 011.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiServer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M2 5a2 2 0 012-2h12a2 2 0 012 2v2a2 2 0 01-2 2H4a2 2 0 01-2-2V5zm14 1a1 1 0 11-2 0 1 1 0 012 0zM2 13a2 2 0 012-2h12a2 2 0 012 2v2a2 2 0 01-2 2H4a2 2 0 01-2-2v-2zm14 1a1 1 0 11-2 0 1 1 0 012 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiShare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 8a3 3 0 10-2.977-2.63l-4.94 2.47a3 3 0 100 4.319l4.94 2.47a3 3 0 10.895-1.789l-4.94-2.47a3.027 3.027 0 000-.74l4.94-2.47C13.456 7.68 14.19 8 15 8z\"}}]})(props);\n};\nexport function HiShieldCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M2.166 4.999A11.954 11.954 0 0010 1.944 11.954 11.954 0 0017.834 5c.11.65.166 1.32.166 2.001 0 5.225-3.34 9.67-8 11.317C5.34 16.67 2 12.225 2 7c0-.682.057-1.35.166-2.001zm11.541 3.708a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiShieldExclamation (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 1.944A11.954 11.954 0 012.166 5C2.056 5.649 2 6.319 2 7c0 5.225 3.34 9.67 8 11.317C14.66 16.67 18 12.225 18 7c0-.682-.057-1.35-.166-2.001A11.954 11.954 0 0110 1.944zM11 14a1 1 0 11-2 0 1 1 0 012 0zm0-7a1 1 0 10-2 0v3a1 1 0 102 0V7z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiShoppingBag (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 2a4 4 0 00-4 4v1H5a1 1 0 00-.994.89l-1 9A1 1 0 004 18h12a1 1 0 00.994-1.11l-1-9A1 1 0 0015 7h-1V6a4 4 0 00-4-4zm2 5V6a2 2 0 10-4 0v1h4zm-6 3a1 1 0 112 0 1 1 0 01-2 0zm7-1a1 1 0 100 2 1 1 0 000-2z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiShoppingCart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 1a1 1 0 000 2h1.22l.305 1.222a.997.997 0 00.01.042l1.358 5.43-.893.892C3.74 11.846 4.632 14 6.414 14H15a1 1 0 000-2H6.414l1-1H14a1 1 0 00.894-.553l3-6A1 1 0 0017 3H6.28l-.31-1.243A1 1 0 005 1H3zM16 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM6.5 18a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"}}]})(props);\n};\nexport function HiSortAscending (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3a1 1 0 000 2h11a1 1 0 100-2H3zM3 7a1 1 0 000 2h5a1 1 0 000-2H3zM3 11a1 1 0 100 2h4a1 1 0 100-2H3zM13 16a1 1 0 102 0v-5.586l1.293 1.293a1 1 0 001.414-1.414l-3-3a1 1 0 00-1.414 0l-3 3a1 1 0 101.414 1.414L13 10.414V16z\"}}]})(props);\n};\nexport function HiSortDescending (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3a1 1 0 000 2h11a1 1 0 100-2H3zM3 7a1 1 0 000 2h7a1 1 0 100-2H3zM3 11a1 1 0 100 2h4a1 1 0 100-2H3zM15 8a1 1 0 10-2 0v5.586l-1.293-1.293a1 1 0 00-1.414 1.414l3 3a1 1 0 001.414 0l3-3a1 1 0 00-1.414-1.414L15 13.586V8z\"}}]})(props);\n};\nexport function HiSparkles (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M5 2a1 1 0 011 1v1h1a1 1 0 010 2H6v1a1 1 0 01-2 0V6H3a1 1 0 010-2h1V3a1 1 0 011-1zm0 10a1 1 0 011 1v1h1a1 1 0 110 2H6v1a1 1 0 11-2 0v-1H3a1 1 0 110-2h1v-1a1 1 0 011-1zM12 2a1 1 0 01.967.744L14.146 7.2 17.5 9.134a1 1 0 010 1.732l-3.354 1.935-1.18 4.455a1 1 0 01-1.933 0L9.854 12.8 6.5 10.866a1 1 0 010-1.732l3.354-1.935 1.18-4.455A1 1 0 0112 2z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiSpeakerphone (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M18 3a1 1 0 00-1.447-.894L8.763 6H5a3 3 0 000 6h.28l1.771 5.316A1 1 0 008 18h1a1 1 0 001-1v-4.382l6.553 3.276A1 1 0 0018 15V3z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiStar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z\"}}]})(props);\n};\nexport function HiStatusOffline (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.707 2.293a1 1 0 00-1.414 1.414l6.921 6.922c.05.062.105.118.168.167l6.91 6.911a1 1 0 001.415-1.414l-.675-.675a9.001 9.001 0 00-.668-11.982A1 1 0 1014.95 5.05a7.002 7.002 0 01.657 9.143l-1.435-1.435a5.002 5.002 0 00-.636-6.294A1 1 0 0012.12 7.88c.924.923 1.12 2.3.587 3.415l-1.992-1.992a.922.922 0 00-.018-.018l-6.99-6.991zM3.238 8.187a1 1 0 00-1.933-.516c-.8 3-.025 6.336 2.331 8.693a1 1 0 001.414-1.415 6.997 6.997 0 01-1.812-6.762zM7.4 11.5a1 1 0 10-1.73 1c.214.371.48.72.795 1.035a1 1 0 001.414-1.414c-.191-.191-.35-.4-.478-.622z\"}}]})(props);\n};\nexport function HiStatusOnline (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M5.05 3.636a1 1 0 010 1.414 7 7 0 000 9.9 1 1 0 11-1.414 1.414 9 9 0 010-12.728 1 1 0 011.414 0zm9.9 0a1 1 0 011.414 0 9 9 0 010 12.728 1 1 0 11-1.414-1.414 7 7 0 000-9.9 1 1 0 010-1.414zM7.879 6.464a1 1 0 010 1.414 3 3 0 000 4.243 1 1 0 11-1.415 1.414 5 5 0 010-7.07 1 1 0 011.415 0zm4.242 0a1 1 0 011.415 0 5 5 0 010 7.072 1 1 0 01-1.415-1.415 3 3 0 000-4.242 1 1 0 010-1.415zM10 9a1 1 0 011 1v.01a1 1 0 11-2 0V10a1 1 0 011-1z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiStop (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 18a8 8 0 100-16 8 8 0 000 16zM8 7a1 1 0 00-1 1v4a1 1 0 001 1h4a1 1 0 001-1V8a1 1 0 00-1-1H8z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiSun (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiSupport (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-2 0c0 .993-.241 1.929-.668 2.754l-1.524-1.525a3.997 3.997 0 00.078-2.183l1.562-1.562C15.802 8.249 16 9.1 16 10zm-5.165 3.913l1.58 1.58A5.98 5.98 0 0110 16a5.976 5.976 0 01-2.516-.552l1.562-1.562a4.006 4.006 0 001.789.027zm-4.677-2.796a4.002 4.002 0 01-.041-2.08l-.08.08-1.53-1.533A5.98 5.98 0 004 10c0 .954.223 1.856.619 2.657l1.54-1.54zm1.088-6.45A5.974 5.974 0 0110 4c.954 0 1.856.223 2.657.619l-1.54 1.54a4.002 4.002 0 00-2.346.033L7.246 4.668zM12 10a2 2 0 11-4 0 2 2 0 014 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiSwitchHorizontal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 5a1 1 0 100 2h5.586l-1.293 1.293a1 1 0 001.414 1.414l3-3a1 1 0 000-1.414l-3-3a1 1 0 10-1.414 1.414L13.586 5H8zM12 15a1 1 0 100-2H6.414l1.293-1.293a1 1 0 10-1.414-1.414l-3 3a1 1 0 000 1.414l3 3a1 1 0 001.414-1.414L6.414 15H12z\"}}]})(props);\n};\nexport function HiSwitchVertical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12a1 1 0 102 0V6.414l1.293 1.293a1 1 0 001.414-1.414l-3-3a1 1 0 00-1.414 0l-3 3a1 1 0 001.414 1.414L5 6.414V12zM15 8a1 1 0 10-2 0v5.586l-1.293-1.293a1 1 0 00-1.414 1.414l3 3a1 1 0 001.414 0l3-3a1 1 0 00-1.414-1.414L15 13.586V8z\"}}]})(props);\n};\nexport function HiTable (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M5 4a3 3 0 00-3 3v6a3 3 0 003 3h10a3 3 0 003-3V7a3 3 0 00-3-3H5zm-1 9v-1h5v2H5a1 1 0 01-1-1zm7 1h4a1 1 0 001-1v-1h-5v2zm0-4h5V8h-5v2zM9 8H4v2h5V8z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiTag (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M17.707 9.293a1 1 0 010 1.414l-7 7a1 1 0 01-1.414 0l-7-7A.997.997 0 012 10V5a3 3 0 013-3h5c.256 0 .512.098.707.293l7 7zM5 6a1 1 0 100-2 1 1 0 000 2z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiTemplate (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 4a1 1 0 011-1h12a1 1 0 011 1v2a1 1 0 01-1 1H4a1 1 0 01-1-1V4zM3 10a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H4a1 1 0 01-1-1v-6zM14 9a1 1 0 00-1 1v6a1 1 0 001 1h2a1 1 0 001-1v-6a1 1 0 00-1-1h-2z\"}}]})(props);\n};\nexport function HiTerminal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M2 5a2 2 0 012-2h12a2 2 0 012 2v10a2 2 0 01-2 2H4a2 2 0 01-2-2V5zm3.293 1.293a1 1 0 011.414 0l3 3a1 1 0 010 1.414l-3 3a1 1 0 01-1.414-1.414L7.586 10 5.293 7.707a1 1 0 010-1.414zM11 12a1 1 0 100 2h3a1 1 0 100-2h-3z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiThumbDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9.5a1.5 1.5 0 11-3 0v-6a1.5 1.5 0 013 0v6zM14 9.667v-5.43a2 2 0 00-1.105-1.79l-.05-.025A4 4 0 0011.055 2H5.64a2 2 0 00-1.962 1.608l-1.2 6A2 2 0 004.44 12H8v4a2 2 0 002 2 1 1 0 001-1v-.667a4 4 0 01.8-2.4l1.4-1.866a4 4 0 00.8-2.4z\"}}]})(props);\n};\nexport function HiThumbUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 10.5a1.5 1.5 0 113 0v6a1.5 1.5 0 01-3 0v-6zM6 10.333v5.43a2 2 0 001.106 1.79l.05.025A4 4 0 008.943 18h5.416a2 2 0 001.962-1.608l1.2-6A2 2 0 0015.56 8H12V4a2 2 0 00-2-2 1 1 0 00-1 1v.667a4 4 0 01-.8 2.4L6.8 7.933a4 4 0 00-.8 2.4z\"}}]})(props);\n};\nexport function HiTicket (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 6a2 2 0 012-2h12a2 2 0 012 2v2a2 2 0 100 4v2a2 2 0 01-2 2H4a2 2 0 01-2-2v-2a2 2 0 100-4V6z\"}}]})(props);\n};\nexport function HiTranslate (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M7 2a1 1 0 011 1v1h3a1 1 0 110 2H9.578a18.87 18.87 0 01-1.724 4.78c.29.354.596.696.914 1.026a1 1 0 11-1.44 1.389c-.188-.196-.373-.396-.554-.6a19.098 19.098 0 01-3.107 3.567 1 1 0 01-1.334-1.49 17.087 17.087 0 003.13-3.733 18.992 18.992 0 01-1.487-2.494 1 1 0 111.79-.89c.234.47.489.928.764 1.372.417-.934.752-1.913.997-2.927H3a1 1 0 110-2h3V3a1 1 0 011-1zm6 6a1 1 0 01.894.553l2.991 5.982a.869.869 0 01.02.037l.99 1.98a1 1 0 11-1.79.895L15.383 16h-4.764l-.724 1.447a1 1 0 11-1.788-.894l.99-1.98.019-.038 2.99-5.982A1 1 0 0113 8zm-1.382 6h2.764L13 11.236 11.618 14z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiTrash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiTrendingDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M12 13a1 1 0 100 2h5a1 1 0 001-1V9a1 1 0 10-2 0v2.586l-4.293-4.293a1 1 0 00-1.414 0L8 9.586 3.707 5.293a1 1 0 00-1.414 1.414l5 5a1 1 0 001.414 0L11 9.414 14.586 13H12z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiTrendingUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M12 7a1 1 0 110-2h5a1 1 0 011 1v5a1 1 0 11-2 0V8.414l-4.293 4.293a1 1 0 01-1.414 0L8 10.414l-4.293 4.293a1 1 0 01-1.414-1.414l5-5a1 1 0 011.414 0L11 10.586 14.586 7H12z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiTruck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM15 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 4a1 1 0 00-1 1v10a1 1 0 001 1h1.05a2.5 2.5 0 014.9 0H10a1 1 0 001-1V5a1 1 0 00-1-1H3zM14 7a1 1 0 00-1 1v6.05A2.5 2.5 0 0115.95 16H17a1 1 0 001-1v-5a1 1 0 00-.293-.707l-2-2A1 1 0 0015 7h-1z\"}}]})(props);\n};\nexport function HiUpload (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M3 17a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM6.293 6.707a1 1 0 010-1.414l3-3a1 1 0 011.414 0l3 3a1 1 0 01-1.414 1.414L11 5.414V13a1 1 0 11-2 0V5.414L7.707 6.707a1 1 0 01-1.414 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiUserAdd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 9a3 3 0 100-6 3 3 0 000 6zM8 11a6 6 0 016 6H2a6 6 0 016-6zM16 7a1 1 0 10-2 0v1h-1a1 1 0 100 2h1v1a1 1 0 102 0v-1h1a1 1 0 100-2h-1V7z\"}}]})(props);\n};\nexport function HiUserCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-6-3a2 2 0 11-4 0 2 2 0 014 0zm-2 4a5 5 0 00-4.546 2.916A5.986 5.986 0 0010 16a5.986 5.986 0 004.546-2.084A5 5 0 0010 11z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiUserGroup (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 6a3 3 0 11-6 0 3 3 0 016 0zM18 8a2 2 0 11-4 0 2 2 0 014 0zM14 15a4 4 0 00-8 0v3h8v-3zM6 8a2 2 0 11-4 0 2 2 0 014 0zM16 18v-3a5.972 5.972 0 00-.75-2.906A3.005 3.005 0 0119 15v3h-3zM4.75 12.094A5.973 5.973 0 004 15v3H1v-3a3 3 0 013.75-2.906z\"}}]})(props);\n};\nexport function HiUserRemove (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 6a3 3 0 11-6 0 3 3 0 016 0zM14 17a6 6 0 00-12 0h12zM13 8a1 1 0 100 2h4a1 1 0 100-2h-4z\"}}]})(props);\n};\nexport function HiUser (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiUsers (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 6a3 3 0 11-6 0 3 3 0 016 0zM17 6a3 3 0 11-6 0 3 3 0 016 0zM12.93 17c.046-.327.07-.66.07-1a6.97 6.97 0 00-1.5-4.33A5 5 0 0119 16v1h-6.07zM6 11a5 5 0 015 5v1H1v-1a5 5 0 015-5z\"}}]})(props);\n};\nexport function HiVariable (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M4.649 3.084A1 1 0 015.163 4.4 13.95 13.95 0 004 10c0 1.993.416 3.886 1.164 5.6a1 1 0 01-1.832.8A15.95 15.95 0 012 10c0-2.274.475-4.44 1.332-6.4a1 1 0 011.317-.516zM12.96 7a3 3 0 00-2.342 1.126l-.328.41-.111-.279A2 2 0 008.323 7H8a1 1 0 000 2h.323l.532 1.33-1.035 1.295a1 1 0 01-.781.375H7a1 1 0 100 2h.039a3 3 0 002.342-1.126l.328-.41.111.279A2 2 0 0011.677 14H12a1 1 0 100-2h-.323l-.532-1.33 1.035-1.295A1 1 0 0112.961 9H13a1 1 0 100-2h-.039zm1.874-2.6a1 1 0 011.833-.8A15.95 15.95 0 0118 10c0 2.274-.475 4.44-1.332 6.4a1 1 0 11-1.832-.8A13.949 13.949 0 0016 10c0-1.993-.416-3.886-1.165-5.6z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiVideoCamera (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 6a2 2 0 012-2h6a2 2 0 012 2v8a2 2 0 01-2 2H4a2 2 0 01-2-2V6zM14.553 7.106A1 1 0 0014 8v4a1 1 0 00.553.894l2 1A1 1 0 0018 13V7a1 1 0 00-1.447-.894l-2 1z\"}}]})(props);\n};\nexport function HiViewBoards (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 4a1 1 0 011-1h2a1 1 0 011 1v12a1 1 0 01-1 1H3a1 1 0 01-1-1V4zM8 4a1 1 0 011-1h2a1 1 0 011 1v12a1 1 0 01-1 1H9a1 1 0 01-1-1V4zM15 3a1 1 0 00-1 1v12a1 1 0 001 1h2a1 1 0 001-1V4a1 1 0 00-1-1h-2z\"}}]})(props);\n};\nexport function HiViewGridAdd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 3a2 2 0 00-2 2v2a2 2 0 002 2h2a2 2 0 002-2V5a2 2 0 00-2-2H5zM5 11a2 2 0 00-2 2v2a2 2 0 002 2h2a2 2 0 002-2v-2a2 2 0 00-2-2H5zM11 5a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2V5zM14 11a1 1 0 011 1v1h1a1 1 0 110 2h-1v1a1 1 0 11-2 0v-1h-1a1 1 0 110-2h1v-1a1 1 0 011-1z\"}}]})(props);\n};\nexport function HiViewGrid (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 3a2 2 0 00-2 2v2a2 2 0 002 2h2a2 2 0 002-2V5a2 2 0 00-2-2H5zM5 11a2 2 0 00-2 2v2a2 2 0 002 2h2a2 2 0 002-2v-2a2 2 0 00-2-2H5zM11 5a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2V5zM11 13a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2v-2z\"}}]})(props);\n};\nexport function HiViewList (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M3 4a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm0 4a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm0 4a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm0 4a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiVolumeOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M9.383 3.076A1 1 0 0110 4v12a1 1 0 01-1.707.707L4.586 13H2a1 1 0 01-1-1V8a1 1 0 011-1h2.586l3.707-3.707a1 1 0 011.09-.217zM12.293 7.293a1 1 0 011.414 0L15 8.586l1.293-1.293a1 1 0 111.414 1.414L16.414 10l1.293 1.293a1 1 0 01-1.414 1.414L15 11.414l-1.293 1.293a1 1 0 01-1.414-1.414L13.586 10l-1.293-1.293a1 1 0 010-1.414z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiVolumeUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M9.383 3.076A1 1 0 0110 4v12a1 1 0 01-1.707.707L4.586 13H2a1 1 0 01-1-1V8a1 1 0 011-1h2.586l3.707-3.707a1 1 0 011.09-.217zM14.657 2.929a1 1 0 011.414 0A9.972 9.972 0 0119 10a9.972 9.972 0 01-2.929 7.071 1 1 0 01-1.414-1.414A7.971 7.971 0 0017 10c0-2.21-.894-4.208-2.343-5.657a1 1 0 010-1.414zm-2.829 2.828a1 1 0 011.415 0A5.983 5.983 0 0115 10a5.984 5.984 0 01-1.757 4.243 1 1 0 01-1.415-1.415A3.984 3.984 0 0013 10a3.983 3.983 0 00-1.172-2.828 1 1 0 010-1.415z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiWifi (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M17.778 8.222c-4.296-4.296-11.26-4.296-15.556 0A1 1 0 01.808 6.808c5.076-5.077 13.308-5.077 18.384 0a1 1 0 01-1.414 1.414zM14.95 11.05a7 7 0 00-9.9 0 1 1 0 01-1.414-1.414 9 9 0 0112.728 0 1 1 0 01-1.414 1.414zM12.12 13.88a3 3 0 00-4.242 0 1 1 0 01-1.415-1.415 5 5 0 017.072 0 1 1 0 01-1.415 1.415zM9 16a1 1 0 011-1h.01a1 1 0 110 2H10a1 1 0 01-1-1z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiXCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiX (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiZoomIn (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 8a1 1 0 011-1h1V6a1 1 0 012 0v1h1a1 1 0 110 2H9v1a1 1 0 11-2 0V9H6a1 1 0 01-1-1z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8zm6-4a4 4 0 100 8 4 4 0 000-8z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiZoomOut (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\",\"clipRule\":\"evenodd\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M5 8a1 1 0 011-1h4a1 1 0 110 2H6a1 1 0 01-1-1z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\nexport function HiOutlineAcademicCap (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 14l9-5-9-5-9 5 9 5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 14l6.16-3.422a12.083 12.083 0 01.665 6.479A11.952 11.952 0 0012 20.055a11.952 11.952 0 00-6.824-2.998 12.078 12.078 0 01.665-6.479L12 14z\"}},{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M12 14l9-5-9-5-9 5 9 5zm0 0l6.16-3.422a12.083 12.083 0 01.665 6.479A11.952 11.952 0 0012 20.055a11.952 11.952 0 00-6.824-2.998 12.078 12.078 0 01.665-6.479L12 14zm-4 6v-7.5l4-2.222\"}}]})(props);\n};\nexport function HiOutlineAdjustments (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4\"}}]})(props);\n};\nexport function HiOutlineAnnotation (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M7 8h10M7 12h4m1 8l-4-4H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-3l-4 4z\"}}]})(props);\n};\nexport function HiOutlineArchive (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M5 8h14M5 8a2 2 0 110-4h14a2 2 0 110 4M5 8v10a2 2 0 002 2h10a2 2 0 002-2V8m-9 4h4\"}}]})(props);\n};\nexport function HiOutlineArrowCircleDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M15 13l-3 3m0 0l-3-3m3 3V8m0 13a9 9 0 110-18 9 9 0 010 18z\"}}]})(props);\n};\nexport function HiOutlineArrowCircleLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z\"}}]})(props);\n};\nexport function HiOutlineArrowCircleRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M13 9l3 3m0 0l-3 3m3-3H8m13 0a9 9 0 11-18 0 9 9 0 0118 0z\"}}]})(props);\n};\nexport function HiOutlineArrowCircleUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9 11l3-3m0 0l3 3m-3-3v8m0-13a9 9 0 110 18 9 9 0 010-18z\"}}]})(props);\n};\nexport function HiOutlineArrowDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M19 14l-7 7m0 0l-7-7m7 7V3\"}}]})(props);\n};\nexport function HiOutlineArrowLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M10 19l-7-7m0 0l7-7m-7 7h18\"}}]})(props);\n};\nexport function HiOutlineArrowNarrowDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M16 17l-4 4m0 0l-4-4m4 4V3\"}}]})(props);\n};\nexport function HiOutlineArrowNarrowLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M7 16l-4-4m0 0l4-4m-4 4h18\"}}]})(props);\n};\nexport function HiOutlineArrowNarrowRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M17 8l4 4m0 0l-4 4m4-4H3\"}}]})(props);\n};\nexport function HiOutlineArrowNarrowUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M8 7l4-4m0 0l4 4m-4-4v18\"}}]})(props);\n};\nexport function HiOutlineArrowRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M14 5l7 7m0 0l-7 7m7-7H3\"}}]})(props);\n};\nexport function HiOutlineArrowSmDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M17 13l-5 5m0 0l-5-5m5 5V6\"}}]})(props);\n};\nexport function HiOutlineArrowSmLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M11 17l-5-5m0 0l5-5m-5 5h12\"}}]})(props);\n};\nexport function HiOutlineArrowSmRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M13 7l5 5m0 0l-5 5m5-5H6\"}}]})(props);\n};\nexport function HiOutlineArrowSmUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M7 11l5-5m0 0l5 5m-5-5v12\"}}]})(props);\n};\nexport function HiOutlineArrowUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M5 10l7-7m0 0l7 7m-7-7v18\"}}]})(props);\n};\nexport function HiOutlineArrowsExpand (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M4 8V4m0 0h4M4 4l5 5m11-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m11 5l-5-5m5 5v-4m0 4h-4\"}}]})(props);\n};\nexport function HiOutlineAtSymbol (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M16 12a4 4 0 10-8 0 4 4 0 008 0zm0 0v1.5a2.5 2.5 0 005 0V12a9 9 0 10-9 9m4.5-1.206a8.959 8.959 0 01-4.5 1.207\"}}]})(props);\n};\nexport function HiOutlineBackspace (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M12 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2M3 12l6.414 6.414a2 2 0 001.414.586H19a2 2 0 002-2V7a2 2 0 00-2-2h-8.172a2 2 0 00-1.414.586L3 12z\"}}]})(props);\n};\nexport function HiOutlineBadgeCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9 12l2 2 4-4M7.835 4.697a3.42 3.42 0 001.946-.806 3.42 3.42 0 014.438 0 3.42 3.42 0 001.946.806 3.42 3.42 0 013.138 3.138 3.42 3.42 0 00.806 1.946 3.42 3.42 0 010 4.438 3.42 3.42 0 00-.806 1.946 3.42 3.42 0 01-3.138 3.138 3.42 3.42 0 00-1.946.806 3.42 3.42 0 01-4.438 0 3.42 3.42 0 00-1.946-.806 3.42 3.42 0 01-3.138-3.138 3.42 3.42 0 00-.806-1.946 3.42 3.42 0 010-4.438 3.42 3.42 0 00.806-1.946 3.42 3.42 0 013.138-3.138z\"}}]})(props);\n};\nexport function HiOutlineBan (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M18.364 18.364A9 9 0 005.636 5.636m12.728 12.728A9 9 0 015.636 5.636m12.728 12.728L5.636 5.636\"}}]})(props);\n};\nexport function HiOutlineBeaker (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M19.428 15.428a2 2 0 00-1.022-.547l-2.387-.477a6 6 0 00-3.86.517l-.318.158a6 6 0 01-3.86.517L6.05 15.21a2 2 0 00-1.806.547M8 4h8l-1 1v5.172a2 2 0 00.586 1.414l5 5c1.26 1.26.367 3.414-1.415 3.414H4.828c-1.782 0-2.674-2.154-1.414-3.414l5-5A2 2 0 009 10.172V5L8 4z\"}}]})(props);\n};\nexport function HiOutlineBell (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9\"}}]})(props);\n};\nexport function HiOutlineBookOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253\"}}]})(props);\n};\nexport function HiOutlineBookmarkAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M16 4v12l-4-2-4 2V4M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z\"}}]})(props);\n};\nexport function HiOutlineBookmark (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z\"}}]})(props);\n};\nexport function HiOutlineBriefcase (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M21 13.255A23.931 23.931 0 0112 15c-3.183 0-6.22-.62-9-1.745M16 6V4a2 2 0 00-2-2h-4a2 2 0 00-2 2v2m4 6h.01M5 20h14a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z\"}}]})(props);\n};\nexport function HiOutlineCake (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M21 15.546c-.523 0-1.046.151-1.5.454a2.704 2.704 0 01-3 0 2.704 2.704 0 00-3 0 2.704 2.704 0 01-3 0 2.704 2.704 0 00-3 0 2.704 2.704 0 01-3 0 2.701 2.701 0 00-1.5-.454M9 6v2m3-2v2m3-2v2M9 3h.01M12 3h.01M15 3h.01M21 21v-7a2 2 0 00-2-2H5a2 2 0 00-2 2v7h18zm-3-9v-2a2 2 0 00-2-2H8a2 2 0 00-2 2v2h12z\"}}]})(props);\n};\nexport function HiOutlineCalculator (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9 7h6m0 10v-3m-3 3h.01M9 17h.01M9 14h.01M12 14h.01M15 11h.01M12 11h.01M9 11h.01M7 21h10a2 2 0 002-2V5a2 2 0 00-2-2H7a2 2 0 00-2 2v14a2 2 0 002 2z\"}}]})(props);\n};\nexport function HiOutlineCalendar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\"}}]})(props);\n};\nexport function HiOutlineCamera (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V9z\"}},{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M15 13a3 3 0 11-6 0 3 3 0 016 0z\"}}]})(props);\n};\nexport function HiOutlineCash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M17 9V7a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2m2 4h10a2 2 0 002-2v-6a2 2 0 00-2-2H9a2 2 0 00-2 2v6a2 2 0 002 2zm7-5a2 2 0 11-4 0 2 2 0 014 0z\"}}]})(props);\n};\nexport function HiOutlineChartBar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z\"}}]})(props);\n};\nexport function HiOutlineChartPie (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z\"}},{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z\"}}]})(props);\n};\nexport function HiOutlineChartSquareBar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M16 8v8m-4-5v5m-4-2v2m-2 4h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z\"}}]})(props);\n};\nexport function HiOutlineChatAlt2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M17 8h2a2 2 0 012 2v6a2 2 0 01-2 2h-2v4l-4-4H9a1.994 1.994 0 01-1.414-.586m0 0L11 14h4a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2v4l.586-.586z\"}}]})(props);\n};\nexport function HiOutlineChatAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M8 10h.01M12 10h.01M16 10h.01M9 16H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-5l-5 5v-5z\"}}]})(props);\n};\nexport function HiOutlineChat (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z\"}}]})(props);\n};\nexport function HiOutlineCheckCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\"}}]})(props);\n};\nexport function HiOutlineCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M5 13l4 4L19 7\"}}]})(props);\n};\nexport function HiOutlineChevronDoubleDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M19 13l-7 7-7-7m14-8l-7 7-7-7\"}}]})(props);\n};\nexport function HiOutlineChevronDoubleLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M11 19l-7-7 7-7m8 14l-7-7 7-7\"}}]})(props);\n};\nexport function HiOutlineChevronDoubleRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M13 5l7 7-7 7M5 5l7 7-7 7\"}}]})(props);\n};\nexport function HiOutlineChevronDoubleUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M5 11l7-7 7 7M5 19l7-7 7 7\"}}]})(props);\n};\nexport function HiOutlineChevronDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M19 9l-7 7-7-7\"}}]})(props);\n};\nexport function HiOutlineChevronLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M15 19l-7-7 7-7\"}}]})(props);\n};\nexport function HiOutlineChevronRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9 5l7 7-7 7\"}}]})(props);\n};\nexport function HiOutlineChevronUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M5 15l7-7 7 7\"}}]})(props);\n};\nexport function HiOutlineChip (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9 3v2m6-2v2M9 19v2m6-2v2M5 9H3m2 6H3m18-6h-2m2 6h-2M7 19h10a2 2 0 002-2V7a2 2 0 00-2-2H7a2 2 0 00-2 2v10a2 2 0 002 2zM9 9h6v6H9V9z\"}}]})(props);\n};\nexport function HiOutlineClipboardCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"}}]})(props);\n};\nexport function HiOutlineClipboardCopy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M8 5H6a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2v-1M8 5a2 2 0 002 2h2a2 2 0 002-2M8 5a2 2 0 012-2h2a2 2 0 012 2m0 0h2a2 2 0 012 2v3m2 4H10m0 0l3-3m-3 3l3 3\"}}]})(props);\n};\nexport function HiOutlineClipboardList (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01\"}}]})(props);\n};\nexport function HiOutlineClipboard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"}}]})(props);\n};\nexport function HiOutlineClock (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z\"}}]})(props);\n};\nexport function HiOutlineCloudDownload (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M9 19l3 3m0 0l3-3m-3 3V10\"}}]})(props);\n};\nexport function HiOutlineCloudUpload (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12\"}}]})(props);\n};\nexport function HiOutlineCloud (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M3 15a4 4 0 004 4h9a5 5 0 10-.1-9.999 5.002 5.002 0 10-9.78 2.096A4.001 4.001 0 003 15z\"}}]})(props);\n};\nexport function HiOutlineCode (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4\"}}]})(props);\n};\nexport function HiOutlineCog (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z\"}},{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M15 12a3 3 0 11-6 0 3 3 0 016 0z\"}}]})(props);\n};\nexport function HiOutlineCollection (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10\"}}]})(props);\n};\nexport function HiOutlineColorSwatch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M7 21a4 4 0 01-4-4V5a2 2 0 012-2h4a2 2 0 012 2v12a4 4 0 01-4 4zm0 0h12a2 2 0 002-2v-4a2 2 0 00-2-2h-2.343M11 7.343l1.657-1.657a2 2 0 012.828 0l2.829 2.829a2 2 0 010 2.828l-8.486 8.485M7 17h.01\"}}]})(props);\n};\nexport function HiOutlineCreditCard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M3 10h18M7 15h1m4 0h1m-7 4h12a3 3 0 003-3V8a3 3 0 00-3-3H6a3 3 0 00-3 3v8a3 3 0 003 3z\"}}]})(props);\n};\nexport function HiOutlineCubeTransparent (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M14 10l-2 1m0 0l-2-1m2 1v2.5M20 7l-2 1m2-1l-2-1m2 1v2.5M14 4l-2-1-2 1M4 7l2-1M4 7l2 1M4 7v2.5M12 21l-2-1m2 1l2-1m-2 1v-2.5M6 18l-2-1v-2.5M18 18l2-1v-2.5\"}}]})(props);\n};\nexport function HiOutlineCube (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M20 7l-8-4-8 4m16 0l-8 4m8-4v10l-8 4m0-10L4 7m8 4v10M4 7v10l8 4\"}}]})(props);\n};\nexport function HiOutlineCurrencyBangladeshi (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M11 11V9a2 2 0 00-2-2m2 4v4a2 2 0 104 0v-1m-4-3H9m2 0h4m6 1a9 9 0 11-18 0 9 9 0 0118 0z\"}}]})(props);\n};\nexport function HiOutlineCurrencyDollar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"}}]})(props);\n};\nexport function HiOutlineCurrencyEuro (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M14.121 15.536c-1.171 1.952-3.07 1.952-4.242 0-1.172-1.953-1.172-5.119 0-7.072 1.171-1.952 3.07-1.952 4.242 0M8 10.5h4m-4 3h4m9-1.5a9 9 0 11-18 0 9 9 0 0118 0z\"}}]})(props);\n};\nexport function HiOutlineCurrencyPound (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M15 9a2 2 0 10-4 0v5a2 2 0 01-2 2h6m-6-4h4m8 0a9 9 0 11-18 0 9 9 0 0118 0z\"}}]})(props);\n};\nexport function HiOutlineCurrencyRupee (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9 8h6m-5 0a3 3 0 110 6H9l3 3m-3-6h6m6 1a9 9 0 11-18 0 9 9 0 0118 0z\"}}]})(props);\n};\nexport function HiOutlineCurrencyYen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9 8l3 5m0 0l3-5m-3 5v4m-3-5h6m-6 3h6m6-3a9 9 0 11-18 0 9 9 0 0118 0z\"}}]})(props);\n};\nexport function HiOutlineCursorClick (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122\"}}]})(props);\n};\nexport function HiOutlineDatabase (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4\"}}]})(props);\n};\nexport function HiOutlineDesktopComputer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z\"}}]})(props);\n};\nexport function HiOutlineDeviceMobile (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M12 18h.01M8 21h8a2 2 0 002-2V5a2 2 0 00-2-2H8a2 2 0 00-2 2v14a2 2 0 002 2z\"}}]})(props);\n};\nexport function HiOutlineDeviceTablet (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M12 18h.01M7 21h10a2 2 0 002-2V5a2 2 0 00-2-2H7a2 2 0 00-2 2v14a2 2 0 002 2z\"}}]})(props);\n};\nexport function HiOutlineDocumentAdd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9 13h6m-3-3v6m5 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z\"}}]})(props);\n};\nexport function HiOutlineDocumentDownload (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M12 10v6m0 0l-3-3m3 3l3-3m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z\"}}]})(props);\n};\nexport function HiOutlineDocumentDuplicate (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M8 7v8a2 2 0 002 2h6M8 7V5a2 2 0 012-2h4.586a1 1 0 01.707.293l4.414 4.414a1 1 0 01.293.707V15a2 2 0 01-2 2h-2M8 7H6a2 2 0 00-2 2v10a2 2 0 002 2h8a2 2 0 002-2v-2\"}}]})(props);\n};\nexport function HiOutlineDocumentRemove (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9 13h6m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z\"}}]})(props);\n};\nexport function HiOutlineDocumentReport (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9 17v-2m3 2v-4m3 4v-6m2 10H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z\"}}]})(props);\n};\nexport function HiOutlineDocumentSearch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M10 21h7a2 2 0 002-2V9.414a1 1 0 00-.293-.707l-5.414-5.414A1 1 0 0012.586 3H7a2 2 0 00-2 2v11m0 5l4.879-4.879m0 0a3 3 0 104.243-4.242 3 3 0 00-4.243 4.242z\"}}]})(props);\n};\nexport function HiOutlineDocumentText (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z\"}}]})(props);\n};\nexport function HiOutlineDocument (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M7 21h10a2 2 0 002-2V9.414a1 1 0 00-.293-.707l-5.414-5.414A1 1 0 0012.586 3H7a2 2 0 00-2 2v14a2 2 0 002 2z\"}}]})(props);\n};\nexport function HiOutlineDotsCircleHorizontal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M8 12h.01M12 12h.01M16 12h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"}}]})(props);\n};\nexport function HiOutlineDotsHorizontal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M5 12h.01M12 12h.01M19 12h.01M6 12a1 1 0 11-2 0 1 1 0 012 0zm7 0a1 1 0 11-2 0 1 1 0 012 0zm7 0a1 1 0 11-2 0 1 1 0 012 0z\"}}]})(props);\n};\nexport function HiOutlineDotsVertical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M12 5v.01M12 12v.01M12 19v.01M12 6a1 1 0 110-2 1 1 0 010 2zm0 7a1 1 0 110-2 1 1 0 010 2zm0 7a1 1 0 110-2 1 1 0 010 2z\"}}]})(props);\n};\nexport function HiOutlineDownload (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4\"}}]})(props);\n};\nexport function HiOutlineDuplicate (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"}}]})(props);\n};\nexport function HiOutlineEmojiHappy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M14.828 14.828a4 4 0 01-5.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"}}]})(props);\n};\nexport function HiOutlineEmojiSad (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9.172 16.172a4 4 0 015.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"}}]})(props);\n};\nexport function HiOutlineExclamationCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"}}]})(props);\n};\nexport function HiOutlineExclamation (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\"}}]})(props);\n};\nexport function HiOutlineExternalLink (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14\"}}]})(props);\n};\nexport function HiOutlineEyeOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.88 9.88l-3.29-3.29m7.532 7.532l3.29 3.29M3 3l3.59 3.59m0 0A9.953 9.953 0 0112 5c4.478 0 8.268 2.943 9.543 7a10.025 10.025 0 01-4.132 5.411m0 0L21 21\"}}]})(props);\n};\nexport function HiOutlineEye (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M15 12a3 3 0 11-6 0 3 3 0 016 0z\"}},{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z\"}}]})(props);\n};\nexport function HiOutlineFastForward (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M11.933 12.8a1 1 0 000-1.6L6.6 7.2A1 1 0 005 8v8a1 1 0 001.6.8l5.333-4zM19.933 12.8a1 1 0 000-1.6l-5.333-4A1 1 0 0013 8v8a1 1 0 001.6.8l5.333-4z\"}}]})(props);\n};\nexport function HiOutlineFilm (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M7 4v16M17 4v16M3 8h4m10 0h4M3 12h18M3 16h4m10 0h4M4 20h16a1 1 0 001-1V5a1 1 0 00-1-1H4a1 1 0 00-1 1v14a1 1 0 001 1z\"}}]})(props);\n};\nexport function HiOutlineFilter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z\"}}]})(props);\n};\nexport function HiOutlineFingerPrint (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M12 11c0 3.517-1.009 6.799-2.753 9.571m-3.44-2.04l.054-.09A13.916 13.916 0 008 11a4 4 0 118 0c0 1.017-.07 2.019-.203 3m-2.118 6.844A21.88 21.88 0 0015.171 17m3.839 1.132c.645-2.266.99-4.659.99-7.132A8 8 0 008 4.07M3 15.364c.64-1.319 1-2.8 1-4.364 0-1.457.39-2.823 1.07-4\"}}]})(props);\n};\nexport function HiOutlineFire (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M17.657 18.657A8 8 0 016.343 7.343S7 9 9 10c0-2 .5-5 2.986-7C14 5 16.09 5.777 17.656 7.343A7.975 7.975 0 0120 13a7.975 7.975 0 01-2.343 5.657z\"}},{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9.879 16.121A3 3 0 1012.015 11L11 14H9c0 .768.293 1.536.879 2.121z\"}}]})(props);\n};\nexport function HiOutlineFlag (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M3 21v-4m0 0V5a2 2 0 012-2h6.5l1 1H21l-3 6 3 6h-8.5l-1-1H5a2 2 0 00-2 2zm9-13.5V9\"}}]})(props);\n};\nexport function HiOutlineFolderAdd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9 13h6m-3-3v6m-9 1V7a2 2 0 012-2h6l2 2h6a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2z\"}}]})(props);\n};\nexport function HiOutlineFolderDownload (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M12 10v6m0 0l-3-3m3 3l3-3M3 17V7a2 2 0 012-2h6l2 2h6a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2z\"}}]})(props);\n};\nexport function HiOutlineFolderOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M5 19a2 2 0 01-2-2V7a2 2 0 012-2h4l2 2h4a2 2 0 012 2v1M5 19h14a2 2 0 002-2v-5a2 2 0 00-2-2H9a2 2 0 00-2 2v5a2 2 0 01-2 2z\"}}]})(props);\n};\nexport function HiOutlineFolderRemove (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9 13h6M3 17V7a2 2 0 012-2h6l2 2h6a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2z\"}}]})(props);\n};\nexport function HiOutlineFolder (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z\"}}]})(props);\n};\nexport function HiOutlineGift (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M12 8v13m0-13V6a2 2 0 112 2h-2zm0 0V5.5A2.5 2.5 0 109.5 8H12zm-7 4h14M5 12a2 2 0 110-4h14a2 2 0 110 4M5 12v7a2 2 0 002 2h10a2 2 0 002-2v-7\"}}]})(props);\n};\nexport function HiOutlineGlobeAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9\"}}]})(props);\n};\nexport function HiOutlineGlobe (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M3.055 11H5a2 2 0 012 2v1a2 2 0 002 2 2 2 0 012 2v2.945M8 3.935V5.5A2.5 2.5 0 0010.5 8h.5a2 2 0 012 2 2 2 0 104 0 2 2 0 012-2h1.064M15 20.488V18a2 2 0 012-2h3.064M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"}}]})(props);\n};\nexport function HiOutlineHand (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M7 11.5V14m0-2.5v-6a1.5 1.5 0 113 0m-3 6a1.5 1.5 0 00-3 0v2a7.5 7.5 0 0015 0v-5a1.5 1.5 0 00-3 0m-6-3V11m0-5.5v-1a1.5 1.5 0 013 0v1m0 0V11m0-5.5a1.5 1.5 0 013 0v3m0 0V11\"}}]})(props);\n};\nexport function HiOutlineHashtag (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M7 20l4-16m2 16l4-16M6 9h14M4 15h14\"}}]})(props);\n};\nexport function HiOutlineHeart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z\"}}]})(props);\n};\nexport function HiOutlineHome (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6\"}}]})(props);\n};\nexport function HiOutlineIdentification (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M10 6H5a2 2 0 00-2 2v9a2 2 0 002 2h14a2 2 0 002-2V8a2 2 0 00-2-2h-5m-4 0V5a2 2 0 114 0v1m-4 0a2 2 0 104 0m-5 8a2 2 0 100-4 2 2 0 000 4zm0 0c1.306 0 2.417.835 2.83 2M9 14a3.001 3.001 0 00-2.83 2M15 11h3m-3 4h2\"}}]})(props);\n};\nexport function HiOutlineInboxIn (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M8 4H6a2 2 0 00-2 2v12a2 2 0 002 2h12a2 2 0 002-2V6a2 2 0 00-2-2h-2m-4-1v8m0 0l3-3m-3 3L9 8m-5 5h2.586a1 1 0 01.707.293l2.414 2.414a1 1 0 00.707.293h3.172a1 1 0 00.707-.293l2.414-2.414a1 1 0 01.707-.293H20\"}}]})(props);\n};\nexport function HiOutlineInbox (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M20 13V6a2 2 0 00-2-2H6a2 2 0 00-2 2v7m16 0v5a2 2 0 01-2 2H6a2 2 0 01-2-2v-5m16 0h-2.586a1 1 0 00-.707.293l-2.414 2.414a1 1 0 01-.707.293h-3.172a1 1 0 01-.707-.293l-2.414-2.414A1 1 0 006.586 13H4\"}}]})(props);\n};\nexport function HiOutlineInformationCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"}}]})(props);\n};\nexport function HiOutlineKey (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M15 7a2 2 0 012 2m4 0a6 6 0 01-7.743 5.743L11 17H9v2H7v2H4a1 1 0 01-1-1v-2.586a1 1 0 01.293-.707l5.964-5.964A6 6 0 1121 9z\"}}]})(props);\n};\nexport function HiOutlineLibrary (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M8 14v3m4-3v3m4-3v3M3 21h18M3 10h18M3 7l9-4 9 4M4 10h16v11H4V10z\"}}]})(props);\n};\nexport function HiOutlineLightBulb (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z\"}}]})(props);\n};\nexport function HiOutlineLightningBolt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M13 10V3L4 14h7v7l9-11h-7z\"}}]})(props);\n};\nexport function HiOutlineLink (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1\"}}]})(props);\n};\nexport function HiOutlineLocationMarker (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z\"}},{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M15 11a3 3 0 11-6 0 3 3 0 016 0z\"}}]})(props);\n};\nexport function HiOutlineLockClosed (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z\"}}]})(props);\n};\nexport function HiOutlineLockOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M8 11V7a4 4 0 118 0m-4 8v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2z\"}}]})(props);\n};\nexport function HiOutlineLogin (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M11 16l-4-4m0 0l4-4m-4 4h14m-5 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h7a3 3 0 013 3v1\"}}]})(props);\n};\nexport function HiOutlineLogout (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1\"}}]})(props);\n};\nexport function HiOutlineMailOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M3 19v-8.93a2 2 0 01.89-1.664l7-4.666a2 2 0 012.22 0l7 4.666A2 2 0 0121 10.07V19M3 19a2 2 0 002 2h14a2 2 0 002-2M3 19l6.75-4.5M21 19l-6.75-4.5M3 10l6.75 4.5M21 10l-6.75 4.5m0 0l-1.14.76a2 2 0 01-2.22 0l-1.14-.76\"}}]})(props);\n};\nexport function HiOutlineMail (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z\"}}]})(props);\n};\nexport function HiOutlineMap (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9 20l-5.447-2.724A1 1 0 013 16.382V5.618a1 1 0 011.447-.894L9 7m0 13l6-3m-6 3V7m6 10l4.553 2.276A1 1 0 0021 18.382V7.618a1 1 0 00-.553-.894L15 4m0 13V4m0 0L9 7\"}}]})(props);\n};\nexport function HiOutlineMenuAlt1 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M4 6h16M4 12h8m-8 6h16\"}}]})(props);\n};\nexport function HiOutlineMenuAlt2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M4 6h16M4 12h16M4 18h7\"}}]})(props);\n};\nexport function HiOutlineMenuAlt3 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M4 6h16M4 12h16m-7 6h7\"}}]})(props);\n};\nexport function HiOutlineMenuAlt4 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M4 8h16M4 16h16\"}}]})(props);\n};\nexport function HiOutlineMenu (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M4 6h16M4 12h16M4 18h16\"}}]})(props);\n};\nexport function HiOutlineMicrophone (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M19 11a7 7 0 01-7 7m0 0a7 7 0 01-7-7m7 7v4m0 0H8m4 0h4m-4-8a3 3 0 01-3-3V5a3 3 0 116 0v6a3 3 0 01-3 3z\"}}]})(props);\n};\nexport function HiOutlineMinusCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z\"}}]})(props);\n};\nexport function HiOutlineMinusSm (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M18 12H6\"}}]})(props);\n};\nexport function HiOutlineMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M20 12H4\"}}]})(props);\n};\nexport function HiOutlineMoon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z\"}}]})(props);\n};\nexport function HiOutlineMusicNote (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9 19V6l12-3v13M9 19c0 1.105-1.343 2-3 2s-3-.895-3-2 1.343-2 3-2 3 .895 3 2zm12-3c0 1.105-1.343 2-3 2s-3-.895-3-2 1.343-2 3-2 3 .895 3 2zM9 10l12-3\"}}]})(props);\n};\nexport function HiOutlineNewspaper (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M19 20H5a2 2 0 01-2-2V6a2 2 0 012-2h10a2 2 0 012 2v1m2 13a2 2 0 01-2-2V7m2 13a2 2 0 002-2V9a2 2 0 00-2-2h-2m-4-3H9M7 16h6M7 8h6v4H7V8z\"}}]})(props);\n};\nexport function HiOutlineOfficeBuilding (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4\"}}]})(props);\n};\nexport function HiOutlinePaperAirplane (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M12 19l9 2-9-18-9 18 9-2zm0 0v-8\"}}]})(props);\n};\nexport function HiOutlinePaperClip (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M15.172 7l-6.586 6.586a2 2 0 102.828 2.828l6.414-6.586a4 4 0 00-5.656-5.656l-6.415 6.585a6 6 0 108.486 8.486L20.5 13\"}}]})(props);\n};\nexport function HiOutlinePause (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M10 9v6m4-6v6m7-3a9 9 0 11-18 0 9 9 0 0118 0z\"}}]})(props);\n};\nexport function HiOutlinePencilAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z\"}}]})(props);\n};\nexport function HiOutlinePencil (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z\"}}]})(props);\n};\nexport function HiOutlinePhoneIncoming (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M21 3l-6 6m0 0V4m0 5h5M5 3a2 2 0 00-2 2v1c0 8.284 6.716 15 15 15h1a2 2 0 002-2v-3.28a1 1 0 00-.684-.948l-4.493-1.498a1 1 0 00-1.21.502l-1.13 2.257a11.042 11.042 0 01-5.516-5.517l2.257-1.128a1 1 0 00.502-1.21L9.228 3.683A1 1 0 008.279 3H5z\"}}]})(props);\n};\nexport function HiOutlinePhoneMissedCall (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M16 8l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2M5 3a2 2 0 00-2 2v1c0 8.284 6.716 15 15 15h1a2 2 0 002-2v-3.28a1 1 0 00-.684-.948l-4.493-1.498a1 1 0 00-1.21.502l-1.13 2.257a11.042 11.042 0 01-5.516-5.517l2.257-1.128a1 1 0 00.502-1.21L9.228 3.683A1 1 0 008.279 3H5z\"}}]})(props);\n};\nexport function HiOutlinePhoneOutgoing (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M16 3h5m0 0v5m0-5l-6 6M5 3a2 2 0 00-2 2v1c0 8.284 6.716 15 15 15h1a2 2 0 002-2v-3.28a1 1 0 00-.684-.948l-4.493-1.498a1 1 0 00-1.21.502l-1.13 2.257a11.042 11.042 0 01-5.516-5.517l2.257-1.128a1 1 0 00.502-1.21L9.228 3.683A1 1 0 008.279 3H5z\"}}]})(props);\n};\nexport function HiOutlinePhone (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z\"}}]})(props);\n};\nexport function HiOutlinePhotograph (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z\"}}]})(props);\n};\nexport function HiOutlinePlay (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z\"}},{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"}}]})(props);\n};\nexport function HiOutlinePlusCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z\"}}]})(props);\n};\nexport function HiOutlinePlusSm (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M12 6v6m0 0v6m0-6h6m-6 0H6\"}}]})(props);\n};\nexport function HiOutlinePlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M12 4v16m8-8H4\"}}]})(props);\n};\nexport function HiOutlinePresentationChartBar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M8 13v-1m4 1v-3m4 3V8M8 21l4-4 4 4M3 4h18M4 4h16v12a1 1 0 01-1 1H5a1 1 0 01-1-1V4z\"}}]})(props);\n};\nexport function HiOutlinePresentationChartLine (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M7 12l3-3 3 3 4-4M8 21l4-4 4 4M3 4h18M4 4h16v12a1 1 0 01-1 1H5a1 1 0 01-1-1V4z\"}}]})(props);\n};\nexport function HiOutlinePrinter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M17 17h2a2 2 0 002-2v-4a2 2 0 00-2-2H5a2 2 0 00-2 2v4a2 2 0 002 2h2m2 4h6a2 2 0 002-2v-4a2 2 0 00-2-2H9a2 2 0 00-2 2v4a2 2 0 002 2zm8-12V5a2 2 0 00-2-2H9a2 2 0 00-2 2v4h10z\"}}]})(props);\n};\nexport function HiOutlinePuzzle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M11 4a2 2 0 114 0v1a1 1 0 001 1h3a1 1 0 011 1v3a1 1 0 01-1 1h-1a2 2 0 100 4h1a1 1 0 011 1v3a1 1 0 01-1 1h-3a1 1 0 01-1-1v-1a2 2 0 10-4 0v1a1 1 0 01-1 1H7a1 1 0 01-1-1v-3a1 1 0 00-1-1H4a2 2 0 110-4h1a1 1 0 001-1V7a1 1 0 011-1h3a1 1 0 001-1V4z\"}}]})(props);\n};\nexport function HiOutlineQrcode (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M12 4v1m6 11h2m-6 0h-2v4m0-11v3m0 0h.01M12 12h4.01M16 20h4M4 12h4m12 0h.01M5 8h2a1 1 0 001-1V5a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1zm12 0h2a1 1 0 001-1V5a1 1 0 00-1-1h-2a1 1 0 00-1 1v2a1 1 0 001 1zM5 20h2a1 1 0 001-1v-2a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1z\"}}]})(props);\n};\nexport function HiOutlineQuestionMarkCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M8.228 9c.549-1.165 2.03-2 3.772-2 2.21 0 4 1.343 4 3 0 1.4-1.278 2.575-3.006 2.907-.542.104-.994.54-.994 1.093m0 3h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"}}]})(props);\n};\nexport function HiOutlineReceiptRefund (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M16 15v-1a4 4 0 00-4-4H8m0 0l3 3m-3-3l3-3m9 14V5a2 2 0 00-2-2H6a2 2 0 00-2 2v16l4-2 4 2 4-2 4 2z\"}}]})(props);\n};\nexport function HiOutlineReceiptTax (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9 14l6-6m-5.5.5h.01m4.99 5h.01M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16l3.5-2 3.5 2 3.5-2 3.5 2zM10 8.5a.5.5 0 11-1 0 .5.5 0 011 0zm5 5a.5.5 0 11-1 0 .5.5 0 011 0z\"}}]})(props);\n};\nexport function HiOutlineRefresh (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15\"}}]})(props);\n};\nexport function HiOutlineReply (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M3 10h10a8 8 0 018 8v2M3 10l6 6m-6-6l6-6\"}}]})(props);\n};\nexport function HiOutlineRewind (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M12.066 11.2a1 1 0 000 1.6l5.334 4A1 1 0 0019 16V8a1 1 0 00-1.6-.8l-5.333 4zM4.066 11.2a1 1 0 000 1.6l5.334 4A1 1 0 0011 16V8a1 1 0 00-1.6-.8l-5.334 4z\"}}]})(props);\n};\nexport function HiOutlineRss (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M6 5c7.18 0 13 5.82 13 13M6 11a7 7 0 017 7m-6 0a1 1 0 11-2 0 1 1 0 012 0z\"}}]})(props);\n};\nexport function HiOutlineSaveAs (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M17 16v2a2 2 0 01-2 2H5a2 2 0 01-2-2v-7a2 2 0 012-2h2m3-4H9a2 2 0 00-2 2v7a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-1m-1 4l-3 3m0 0l-3-3m3 3V3\"}}]})(props);\n};\nexport function HiOutlineSave (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M8 7H5a2 2 0 00-2 2v9a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-3m-1 4l-3 3m0 0l-3-3m3 3V4\"}}]})(props);\n};\nexport function HiOutlineScale (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M3 6l3 1m0 0l-3 9a5.002 5.002 0 006.001 0M6 7l3 9M6 7l6-2m6 2l3-1m-3 1l-3 9a5.002 5.002 0 006.001 0M18 7l3 9m-3-9l-6-2m0-2v2m0 16V5m0 16H9m3 0h3\"}}]})(props);\n};\nexport function HiOutlineScissors (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M14.121 14.121L19 19m-7-7l7-7m-7 7l-2.879 2.879M12 12L9.121 9.121m0 5.758a3 3 0 10-4.243 4.243 3 3 0 004.243-4.243zm0-5.758a3 3 0 10-4.243-4.243 3 3 0 004.243 4.243z\"}}]})(props);\n};\nexport function HiOutlineSearchCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M8 16l2.879-2.879m0 0a3 3 0 104.243-4.242 3 3 0 00-4.243 4.242zM21 12a9 9 0 11-18 0 9 9 0 0118 0z\"}}]})(props);\n};\nexport function HiOutlineSearch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"}}]})(props);\n};\nexport function HiOutlineSelector (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M8 9l4-4 4 4m0 6l-4 4-4-4\"}}]})(props);\n};\nexport function HiOutlineServer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-2-4h.01M17 16h.01\"}}]})(props);\n};\nexport function HiOutlineShare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M8.684 13.342C8.886 12.938 9 12.482 9 12c0-.482-.114-.938-.316-1.342m0 2.684a3 3 0 110-2.684m0 2.684l6.632 3.316m-6.632-6l6.632-3.316m0 0a3 3 0 105.367-2.684 3 3 0 00-5.367 2.684zm0 9.316a3 3 0 105.368 2.684 3 3 0 00-5.368-2.684z\"}}]})(props);\n};\nexport function HiOutlineShieldCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z\"}}]})(props);\n};\nexport function HiOutlineShieldExclamation (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M20.618 5.984A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016zM12 9v2m0 4h.01\"}}]})(props);\n};\nexport function HiOutlineShoppingBag (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M16 11V7a4 4 0 00-8 0v4M5 9h14l1 12H4L5 9z\"}}]})(props);\n};\nexport function HiOutlineShoppingCart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z\"}}]})(props);\n};\nexport function HiOutlineSortAscending (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M3 4h13M3 8h9m-9 4h6m4 0l4-4m0 0l4 4m-4-4v12\"}}]})(props);\n};\nexport function HiOutlineSortDescending (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M3 4h13M3 8h9m-9 4h9m5-4v12m0 0l-4-4m4 4l4-4\"}}]})(props);\n};\nexport function HiOutlineSparkles (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M5 3v4M3 5h4M6 17v4m-2-2h4m5-16l2.286 6.857L21 12l-5.714 2.143L13 21l-2.286-6.857L5 12l5.714-2.143L13 3z\"}}]})(props);\n};\nexport function HiOutlineSpeakerphone (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M11 5.882V19.24a1.76 1.76 0 01-3.417.592l-2.147-6.15M18 13a3 3 0 100-6M5.436 13.683A4.001 4.001 0 017 6h1.832c4.1 0 7.625-1.234 9.168-3v14c-1.543-1.766-5.067-3-9.168-3H7a3.988 3.988 0 01-1.564-.317z\"}}]})(props);\n};\nexport function HiOutlineStar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z\"}}]})(props);\n};\nexport function HiOutlineStatusOffline (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M18.364 5.636a9 9 0 010 12.728m0 0l-2.829-2.829m2.829 2.829L21 21M15.536 8.464a5 5 0 010 7.072m0 0l-2.829-2.829m-4.243 2.829a4.978 4.978 0 01-1.414-2.83m-1.414 5.658a9 9 0 01-2.167-9.238m7.824 2.167a1 1 0 111.414 1.414m-1.414-1.414L3 3m8.293 8.293l1.414 1.414\"}}]})(props);\n};\nexport function HiOutlineStatusOnline (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M5.636 18.364a9 9 0 010-12.728m12.728 0a9 9 0 010 12.728m-9.9-2.829a5 5 0 010-7.07m7.072 0a5 5 0 010 7.07M13 12a1 1 0 11-2 0 1 1 0 012 0z\"}}]})(props);\n};\nexport function HiOutlineStop (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"}},{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9 10a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-4z\"}}]})(props);\n};\nexport function HiOutlineSun (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z\"}}]})(props);\n};\nexport function HiOutlineSupport (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M18.364 5.636l-3.536 3.536m0 5.656l3.536 3.536M9.172 9.172L5.636 5.636m3.536 9.192l-3.536 3.536M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-5 0a4 4 0 11-8 0 4 4 0 018 0z\"}}]})(props);\n};\nexport function HiOutlineSwitchHorizontal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M8 7h12m0 0l-4-4m4 4l-4 4m0 6H4m0 0l4 4m-4-4l4-4\"}}]})(props);\n};\nexport function HiOutlineSwitchVertical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M7 16V4m0 0L3 8m4-4l4 4m6 0v12m0 0l4-4m-4 4l-4-4\"}}]})(props);\n};\nexport function HiOutlineTable (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M3 10h18M3 14h18m-9-4v8m-7 0h14a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z\"}}]})(props);\n};\nexport function HiOutlineTag (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M7 7h.01M7 3h5c.512 0 1.024.195 1.414.586l7 7a2 2 0 010 2.828l-7 7a2 2 0 01-2.828 0l-7-7A1.994 1.994 0 013 12V7a4 4 0 014-4z\"}}]})(props);\n};\nexport function HiOutlineTemplate (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z\"}}]})(props);\n};\nexport function HiOutlineTerminal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\"}}]})(props);\n};\nexport function HiOutlineThumbDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M10 14H5.236a2 2 0 01-1.789-2.894l3.5-7A2 2 0 018.736 3h4.018a2 2 0 01.485.06l3.76.94m-7 10v5a2 2 0 002 2h.096c.5 0 .905-.405.905-.904 0-.715.211-1.413.608-2.008L17 13V4m-7 10h2m5-10h2a2 2 0 012 2v6a2 2 0 01-2 2h-2.5\"}}]})(props);\n};\nexport function HiOutlineThumbUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M14 10h4.764a2 2 0 011.789 2.894l-3.5 7A2 2 0 0115.263 21h-4.017c-.163 0-.326-.02-.485-.06L7 20m7-10V5a2 2 0 00-2-2h-.095c-.5 0-.905.405-.905.905 0 .714-.211 1.412-.608 2.006L7 11v9m7-10h-2M7 20H5a2 2 0 01-2-2v-6a2 2 0 012-2h2.5\"}}]})(props);\n};\nexport function HiOutlineTicket (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M15 5v2m0 4v2m0 4v2M5 5a2 2 0 00-2 2v3a2 2 0 110 4v3a2 2 0 002 2h14a2 2 0 002-2v-3a2 2 0 110-4V7a2 2 0 00-2-2H5z\"}}]})(props);\n};\nexport function HiOutlineTranslate (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129\"}}]})(props);\n};\nexport function HiOutlineTrash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16\"}}]})(props);\n};\nexport function HiOutlineTrendingDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M13 17h8m0 0V9m0 8l-8-8-4 4-6-6\"}}]})(props);\n};\nexport function HiOutlineTrendingUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M13 7h8m0 0v8m0-8l-8 8-4-4-6 6\"}}]})(props);\n};\nexport function HiOutlineTruck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 17a2 2 0 11-4 0 2 2 0 014 0zM19 17a2 2 0 11-4 0 2 2 0 014 0z\"}},{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M13 16V6a1 1 0 00-1-1H4a1 1 0 00-1 1v10a1 1 0 001 1h1m8-1a1 1 0 01-1 1H9m4-1V8a1 1 0 011-1h2.586a1 1 0 01.707.293l3.414 3.414a1 1 0 01.293.707V16a1 1 0 01-1 1h-1m-6-1a1 1 0 001 1h1M5 17a2 2 0 104 0m-4 0a2 2 0 114 0m6 0a2 2 0 104 0m-4 0a2 2 0 114 0\"}}]})(props);\n};\nexport function HiOutlineUpload (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-8l-4-4m0 0L8 8m4-4v12\"}}]})(props);\n};\nexport function HiOutlineUserAdd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M18 9v3m0 0v3m0-3h3m-3 0h-3m-2-5a4 4 0 11-8 0 4 4 0 018 0zM3 20a6 6 0 0112 0v1H3v-1z\"}}]})(props);\n};\nexport function HiOutlineUserCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M5.121 17.804A13.937 13.937 0 0112 16c2.5 0 4.847.655 6.879 1.804M15 10a3 3 0 11-6 0 3 3 0 016 0zm6 2a9 9 0 11-18 0 9 9 0 0118 0z\"}}]})(props);\n};\nexport function HiOutlineUserGroup (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z\"}}]})(props);\n};\nexport function HiOutlineUserRemove (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M13 7a4 4 0 11-8 0 4 4 0 018 0zM9 14a6 6 0 00-6 6v1h12v-1a6 6 0 00-6-6zM21 12h-6\"}}]})(props);\n};\nexport function HiOutlineUser (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z\"}}]})(props);\n};\nexport function HiOutlineUsers (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197M13 7a4 4 0 11-8 0 4 4 0 018 0z\"}}]})(props);\n};\nexport function HiOutlineVariable (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M4.871 4A17.926 17.926 0 003 12c0 2.874.673 5.59 1.871 8m14.13 0a17.926 17.926 0 001.87-8c0-2.874-.673-5.59-1.87-8M9 9h1.246a1 1 0 01.961.725l1.586 5.55a1 1 0 00.961.725H15m1-7h-.08a2 2 0 00-1.519.698L9.6 15.302A2 2 0 018.08 16H8\"}}]})(props);\n};\nexport function HiOutlineVideoCamera (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z\"}}]})(props);\n};\nexport function HiOutlineViewBoards (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M9 17V7m0 10a2 2 0 01-2 2H5a2 2 0 01-2-2V7a2 2 0 012-2h2a2 2 0 012 2m0 10a2 2 0 002 2h2a2 2 0 002-2M9 7a2 2 0 012-2h2a2 2 0 012 2m0 10V7m0 10a2 2 0 002 2h2a2 2 0 002-2V7a2 2 0 00-2-2h-2a2 2 0 00-2 2\"}}]})(props);\n};\nexport function HiOutlineViewGridAdd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M17 14v6m-3-3h6M6 10h2a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v2a2 2 0 002 2zm10 0h2a2 2 0 002-2V6a2 2 0 00-2-2h-2a2 2 0 00-2 2v2a2 2 0 002 2zM6 20h2a2 2 0 002-2v-2a2 2 0 00-2-2H6a2 2 0 00-2 2v2a2 2 0 002 2z\"}}]})(props);\n};\nexport function HiOutlineViewGrid (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M4 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2V6zM14 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2V6zM4 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2v-2zM14 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2v-2z\"}}]})(props);\n};\nexport function HiOutlineViewList (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M4 6h16M4 10h16M4 14h16M4 18h16\"}}]})(props);\n};\nexport function HiOutlineVolumeOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z\",\"clipRule\":\"evenodd\"}},{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M17 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2\"}}]})(props);\n};\nexport function HiOutlineVolumeUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M15.536 8.464a5 5 0 010 7.072m2.828-9.9a9 9 0 010 12.728M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z\"}}]})(props);\n};\nexport function HiOutlineWifi (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M8.111 16.404a5.5 5.5 0 017.778 0M12 20h.01m-7.08-7.071c3.904-3.905 10.236-3.905 14.141 0M1.394 9.393c5.857-5.857 15.355-5.857 21.213 0\"}}]})(props);\n};\nexport function HiOutlineXCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z\"}}]})(props);\n};\nexport function HiOutlineX (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M6 18L18 6M6 6l12 12\"}}]})(props);\n};\nexport function HiOutlineZoomIn (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM10 7v3m0 0v3m0-3h3m-3 0H7\"}}]})(props);\n};\nexport function HiOutlineZoomOut (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":\"2\",\"stroke\":\"currentColor\",\"aria-hidden\":\"true\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM13 10H7\"}}]})(props);\n};\n","export var IconsManifest = [\n  {\n    \"id\": \"ci\",\n    \"name\": \"Circum Icons\",\n    \"projectUrl\": \"https://circumicons.com/\",\n    \"license\": \"MPL-2.0 license\",\n    \"licenseUrl\": \"https://github.com/Klarr-Agency/Circum-Icons/blob/main/LICENSE\"\n  },\n  {\n    \"id\": \"fa\",\n    \"name\": \"Font Awesome 5\",\n    \"projectUrl\": \"https://fontawesome.com/\",\n    \"license\": \"CC BY 4.0 License\",\n    \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n  },\n  {\n    \"id\": \"fa6\",\n    \"name\": \"Font Awesome 6\",\n    \"projectUrl\": \"https://fontawesome.com/\",\n    \"license\": \"CC BY 4.0 License\",\n    \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n  },\n  {\n    \"id\": \"io\",\n    \"name\": \"Ionicons 4\",\n    \"projectUrl\": \"https://ionicons.com/\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n  },\n  {\n    \"id\": \"io5\",\n    \"name\": \"Ionicons 5\",\n    \"projectUrl\": \"https://ionicons.com/\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n  },\n  {\n    \"id\": \"md\",\n    \"name\": \"Material Design icons\",\n    \"projectUrl\": \"http://google.github.io/material-design-icons/\",\n    \"license\": \"Apache License Version 2.0\",\n    \"licenseUrl\": \"https://github.com/google/material-design-icons/blob/master/LICENSE\"\n  },\n  {\n    \"id\": \"ti\",\n    \"name\": \"Typicons\",\n    \"projectUrl\": \"http://s-ings.com/typicons/\",\n    \"license\": \"CC BY-SA 3.0\",\n    \"licenseUrl\": \"https://creativecommons.org/licenses/by-sa/3.0/\"\n  },\n  {\n    \"id\": \"go\",\n    \"name\": \"Github Octicons icons\",\n    \"projectUrl\": \"https://octicons.github.com/\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://github.com/primer/octicons/blob/master/LICENSE\"\n  },\n  {\n    \"id\": \"fi\",\n    \"name\": \"Feather\",\n    \"projectUrl\": \"https://feathericons.com/\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://github.com/feathericons/feather/blob/master/LICENSE\"\n  },\n  {\n    \"id\": \"lu\",\n    \"name\": \"Lucide\",\n    \"projectUrl\": \"https://lucide.dev/\",\n    \"license\": \"ISC\",\n    \"licenseUrl\": \"https://github.com/lucide-icons/lucide/blob/main/LICENSE\"\n  },\n  {\n    \"id\": \"gi\",\n    \"name\": \"Game Icons\",\n    \"projectUrl\": \"https://game-icons.net/\",\n    \"license\": \"CC BY 3.0\",\n    \"licenseUrl\": \"https://creativecommons.org/licenses/by/3.0/\"\n  },\n  {\n    \"id\": \"wi\",\n    \"name\": \"Weather Icons\",\n    \"projectUrl\": \"https://erikflowers.github.io/weather-icons/\",\n    \"license\": \"SIL OFL 1.1\",\n    \"licenseUrl\": \"http://scripts.sil.org/OFL\"\n  },\n  {\n    \"id\": \"di\",\n    \"name\": \"Devicons\",\n    \"projectUrl\": \"https://vorillaz.github.io/devicons/\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n  },\n  {\n    \"id\": \"ai\",\n    \"name\": \"Ant Design Icons\",\n    \"projectUrl\": \"https://github.com/ant-design/ant-design-icons\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n  },\n  {\n    \"id\": \"bs\",\n    \"name\": \"Bootstrap Icons\",\n    \"projectUrl\": \"https://github.com/twbs/icons\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n  },\n  {\n    \"id\": \"ri\",\n    \"name\": \"Remix Icon\",\n    \"projectUrl\": \"https://github.com/Remix-Design/RemixIcon\",\n    \"license\": \"Apache License Version 2.0\",\n    \"licenseUrl\": \"http://www.apache.org/licenses/\"\n  },\n  {\n    \"id\": \"fc\",\n    \"name\": \"Flat Color Icons\",\n    \"projectUrl\": \"https://github.com/icons8/flat-color-icons\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n  },\n  {\n    \"id\": \"gr\",\n    \"name\": \"Grommet-Icons\",\n    \"projectUrl\": \"https://github.com/grommet/grommet-icons\",\n    \"license\": \"Apache License Version 2.0\",\n    \"licenseUrl\": \"http://www.apache.org/licenses/\"\n  },\n  {\n    \"id\": \"hi\",\n    \"name\": \"Heroicons\",\n    \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n  },\n  {\n    \"id\": \"hi2\",\n    \"name\": \"Heroicons 2\",\n    \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n  },\n  {\n    \"id\": \"si\",\n    \"name\": \"Simple Icons\",\n    \"projectUrl\": \"https://simpleicons.org/\",\n    \"license\": \"CC0 1.0 Universal\",\n    \"licenseUrl\": \"https://creativecommons.org/publicdomain/zero/1.0/\"\n  },\n  {\n    \"id\": \"sl\",\n    \"name\": \"Simple Line Icons\",\n    \"projectUrl\": \"https://thesabbir.github.io/simple-line-icons/\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n  },\n  {\n    \"id\": \"im\",\n    \"name\": \"IcoMoon Free\",\n    \"projectUrl\": \"https://github.com/Keyamoon/IcoMoon-Free\",\n    \"license\": \"CC BY 4.0 License\",\n    \"licenseUrl\": \"https://github.com/Keyamoon/IcoMoon-Free/blob/master/License.txt\"\n  },\n  {\n    \"id\": \"bi\",\n    \"name\": \"BoxIcons\",\n    \"projectUrl\": \"https://github.com/atisawd/boxicons\",\n    \"license\": \"CC BY 4.0 License\",\n    \"licenseUrl\": \"https://github.com/atisawd/boxicons/blob/master/LICENSE\"\n  },\n  {\n    \"id\": \"cg\",\n    \"name\": \"css.gg\",\n    \"projectUrl\": \"https://github.com/astrit/css.gg\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n  },\n  {\n    \"id\": \"vsc\",\n    \"name\": \"VS Code Icons\",\n    \"projectUrl\": \"https://github.com/microsoft/vscode-codicons\",\n    \"license\": \"CC BY 4.0\",\n    \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n  },\n  {\n    \"id\": \"tb\",\n    \"name\": \"Tabler Icons\",\n    \"projectUrl\": \"https://github.com/tabler/tabler-icons\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n  },\n  {\n    \"id\": \"tfi\",\n    \"name\": \"Themify Icons\",\n    \"projectUrl\": \"https://github.com/lykmapipo/themify-icons\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://github.com/thecreation/standard-icons/blob/master/modules/themify-icons/LICENSE\"\n  },\n  {\n    \"id\": \"rx\",\n    \"name\": \"Radix Icons\",\n    \"projectUrl\": \"https://icons.radix-ui.com\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://github.com/radix-ui/icons/blob/master/LICENSE\"\n  },\n  {\n    \"id\": \"pi\",\n    \"name\": \"Phosphor Icons\",\n    \"projectUrl\": \"https://github.com/phosphor-icons/core\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://github.com/phosphor-icons/core/blob/main/LICENSE\"\n  },\n  {\n    \"id\": \"lia\",\n    \"name\": \"Icons8 Line Awesome\",\n    \"projectUrl\": \"https://icons8.com/line-awesome\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://github.com/icons8/line-awesome/blob/master/LICENSE.md\"\n  }\n]","import React from \"react\";\nexport var DefaultContext = {\n  color: undefined,\n  size: undefined,\n  className: undefined,\n  style: undefined,\n  attr: undefined\n};\nexport var IconContext = React.createContext && React.createContext(DefaultContext);","var __assign = this && this.__assign || function () {\n  __assign = Object.assign || function (t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n      s = arguments[i];\n      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n    }\n    return t;\n  };\n  return __assign.apply(this, arguments);\n};\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport React from \"react\";\nimport { IconContext, DefaultContext } from \"./iconContext\";\nfunction Tree2Element(tree) {\n  return tree && tree.map(function (node, i) {\n    return React.createElement(node.tag, __assign({\n      key: i\n    }, node.attr), Tree2Element(node.child));\n  });\n}\nexport function GenIcon(data) {\n  // eslint-disable-next-line react/display-name\n  return function (props) {\n    return React.createElement(IconBase, __assign({\n      attr: __assign({}, data.attr)\n    }, props), Tree2Element(data.child));\n  };\n}\nexport function IconBase(props) {\n  var elem = function (conf) {\n    var attr = props.attr,\n      size = props.size,\n      title = props.title,\n      svgProps = __rest(props, [\"attr\", \"size\", \"title\"]);\n    var computedSize = size || conf.size || \"1em\";\n    var className;\n    if (conf.className) className = conf.className;\n    if (props.className) className = (className ? className + \" \" : \"\") + props.className;\n    return React.createElement(\"svg\", __assign({\n      stroke: \"currentColor\",\n      fill: \"currentColor\",\n      strokeWidth: \"0\"\n    }, conf.attr, attr, svgProps, {\n      className: className,\n      style: __assign(__assign({\n        color: props.color || conf.color\n      }, conf.style), props.style),\n      height: computedSize,\n      width: computedSize,\n      xmlns: \"http://www.w3.org/2000/svg\"\n    }), title && React.createElement(\"title\", null, title), props.children);\n  };\n  return IconContext !== undefined ? React.createElement(IconContext.Consumer, null, function (conf) {\n    return elem(conf);\n  }) : elem(DefaultContext);\n}","// THIS FILE IS AUTO GENERATED\nimport { GenIcon } from '../lib';\nexport function LuAccessibility (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"4\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m18 19 1-7-6 1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m5 8 3-3 5.5 3-2.36 3.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.24 14.5a5 5 0 0 0 6.88 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.76 17.5a5 5 0 0 0-6.88-6\"}}]})(props);\n};\nexport function LuActivitySquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 12h-2l-2 5-2-10-2 5H7\"}}]})(props);\n};\nexport function LuActivity (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12h-4l-3 9L9 3l-3 9H2\"}}]})(props);\n};\nexport function LuAirVent (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 12H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 8h12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.3 17.7a2.5 2.5 0 0 1-3.16 3.83 2.53 2.53 0 0 1-1.14-2V12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.6 15.6A2 2 0 1 0 10 17v-5\"}}]})(props);\n};\nexport function LuAirplay (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1\"}},{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 15 17 21 7 21 12 15\"}}]})(props);\n};\nexport function LuAlarmCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"13\",\"r\":\"8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 3 2 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 6-3-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.38 18.7 4 21\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.64 18.67 20 21\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 13 2 2 4-4\"}}]})(props);\n};\nexport function LuAlarmClockOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.87 6.87a8 8 0 1 0 11.26 11.26\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.9 14.25a8 8 0 0 0-9.15-9.15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 6-3-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.26 18.67 4 21\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m2 2 20 20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4 2 6\"}}]})(props);\n};\nexport function LuAlarmClock (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"13\",\"r\":\"8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 9v4l2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 3 2 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 6-3-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.38 18.7 4 21\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.64 18.67 20 21\"}}]})(props);\n};\nexport function LuAlarmMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"13\",\"r\":\"8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 3 2 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 6-3-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.38 18.7 4 21\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.64 18.67 20 21\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 13h6\"}}]})(props);\n};\nexport function LuAlarmPlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"13\",\"r\":\"8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 3 2 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 6-3-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.38 18.7 4 21\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.64 18.67 20 21\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10v6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 13h6\"}}]})(props);\n};\nexport function LuAlbum (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"11 3 11 11 14 8 17 11 17 3\"}}]})(props);\n};\nexport function LuAlertCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"8\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12.01\",\"y1\":\"16\",\"y2\":\"16\"}}]})(props);\n};\nexport function LuAlertOctagon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"8\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12.01\",\"y1\":\"16\",\"y2\":\"16\"}}]})(props);\n};\nexport function LuAlertTriangle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 9v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17h.01\"}}]})(props);\n};\nexport function LuAlignCenterHorizontal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 12h20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 16v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 8V4a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 16v1a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2v-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 8V7c0-1.1.9-2 2-2h2a2 2 0 0 1 2 2v1\"}}]})(props);\n};\nexport function LuAlignCenterVertical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2v20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 10H4a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 10h4a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 20H7a2 2 0 0 1-2-2v-2c0-1.1.9-2 2-2h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 14h1a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2h-1\"}}]})(props);\n};\nexport function LuAlignCenter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"x2\":\"3\",\"y1\":\"6\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"x2\":\"7\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"x2\":\"5\",\"y1\":\"18\",\"y2\":\"18\"}}]})(props);\n};\nexport function LuAlignEndHorizontal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"6\",\"height\":\"16\",\"x\":\"4\",\"y\":\"2\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"6\",\"height\":\"9\",\"x\":\"14\",\"y\":\"9\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 22H2\"}}]})(props);\n};\nexport function LuAlignEndVertical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"16\",\"height\":\"6\",\"x\":\"2\",\"y\":\"4\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"9\",\"height\":\"6\",\"x\":\"9\",\"y\":\"14\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 22V2\"}}]})(props);\n};\nexport function LuAlignHorizontalDistributeCenter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"6\",\"height\":\"14\",\"x\":\"4\",\"y\":\"5\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"6\",\"height\":\"10\",\"x\":\"14\",\"y\":\"7\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 22v-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 7V2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 22v-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 5V2\"}}]})(props);\n};\nexport function LuAlignHorizontalDistributeEnd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"6\",\"height\":\"14\",\"x\":\"4\",\"y\":\"5\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"6\",\"height\":\"10\",\"x\":\"14\",\"y\":\"7\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 2v20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2v20\"}}]})(props);\n};\nexport function LuAlignHorizontalDistributeStart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"6\",\"height\":\"14\",\"x\":\"4\",\"y\":\"5\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"6\",\"height\":\"10\",\"x\":\"14\",\"y\":\"7\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 2v20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2v20\"}}]})(props);\n};\nexport function LuAlignHorizontalJustifyCenter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"6\",\"height\":\"14\",\"x\":\"2\",\"y\":\"5\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"6\",\"height\":\"10\",\"x\":\"16\",\"y\":\"7\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2v20\"}}]})(props);\n};\nexport function LuAlignHorizontalJustifyEnd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"6\",\"height\":\"14\",\"x\":\"2\",\"y\":\"5\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"6\",\"height\":\"10\",\"x\":\"12\",\"y\":\"7\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 2v20\"}}]})(props);\n};\nexport function LuAlignHorizontalJustifyStart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"6\",\"height\":\"14\",\"x\":\"6\",\"y\":\"5\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"6\",\"height\":\"10\",\"x\":\"16\",\"y\":\"7\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 2v20\"}}]})(props);\n};\nexport function LuAlignHorizontalSpaceAround (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"6\",\"height\":\"10\",\"x\":\"9\",\"y\":\"7\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 22V2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 22V2\"}}]})(props);\n};\nexport function LuAlignHorizontalSpaceBetween (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"6\",\"height\":\"14\",\"x\":\"3\",\"y\":\"5\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"6\",\"height\":\"10\",\"x\":\"15\",\"y\":\"7\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 2v20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 2v20\"}}]})(props);\n};\nexport function LuAlignJustify (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"6\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"18\",\"y2\":\"18\"}}]})(props);\n};\nexport function LuAlignLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"x2\":\"3\",\"y1\":\"6\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"x2\":\"3\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"x2\":\"3\",\"y1\":\"18\",\"y2\":\"18\"}}]})(props);\n};\nexport function LuAlignRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"x2\":\"3\",\"y1\":\"6\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"x2\":\"9\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"x2\":\"7\",\"y1\":\"18\",\"y2\":\"18\"}}]})(props);\n};\nexport function LuAlignStartHorizontal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"6\",\"height\":\"16\",\"x\":\"4\",\"y\":\"6\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"6\",\"height\":\"9\",\"x\":\"14\",\"y\":\"6\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 2H2\"}}]})(props);\n};\nexport function LuAlignStartVertical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"9\",\"height\":\"6\",\"x\":\"6\",\"y\":\"14\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"16\",\"height\":\"6\",\"x\":\"6\",\"y\":\"4\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 2v20\"}}]})(props);\n};\nexport function LuAlignVerticalDistributeCenter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"14\",\"height\":\"6\",\"x\":\"5\",\"y\":\"14\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"10\",\"height\":\"6\",\"x\":\"7\",\"y\":\"4\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 7h-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 7H1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 17h-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 17H2\"}}]})(props);\n};\nexport function LuAlignVerticalDistributeEnd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"14\",\"height\":\"6\",\"x\":\"5\",\"y\":\"14\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"10\",\"height\":\"6\",\"x\":\"7\",\"y\":\"4\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 20h20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 10h20\"}}]})(props);\n};\nexport function LuAlignVerticalDistributeStart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"14\",\"height\":\"6\",\"x\":\"5\",\"y\":\"14\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"10\",\"height\":\"6\",\"x\":\"7\",\"y\":\"4\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 14h20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 4h20\"}}]})(props);\n};\nexport function LuAlignVerticalJustifyCenter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"14\",\"height\":\"6\",\"x\":\"5\",\"y\":\"16\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"10\",\"height\":\"6\",\"x\":\"7\",\"y\":\"2\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 12h20\"}}]})(props);\n};\nexport function LuAlignVerticalJustifyEnd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"14\",\"height\":\"6\",\"x\":\"5\",\"y\":\"12\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"10\",\"height\":\"6\",\"x\":\"7\",\"y\":\"2\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 22h20\"}}]})(props);\n};\nexport function LuAlignVerticalJustifyStart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"14\",\"height\":\"6\",\"x\":\"5\",\"y\":\"16\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"10\",\"height\":\"6\",\"x\":\"7\",\"y\":\"6\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 2h20\"}}]})(props);\n};\nexport function LuAlignVerticalSpaceAround (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"10\",\"height\":\"6\",\"x\":\"7\",\"y\":\"9\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 20H2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 4H2\"}}]})(props);\n};\nexport function LuAlignVerticalSpaceBetween (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"14\",\"height\":\"6\",\"x\":\"5\",\"y\":\"15\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"10\",\"height\":\"6\",\"x\":\"7\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 21h20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 3h20\"}}]})(props);\n};\nexport function LuAmpersand (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.5 12c0 4.4-3.6 8-8 8A4.5 4.5 0 0 1 5 15.5c0-6 8-4 8-8.5a3 3 0 1 0-6 0c0 3 2.5 8.5 12 13\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 12h3\"}}]})(props);\n};\nexport function LuAmpersands (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 17c-5-3-7-7-7-9a2 2 0 0 1 4 0c0 2.5-5 2.5-5 6 0 1.7 1.3 3 3 3 2.8 0 5-2.2 5-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 17c-5-3-7-7-7-9a2 2 0 0 1 4 0c0 2.5-5 2.5-5 6 0 1.7 1.3 3 3 3 2.8 0 5-2.2 5-5\"}}]})(props);\n};\nexport function LuAnchor (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"r\":\"3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"22\",\"y2\":\"8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12H2a10 10 0 0 0 20 0h-3\"}}]})(props);\n};\nexport function LuAngry (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16s-1.5-2-4-2-4 2-4 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 8 10 9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14 9 2.5-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 10h0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 10h0\"}}]})(props);\n};\nexport function LuAnnoyed (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 15h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 9h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 9h2\"}}]})(props);\n};\nexport function LuAntenna (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 12 7 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m7 12 5-10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12 12 5-10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17 12 5-10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.5 7h15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 16v6\"}}]})(props);\n};\nexport function LuAperture (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.31\",\"x2\":\"20.05\",\"y1\":\"8\",\"y2\":\"17.94\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9.69\",\"x2\":\"21.17\",\"y1\":\"8\",\"y2\":\"8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"7.38\",\"x2\":\"13.12\",\"y1\":\"12\",\"y2\":\"2.06\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9.69\",\"x2\":\"3.95\",\"y1\":\"16\",\"y2\":\"6.06\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.31\",\"x2\":\"2.83\",\"y1\":\"16\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16.62\",\"x2\":\"10.88\",\"y1\":\"12\",\"y2\":\"21.94\"}}]})(props);\n};\nexport function LuAppWindow (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"4\",\"width\":\"20\",\"height\":\"16\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 4v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 8h20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 4v4\"}}]})(props);\n};\nexport function LuApple (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20.94c1.5 0 2.75 1.06 4 1.06 3 0 6-8 6-12.22A4.91 4.91 0 0 0 17 5c-2.22 0-4 1.44-5 2-1-.56-2.78-2-5-2a4.9 4.9 0 0 0-5 4.78C2 14 5 22 8 22c1.25 0 2.5-1.06 4-1.06Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 2c1 .5 2 2 2 5\"}}]})(props);\n};\nexport function LuArchiveRestore (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"5\",\"x\":\"2\",\"y\":\"4\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 13v7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 16 3-3 3 3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 9v9a2 2 0 0 0 2 2h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 9v9a2 2 0 0 1-2 2h-2\"}}]})(props);\n};\nexport function LuArchive (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"5\",\"x\":\"2\",\"y\":\"4\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 9v9a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 13h4\"}}]})(props);\n};\nexport function LuAreaChart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3v18h18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 12v5h12V8l-5 5-4-4Z\"}}]})(props);\n};\nexport function LuArmchair (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 9V6a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 11v5a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-5a2 2 0 0 0-4 0v2H7v-2a2 2 0 0 0-4 0Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 18v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 18v2\"}}]})(props);\n};\nexport function LuArrowBigDownDash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 5H9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 9v3h4l-7 7-7-7h4V9h6z\"}}]})(props);\n};\nexport function LuArrowBigDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 6v6h4l-7 7-7-7h4V6h6z\"}}]})(props);\n};\nexport function LuArrowBigLeftDash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 15V9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 15h-3v4l-7-7 7-7v4h3v6z\"}}]})(props);\n};\nexport function LuArrowBigLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 15h-6v4l-7-7 7-7v4h6v6z\"}}]})(props);\n};\nexport function LuArrowBigRightDash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 9v6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 9h3V5l7 7-7 7v-4H9V9z\"}}]})(props);\n};\nexport function LuArrowBigRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 9h6V5l7 7-7 7v-4H6V9z\"}}]})(props);\n};\nexport function LuArrowBigUpDash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 19h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 15v-3H5l7-7 7 7h-4v3H9z\"}}]})(props);\n};\nexport function LuArrowBigUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 18v-6H5l7-7 7 7h-4v6H9z\"}}]})(props);\n};\nexport function LuArrowDown01 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3 16 4 4 4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 20V4\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"15\",\"y\":\"4\",\"width\":\"4\",\"height\":\"6\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 20v-6h-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 20h4\"}}]})(props);\n};\nexport function LuArrowDown10 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3 16 4 4 4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 20V4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 10V4h-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 10h4\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"15\",\"y\":\"14\",\"width\":\"4\",\"height\":\"6\",\"ry\":\"2\"}}]})(props);\n};\nexport function LuArrowDownAZ (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3 16 4 4 4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 20V4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8h-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 10V6.5a2.5 2.5 0 0 1 5 0V10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 14h5l-5 6h5\"}}]})(props);\n};\nexport function LuArrowDownCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8v8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 12 4 4 4-4\"}}]})(props);\n};\nexport function LuArrowDownFromLine (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 21V7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m6 15 6 6 6-6\"}}]})(props);\n};\nexport function LuArrowDownLeftFromCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 12a10 10 0 1 1 10 10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m2 22 10-10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 22H2v-6\"}}]})(props);\n};\nexport function LuArrowDownLeftSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 8-8 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16H8V8\"}}]})(props);\n};\nexport function LuArrowDownLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 7 7 17\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 17H7V7\"}}]})(props);\n};\nexport function LuArrowDownNarrowWide (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3 16 4 4 4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 20V4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 4h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 8h7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 12h10\"}}]})(props);\n};\nexport function LuArrowDownRightFromCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22a10 10 0 1 1 10-10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 22 12 12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16v6h-6\"}}]})(props);\n};\nexport function LuArrowDownRightSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 8 8 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8v8H8\"}}]})(props);\n};\nexport function LuArrowDownRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7 7 10 10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 7v10H7\"}}]})(props);\n};\nexport function LuArrowDownSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8v8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 12 4 4 4-4\"}}]})(props);\n};\nexport function LuArrowDownToDot (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2v14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m19 9-7 7-7-7\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"21\",\"r\":\"1\"}}]})(props);\n};\nexport function LuArrowDownToLine (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17V3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m6 11 6 6 6-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 21H5\"}}]})(props);\n};\nexport function LuArrowDownUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3 16 4 4 4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 20V4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21 8-4-4-4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 4v16\"}}]})(props);\n};\nexport function LuArrowDownWideNarrow (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3 16 4 4 4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 20V4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 4h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 8h7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 12h4\"}}]})(props);\n};\nexport function LuArrowDownZA (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3 16 4 4 4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 4v16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 4h5l-5 6h5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 20v-3.5a2.5 2.5 0 0 1 5 0V20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18h-5\"}}]})(props);\n};\nexport function LuArrowDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5v14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m19 12-7 7-7-7\"}}]})(props);\n};\nexport function LuArrowLeftCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 12H8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12 8-4 4 4 4\"}}]})(props);\n};\nexport function LuArrowLeftFromLine (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m9 6-6 6 6 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 12h14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 19V5\"}}]})(props);\n};\nexport function LuArrowLeftRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 3 4 7l4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 7h16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 21 4-4-4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 17H4\"}}]})(props);\n};\nexport function LuArrowLeftSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12 8-4 4 4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 12H8\"}}]})(props);\n};\nexport function LuArrowLeftToLine (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 19V5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m13 6-6 6 6 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 12h14\"}}]})(props);\n};\nexport function LuArrowLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12 19-7-7 7-7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 12H5\"}}]})(props);\n};\nexport function LuArrowRightCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 12h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12 16 4-4-4-4\"}}]})(props);\n};\nexport function LuArrowRightFromLine (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5v14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12H7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 18 6-6-6-6\"}}]})(props);\n};\nexport function LuArrowRightLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m16 3 4 4-4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 7H4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 21-4-4 4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 17h16\"}}]})(props);\n};\nexport function LuArrowRightSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 12h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12 16 4-4-4-4\"}}]})(props);\n};\nexport function LuArrowRightToLine (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 12H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m11 18 6-6-6-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 5v14\"}}]})(props);\n};\nexport function LuArrowRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12h14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12 5 7 7-7 7\"}}]})(props);\n};\nexport function LuArrowUp01 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3 8 4-4 4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 4v16\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"15\",\"y\":\"4\",\"width\":\"4\",\"height\":\"6\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 20v-6h-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 20h4\"}}]})(props);\n};\nexport function LuArrowUp10 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3 8 4-4 4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 4v16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 10V4h-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 10h4\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"15\",\"y\":\"14\",\"width\":\"4\",\"height\":\"6\",\"ry\":\"2\"}}]})(props);\n};\nexport function LuArrowUpAZ (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3 8 4-4 4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 4v16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8h-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 10V6.5a2.5 2.5 0 0 1 5 0V10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 14h5l-5 6h5\"}}]})(props);\n};\nexport function LuArrowUpCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 12-4-4-4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 16V8\"}}]})(props);\n};\nexport function LuArrowUpDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21 16-4 4-4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 20V4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m3 8 4-4 4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 4v16\"}}]})(props);\n};\nexport function LuArrowUpFromDot (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m5 9 7-7 7 7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 16V2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"21\",\"r\":\"1\"}}]})(props);\n};\nexport function LuArrowUpFromLine (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m18 9-6-6-6 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3v14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 21h14\"}}]})(props);\n};\nexport function LuArrowUpLeftFromCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 8V2h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m2 2 10 10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2A10 10 0 1 1 2 12\"}}]})(props);\n};\nexport function LuArrowUpLeftSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 16V8h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16 8 8\"}}]})(props);\n};\nexport function LuArrowUpLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 17V7h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 17 7 7\"}}]})(props);\n};\nexport function LuArrowUpNarrowWide (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3 8 4-4 4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 4v16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 12h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 16h7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 20h10\"}}]})(props);\n};\nexport function LuArrowUpRightFromCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12A10 10 0 1 1 12 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 2 12 12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 2h6v6\"}}]})(props);\n};\nexport function LuArrowUpRightSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 8h8v8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 16 8-8\"}}]})(props);\n};\nexport function LuArrowUpRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 7h10v10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 17 17 7\"}}]})(props);\n};\nexport function LuArrowUpSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 12-4-4-4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 16V8\"}}]})(props);\n};\nexport function LuArrowUpToLine (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 3h14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m18 13-6-6-6 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7v14\"}}]})(props);\n};\nexport function LuArrowUpWideNarrow (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3 8 4-4 4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 4v16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 12h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 16h7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 20h4\"}}]})(props);\n};\nexport function LuArrowUpZA (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3 8 4-4 4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 4v16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 4h5l-5 6h5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 20v-3.5a2.5 2.5 0 0 1 5 0V20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18h-5\"}}]})(props);\n};\nexport function LuArrowUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m5 12 7-7 7 7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 19V5\"}}]})(props);\n};\nexport function LuArrowsUpFromLine (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m4 6 3-3 3 3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 17V3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14 6 3-3 3 3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 17V3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 21h16\"}}]})(props);\n};\nexport function LuAsterisk (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6v12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.196 9 6.804 15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m6.804 9 10.392 6\"}}]})(props);\n};\nexport function LuAtSign (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8\"}}]})(props);\n};\nexport function LuAtom (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.2 20.2c2.04-2.03.02-7.36-4.5-11.9-4.54-4.52-9.87-6.54-11.9-4.5-2.04 2.03-.02 7.36 4.5 11.9 4.54 4.52 9.87 6.54 11.9 4.5Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.7 15.7c4.52-4.54 6.54-9.87 4.5-11.9-2.03-2.04-7.36-.02-11.9 4.5-4.52 4.54-6.54 9.87-4.5 11.9 2.03 2.04 7.36.02 11.9-4.5Z\"}}]})(props);\n};\nexport function LuAward (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"8\",\"r\":\"6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.477 12.89 17 22l-5-3-5 3 1.523-9.11\"}}]})(props);\n};\nexport function LuAxe (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m14 12-8.5 8.5a2.12 2.12 0 1 1-3-3L11 9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 13 9 7l4-4 6 6h3a8 8 0 0 1-7 7z\"}}]})(props);\n};\nexport function LuAxis3D (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4v16h16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m4 20 7-7\"}}]})(props);\n};\nexport function LuBaby (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 12h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 12h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 16c.5.3 1.2.5 2 .5s1.5-.2 2-.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6.3a9 9 0 0 1 1.8 3.9 2 2 0 0 1 0 3.6 9 9 0 0 1-17.6 0 2 2 0 0 1 0-3.6A9 9 0 0 1 12 3c2 0 3.5 1.1 3.5 2.5s-.9 2.5-2 2.5c-.8 0-1.5-.4-1.5-1\"}}]})(props);\n};\nexport function LuBackpack (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20V10a4 4 0 0 1 4-4h8a4 4 0 0 1 4 4v10a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 6V4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 21v-5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 10h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 18h8\"}}]})(props);\n};\nexport function LuBadgeAlert (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"8\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12.01\",\"y1\":\"16\",\"y2\":\"16\"}}]})(props);\n};\nexport function LuBadgeCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 12 2 2 4-4\"}}]})(props);\n};\nexport function LuBadgeDollarSign (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18V6\"}}]})(props);\n};\nexport function LuBadgeHelp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12.01\",\"y1\":\"17\",\"y2\":\"17\"}}]})(props);\n};\nexport function LuBadgeInfo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"16\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12.01\",\"y1\":\"8\",\"y2\":\"8\"}}]})(props);\n};\nexport function LuBadgeMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"16\",\"y1\":\"12\",\"y2\":\"12\"}}]})(props);\n};\nexport function LuBadgePercent (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 9-6 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 9h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 15h.01\"}}]})(props);\n};\nexport function LuBadgePlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"8\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"16\",\"y1\":\"12\",\"y2\":\"12\"}}]})(props);\n};\nexport function LuBadgeX (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"x2\":\"9\",\"y1\":\"9\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"x2\":\"15\",\"y1\":\"9\",\"y2\":\"15\"}}]})(props);\n};\nexport function LuBadge (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\"}}]})(props);\n};\nexport function LuBaggageClaim (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 18H6a2 2 0 0 1-2-2V7a2 2 0 0 0-2-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 14V4a2 2 0 0 0-2-2h-1a2 2 0 0 0-2 2v10\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"13\",\"height\":\"8\",\"x\":\"8\",\"y\":\"6\",\"rx\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"20\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"20\",\"r\":\"2\"}}]})(props);\n};\nexport function LuBan (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m4.9 4.9 14.2 14.2\"}}]})(props);\n};\nexport function LuBanana (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 13c3.5-2 8-2 10 2a5.5 5.5 0 0 1 8 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.15 17.89c5.52-1.52 8.65-6.89 7-12C11.55 4 11.5 2 13 2c3.22 0 5 5.5 5 8 0 6.5-4.2 12-10.49 12C5.11 22 2 22 2 20c0-1.5 1.14-1.55 3.15-2.11Z\"}}]})(props);\n};\nexport function LuBanknote (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"12\",\"x\":\"2\",\"y\":\"6\",\"rx\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 12h.01M18 12h.01\"}}]})(props);\n};\nexport function LuBarChart2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"x2\":\"18\",\"y1\":\"20\",\"y2\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"20\",\"y2\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"x2\":\"6\",\"y1\":\"20\",\"y2\":\"14\"}}]})(props);\n};\nexport function LuBarChart3 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3v18h18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 17V9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 17V5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 17v-3\"}}]})(props);\n};\nexport function LuBarChart4 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3v18h18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 17V9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 17V5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 17v-3\"}}]})(props);\n};\nexport function LuBarChartBig (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3v18h18\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"4\",\"height\":\"7\",\"x\":\"7\",\"y\":\"10\",\"rx\":\"1\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"4\",\"height\":\"12\",\"x\":\"15\",\"y\":\"5\",\"rx\":\"1\"}}]})(props);\n};\nexport function LuBarChartHorizontalBig (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3v18h18\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"12\",\"height\":\"4\",\"x\":\"7\",\"y\":\"5\",\"rx\":\"1\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"7\",\"height\":\"4\",\"x\":\"7\",\"y\":\"13\",\"rx\":\"1\"}}]})(props);\n};\nexport function LuBarChartHorizontal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3v18h18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 16h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11h12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 6h3\"}}]})(props);\n};\nexport function LuBarChart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"20\",\"y2\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"x2\":\"18\",\"y1\":\"20\",\"y2\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"x2\":\"6\",\"y1\":\"20\",\"y2\":\"16\"}}]})(props);\n};\nexport function LuBaseline (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m6 16 6-12 6 12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 12h8\"}}]})(props);\n};\nexport function LuBath (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 6 6.5 3.5a1.5 1.5 0 0 0-1-.5C4.683 3 4 3.683 4 4.5V17a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"x2\":\"8\",\"y1\":\"5\",\"y2\":\"7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"x2\":\"7\",\"y1\":\"19\",\"y2\":\"21\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"x2\":\"17\",\"y1\":\"19\",\"y2\":\"21\"}}]})(props);\n};\nexport function LuBatteryCharging (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 7h1a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2h-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 7H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m11 7-3 5h4l-3 5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"x2\":\"22\",\"y1\":\"11\",\"y2\":\"13\"}}]})(props);\n};\nexport function LuBatteryFull (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"16\",\"height\":\"10\",\"x\":\"2\",\"y\":\"7\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"x2\":\"22\",\"y1\":\"11\",\"y2\":\"13\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"x2\":\"6\",\"y1\":\"11\",\"y2\":\"13\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"x2\":\"10\",\"y1\":\"11\",\"y2\":\"13\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"x2\":\"14\",\"y1\":\"11\",\"y2\":\"13\"}}]})(props);\n};\nexport function LuBatteryLow (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"16\",\"height\":\"10\",\"x\":\"2\",\"y\":\"7\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"x2\":\"22\",\"y1\":\"11\",\"y2\":\"13\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"x2\":\"6\",\"y1\":\"11\",\"y2\":\"13\"}}]})(props);\n};\nexport function LuBatteryMedium (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"16\",\"height\":\"10\",\"x\":\"2\",\"y\":\"7\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"x2\":\"22\",\"y1\":\"11\",\"y2\":\"13\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"x2\":\"6\",\"y1\":\"11\",\"y2\":\"13\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"x2\":\"10\",\"y1\":\"11\",\"y2\":\"13\"}}]})(props);\n};\nexport function LuBatteryWarning (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 7h2a2 2 0 0 1 2 2v6c0 1-1 2-2 2h-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 7H4a2 2 0 0 0-2 2v6c0 1 1 2 2 2h2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"x2\":\"22\",\"y1\":\"11\",\"y2\":\"13\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"x2\":\"10\",\"y1\":\"7\",\"y2\":\"13\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"x2\":\"10\",\"y1\":\"17\",\"y2\":\"17.01\"}}]})(props);\n};\nexport function LuBattery (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"16\",\"height\":\"10\",\"x\":\"2\",\"y\":\"7\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"x2\":\"22\",\"y1\":\"11\",\"y2\":\"13\"}}]})(props);\n};\nexport function LuBeaker (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.5 3h15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 3v16a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 14h12\"}}]})(props);\n};\nexport function LuBeanOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 9c-.64.64-1.521.954-2.402 1.165A6 6 0 0 0 8 22a13.96 13.96 0 0 0 9.9-4.1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.75 5.093A6 6 0 0 1 22 8c0 2.411-.61 4.68-1.683 6.66\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.341 10.62a4 4 0 0 0 6.487 1.208M10.62 5.341a4.015 4.015 0 0 1 2.039 2.04\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuBean (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.165 6.598C9.954 7.478 9.64 8.36 9 9c-.64.64-1.521.954-2.402 1.165A6 6 0 0 0 8 22c7.732 0 14-6.268 14-14a6 6 0 0 0-11.835-1.402Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.341 10.62a4 4 0 1 0 5.279-5.28\"}}]})(props);\n};\nexport function LuBedDouble (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 20v-8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 10V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4v6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 18h20\"}}]})(props);\n};\nexport function LuBedSingle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 20v-8a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 10V6a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 18h18\"}}]})(props);\n};\nexport function LuBed (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 4v16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 8h18a2 2 0 0 1 2 2v10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 17h20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 8v9\"}}]})(props);\n};\nexport function LuBeef (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12.5\",\"cy\":\"8.5\",\"r\":\"2.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.5 2a6.5 6.5 0 0 0-6.22 4.6c-1.1 3.13-.78 3.9-3.18 6.08A3 3 0 0 0 5 18c4 0 8.4-1.8 11.4-4.3A6.5 6.5 0 0 0 12.5 2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m18.5 6 2.19 4.5a6.48 6.48 0 0 1 .31 2 6.49 6.49 0 0 1-2.6 5.2C15.4 20.2 11 22 7 22a3 3 0 0 1-2.68-1.66L2.4 16.5\"}}]})(props);\n};\nexport function LuBeer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 11h1a3 3 0 0 1 0 6h-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 12v6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 12v6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 7.5c-1 0-1.44.5-3 .5s-2-.5-3-.5-1.72.5-2.5.5a2.5 2.5 0 0 1 0-5c.78 0 1.57.5 2.5.5S9.44 2 11 2s2 1.5 3 1.5 1.72-.5 2.5-.5a2.5 2.5 0 0 1 0 5c-.78 0-1.5-.5-2.5-.5Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 8v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8\"}}]})(props);\n};\nexport function LuBellDot (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.4 14.9C20.2 16.4 21 17 21 17H3s3-2 3-9c0-3.3 2.7-6 6-6 .7 0 1.3.1 1.9.3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.3 21a1.94 1.94 0 0 0 3.4 0\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"8\",\"r\":\"3\"}}]})(props);\n};\nexport function LuBellMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.4 12c.8 3.8 2.6 5 2.6 5H3s3-2 3-9c0-3.3 2.7-6 6-6 1.8 0 3.4.8 4.5 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.3 21a1.94 1.94 0 0 0 3.4 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 8h6\"}}]})(props);\n};\nexport function LuBellOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.7 3A6 6 0 0 1 18 8a21.3 21.3 0 0 0 .6 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 17H3s3-2 3-9a4.67 4.67 0 0 1 .3-1.7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.3 21a1.94 1.94 0 0 0 3.4 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m2 2 20 20\"}}]})(props);\n};\nexport function LuBellPlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.3 14.8C20.1 16.4 21 17 21 17H3s3-2 3-9c0-3.3 2.7-6 6-6 1 0 1.9.2 2.8.7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.3 21a1.94 1.94 0 0 0 3.4 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 8h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 5v6\"}}]})(props);\n};\nexport function LuBellRing (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.3 21a1.94 1.94 0 0 0 3.4 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 2C2.8 3.7 2 5.7 2 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 8c0-2.3-.8-4.3-2-6\"}}]})(props);\n};\nexport function LuBell (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.3 21a1.94 1.94 0 0 0 3.4 0\"}}]})(props);\n};\nexport function LuBike (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18.5\",\"cy\":\"17.5\",\"r\":\"3.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5.5\",\"cy\":\"17.5\",\"r\":\"3.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"5\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17.5V14l-3-3 4-3 2 3h2\"}}]})(props);\n};\nexport function LuBinary (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"14\",\"width\":\"4\",\"height\":\"6\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"4\",\"width\":\"4\",\"height\":\"6\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 20h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 10h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 14h2v6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 4h2v6\"}}]})(props);\n};\nexport function LuBiohazard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"11.9\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.7 3.4c-.9 2.5 0 5.2 2.2 6.7C6.5 9 3.7 9.6 2 11.6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8.9 10.1 1.4.8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.3 3.4c.9 2.5 0 5.2-2.2 6.7 2.4-1.2 5.2-.6 6.9 1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15.1 10.1-1.4.8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.7 20.8c-2.6-.4-4.6-2.6-4.7-5.3-.2 2.6-2.1 4.8-4.7 5.2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 13.9v1.6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.5 5.4c-1-.2-2-.2-3 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 16.4c.7-.7 1.2-1.6 1.5-2.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.5 13.9c.3.9.8 1.8 1.5 2.5\"}}]})(props);\n};\nexport function LuBird (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 7h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.4 18H12a8 8 0 0 0 8-8V7a4 4 0 0 0-7.28-2.3L2 20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m20 7 2 .5-2 .5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 18v3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 17.75V21\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 18a6 6 0 0 0 3.84-10.61\"}}]})(props);\n};\nexport function LuBitcoin (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.767 19.089c4.924.868 6.14-6.025 1.216-6.894m-1.216 6.894L5.86 18.047m5.908 1.042-.347 1.97m1.563-8.864c4.924.869 6.14-6.025 1.215-6.893m-1.215 6.893-3.94-.694m5.155-6.2L8.29 4.26m5.908 1.042.348-1.97M7.48 20.364l3.126-17.727\"}}]})(props);\n};\nexport function LuBlinds (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3h18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 7H8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 11H8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 19h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 15h12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 3v14\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"4\",\"cy\":\"19\",\"r\":\"2\"}}]})(props);\n};\nexport function LuBluetoothConnected (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7 7 10 10-5 5V2l5 5L7 17\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"x2\":\"21\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"6\",\"y1\":\"12\",\"y2\":\"12\"}}]})(props);\n};\nexport function LuBluetoothOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m17 17-5 5V12l-5 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m2 2 20 20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 9.5 17 7l-5-5v4.5\"}}]})(props);\n};\nexport function LuBluetoothSearching (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7 7 10 10-5 5V2l5 5L7 17\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.83 14.83a4 4 0 0 0 0-5.66\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 12h.01\"}}]})(props);\n};\nexport function LuBluetooth (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7 7 10 10-5 5V2l5 5L7 17\"}}]})(props);\n};\nexport function LuBold (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 12a4 4 0 0 0 0-8H6v8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 20a4 4 0 0 0 0-8H6v8Z\"}}]})(props);\n};\nexport function LuBomb (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"13\",\"r\":\"9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m19.5 9.5 1.8-1.8a2.4 2.4 0 0 0 0-3.4l-1.6-1.6a2.41 2.41 0 0 0-3.4 0l-1.8 1.8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 2-1.5 1.5\"}}]})(props);\n};\nexport function LuBone (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 10c.7-.7 1.69 0 2.5 0a2.5 2.5 0 1 0 0-5 .5.5 0 0 1-.5-.5 2.5 2.5 0 1 0-5 0c0 .81.7 1.8 0 2.5l-7 7c-.7.7-1.69 0-2.5 0a2.5 2.5 0 0 0 0 5c.28 0 .5.22.5.5a2.5 2.5 0 1 0 5 0c0-.81-.7-1.8 0-2.5Z\"}}]})(props);\n};\nexport function LuBookCopy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 16V4a2 2 0 0 1 2-2h11\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 14H4a2 2 0 1 0 0 4h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 18H11a2 2 0 1 0 0 4h11V6H11a2 2 0 0 0-2 2v12\"}}]})(props);\n};\nexport function LuBookDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H20v20H6.5a2.5 2.5 0 0 1 0-5H20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 13V7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 10 3 3 3-3\"}}]})(props);\n};\nexport function LuBookKey (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8v14H6.5a2.5 2.5 0 0 1 0-5H20\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"14\",\"cy\":\"8\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m20 2-4.5 4.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m19 3 1 1\"}}]})(props);\n};\nexport function LuBookLock (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 15v7H6.5a2.5 2.5 0 0 1 0-5H20\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"5\",\"x\":\"12\",\"y\":\"6\",\"rx\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 6V4a2 2 0 1 0-4 0v2\"}}]})(props);\n};\nexport function LuBookMarked (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H20v20H6.5a2.5 2.5 0 0 1 0-5H20\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 2 10 10 13 7 16 10 16 2\"}}]})(props);\n};\nexport function LuBookMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H20v20H6.5a2.5 2.5 0 0 1 0-5H20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 10h6\"}}]})(props);\n};\nexport function LuBookOpenCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 3H2v15h7c1.7 0 3 1.3 3 3V7c0-2.2-1.8-4-4-4Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 12 2 2 4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 6V3h-6c-2.2 0-4 1.8-4 4v14c0-1.7 1.3-3 3-3h7v-2.3\"}}]})(props);\n};\nexport function LuBookOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"}}]})(props);\n};\nexport function LuBookPlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H20v20H6.5a2.5 2.5 0 0 1 0-5H20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 10h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7v6\"}}]})(props);\n};\nexport function LuBookTemplate (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 22h-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 15v2h-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 19.5V15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8v3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2h2v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 11V9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 22H6.5a2.5 2.5 0 0 1 0-5H8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 5v-.5A2.5 2.5 0 0 1 6.5 2H8\"}}]})(props);\n};\nexport function LuBookUp2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2h2v20H6.5a2.5 2.5 0 0 1 0-5H20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 13V7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 10 3-3 3 3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 5 3-3 3 3\"}}]})(props);\n};\nexport function LuBookUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H20v20H6.5a2.5 2.5 0 0 1 0-5H20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 13V7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 10 3-3 3 3\"}}]})(props);\n};\nexport function LuBookX (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H20v20H6.5a2.5 2.5 0 0 1 0-5H20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14.5 7-5 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9.5 7 5 5\"}}]})(props);\n};\nexport function LuBook (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H20v20H6.5a2.5 2.5 0 0 1 0-5H20\"}}]})(props);\n};\nexport function LuBookmarkMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"x2\":\"9\",\"y1\":\"10\",\"y2\":\"10\"}}]})(props);\n};\nexport function LuBookmarkPlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"7\",\"y2\":\"13\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"x2\":\"9\",\"y1\":\"10\",\"y2\":\"10\"}}]})(props);\n};\nexport function LuBookmark (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z\"}}]})(props);\n};\nexport function LuBoomBox (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 9V5a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 8v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8v1\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"12\",\"x\":\"2\",\"y\":\"9\",\"rx\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"15\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"15\",\"r\":\"2\"}}]})(props);\n};\nexport function LuBot (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"10\",\"x\":\"3\",\"y\":\"11\",\"rx\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7v4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"8\",\"y1\":\"16\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"16\",\"y1\":\"16\",\"y2\":\"16\"}}]})(props);\n};\nexport function LuBoxSelect (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 3a2 2 0 0 0-2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3a2 2 0 0 1 2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 19a2 2 0 0 1-2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 21a2 2 0 0 1-2-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 3h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 21h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 3h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 21h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 9v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 14v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 14v1\"}}]})(props);\n};\nexport function LuBox (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.29 7 12 12 20.71 7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"22\",\"y2\":\"12\"}}]})(props);\n};\nexport function LuBoxes (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m7 16.5-4.74-2.85\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m7 16.5 5-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 16.5v5.17\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17 16.5-5-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17 16.5 4.74-2.85\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 16.5v5.17\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8 7.26 5.15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12 8 4.74-2.85\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 13.5V8\"}}]})(props);\n};\nexport function LuBraces (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1\"}}]})(props);\n};\nexport function LuBrackets (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 3h3v18h-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 21H5V3h3\"}}]})(props);\n};\nexport function LuBrainCircuit (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4.5a2.5 2.5 0 0 0-4.96-.46 2.5 2.5 0 0 0-1.98 3 2.5 2.5 0 0 0-1.32 4.24 3 3 0 0 0 .34 5.58 2.5 2.5 0 0 0 2.96 3.08 2.5 2.5 0 0 0 4.91.05L12 20V4.5Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8V5c0-1.1.9-2 2-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 13h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18h6a2 2 0 0 1 2 2v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.5 8a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 13a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.5 21a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 3a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0Z\"}}]})(props);\n};\nexport function LuBrainCog (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4.5a2.5 2.5 0 0 0-4.96-.46 2.5 2.5 0 0 0-1.98 3 2.5 2.5 0 0 0-1.32 4.24 3 3 0 0 0 .34 5.58 2.5 2.5 0 0 0 2.96 3.08A2.5 2.5 0 0 0 9.5 22c1.21 0 2.5-.74 2.5-2.5m0-15a2.5 2.5 0 0 1 4.96-.46 2.5 2.5 0 0 1 1.98 3 2.5 2.5 0 0 1 1.32 4.24 3 3 0 0 1-.34 5.58 2.5 2.5 0 0 1-2.96 3.08A2.5 2.5 0 0 1 14.5 22c-1.21 0-2.5-.74-2.5-2.5m0-15V5m0 14.5V19\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 9v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 14v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14.6 10.5-.87.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10.27 13-.87.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14.6 13.5-.87-.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10.27 11-.87-.5\"}}]})(props);\n};\nexport function LuBrain (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 2A2.5 2.5 0 0 1 12 4.5v15a2.5 2.5 0 0 1-4.96.44 2.5 2.5 0 0 1-2.96-3.08 3 3 0 0 1-.34-5.58 2.5 2.5 0 0 1 1.32-4.24 2.5 2.5 0 0 1 1.98-3A2.5 2.5 0 0 1 9.5 2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2A2.5 2.5 0 0 0 12 4.5v15a2.5 2.5 0 0 0 4.96.44 2.5 2.5 0 0 0 2.96-3.08 3 3 0 0 0 .34-5.58 2.5 2.5 0 0 0-1.32-4.24 2.5 2.5 0 0 0-1.98-3A2.5 2.5 0 0 0 14.5 2Z\"}}]})(props);\n};\nexport function LuBriefcase (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"14\",\"x\":\"2\",\"y\":\"7\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"}}]})(props);\n};\nexport function LuBringToFront (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"8\",\"y\":\"8\",\"width\":\"8\",\"height\":\"8\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 10a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 20a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2\"}}]})(props);\n};\nexport function LuBrush (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m9.06 11.9 8.07-8.06a2.85 2.85 0 1 1 4.03 4.03l-8.06 8.08\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.07 14.94c-1.66 0-3 1.35-3 3.02 0 1.33-2.5 1.52-2 2.02 1.08 1.1 2.49 2.02 4 2.02 2.2 0 4-1.8 4-4.04a3.01 3.01 0 0 0-3-3.02z\"}}]})(props);\n};\nexport function LuBug (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"14\",\"x\":\"8\",\"y\":\"6\",\"rx\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m19 7-3 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m5 7 3 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m19 19-3-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m5 19 3-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 13h-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 13h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10 4 1 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14 4-1 2\"}}]})(props);\n};\nexport function LuBuilding2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 6h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 10h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 14h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 18h4\"}}]})(props);\n};\nexport function LuBuilding (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"16\",\"height\":\"20\",\"x\":\"4\",\"y\":\"2\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 22v-4h6v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 6h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 6h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 14h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 10h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 14h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 10h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 14h.01\"}}]})(props);\n};\nexport function LuBus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 17h2l.64-2.54c.24-.959.24-1.962 0-2.92l-1.07-4.27A3 3 0 0 0 17.66 5H4a2 2 0 0 0-2 2v10h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 17H9\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.5\",\"cy\":\"17.5\",\"r\":\"2.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16.5\",\"cy\":\"17.5\",\"r\":\"2.5\"}}]})(props);\n};\nexport function LuCable (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 9a2 2 0 0 1-2-2V5h6v2a2 2 0 0 1-2 2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5V3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 5V3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 15V6.5a3.5 3.5 0 0 0-7 0v11a3.5 3.5 0 0 1-7 0V9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 21v-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 21v-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19h-6v-2a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2Z\"}}]})(props);\n};\nexport function LuCakeSlice (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"7\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.2 7.9 3 11v9c0 .6.4 1 1 1h16c.6 0 1-.4 1-1v-9c0-2-3-6-7-8l-3.6 2.6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 13H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 17H3\"}}]})(props);\n};\nexport function LuCake (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 21v-8a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 16s.5-1 2-1 2.5 2 4 2 2.5-2 4-2 2.5 2 4 2 2-1 2-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 21h20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 8v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 8v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 4h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 4h.01\"}}]})(props);\n};\nexport function LuCalculator (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"16\",\"height\":\"20\",\"x\":\"4\",\"y\":\"2\",\"rx\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"16\",\"y1\":\"6\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"16\",\"y1\":\"14\",\"y2\":\"18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 10h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 10h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 14h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 14h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 18h.01\"}}]})(props);\n};\nexport function LuCalendarCheck2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 14V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"16\",\"y1\":\"2\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"8\",\"y1\":\"2\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"10\",\"y2\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 20 2 2 4-4\"}}]})(props);\n};\nexport function LuCalendarCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"16\",\"y1\":\"2\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"8\",\"y1\":\"2\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"10\",\"y2\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 16 2 2 4-4\"}}]})(props);\n};\nexport function LuCalendarClock (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 2v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 2v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 10h5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.5 17.5 16 16.25V14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16a6 6 0 1 1-12 0 6 6 0 0 1 12 0Z\"}}]})(props);\n};\nexport function LuCalendarDays (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"16\",\"y1\":\"2\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"8\",\"y1\":\"2\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"10\",\"y2\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 14h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 14h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 14h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 18h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 18h.01\"}}]})(props);\n};\nexport function LuCalendarHeart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 10V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 2v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 2v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 10h18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.29 14.7a2.43 2.43 0 0 0-2.65-.52c-.3.12-.57.3-.8.53l-.34.34-.35-.34a2.43 2.43 0 0 0-2.65-.53c-.3.12-.56.3-.79.53-.95.94-1 2.53.2 3.74L17.5 22l3.6-3.55c1.2-1.21 1.14-2.8.19-3.74Z\"}}]})(props);\n};\nexport function LuCalendarMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 13V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"16\",\"y1\":\"2\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"8\",\"y1\":\"2\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"10\",\"y2\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"22\",\"y1\":\"19\",\"y2\":\"19\"}}]})(props);\n};\nexport function LuCalendarOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.18 4.18A2 2 0 0 0 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 1.82-1.18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15.5V6a2 2 0 0 0-2-2H9.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 2v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 10h7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 10h-5.5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuCalendarPlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 13V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"16\",\"y1\":\"2\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"8\",\"y1\":\"2\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"10\",\"y2\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"x2\":\"19\",\"y1\":\"16\",\"y2\":\"22\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"22\",\"y1\":\"19\",\"y2\":\"19\"}}]})(props);\n};\nexport function LuCalendarRange (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"16\",\"y1\":\"2\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"8\",\"y1\":\"2\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"10\",\"y2\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 14h-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 18H7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 14h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 18h.01\"}}]})(props);\n};\nexport function LuCalendarSearch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h7.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 2v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 2v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 10h18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6v0Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 22-1.5-1.5\"}}]})(props);\n};\nexport function LuCalendarX2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 13V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"16\",\"y1\":\"2\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"8\",\"y1\":\"2\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"10\",\"y2\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"x2\":\"22\",\"y1\":\"17\",\"y2\":\"22\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"x2\":\"22\",\"y1\":\"22\",\"y2\":\"17\"}}]})(props);\n};\nexport function LuCalendarX (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"16\",\"y1\":\"2\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"8\",\"y1\":\"2\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"10\",\"y2\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"x2\":\"14\",\"y1\":\"14\",\"y2\":\"18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"x2\":\"10\",\"y1\":\"14\",\"y2\":\"18\"}}]})(props);\n};\nexport function LuCalendar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"16\",\"y1\":\"2\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"8\",\"y1\":\"2\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"10\",\"y2\":\"10\"}}]})(props);\n};\nexport function LuCameraOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 4h5L17 7h3a2 2 0 0 1 2 2v7.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.121 15.121A3 3 0 1 1 9.88 10.88\"}}]})(props);\n};\nexport function LuCamera (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"13\",\"r\":\"3\"}}]})(props);\n};\nexport function LuCandlestickChart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 5v4\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"4\",\"height\":\"6\",\"x\":\"7\",\"y\":\"9\",\"rx\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 15v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3v2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"4\",\"height\":\"8\",\"x\":\"15\",\"y\":\"5\",\"rx\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 13v3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3v18h18\"}}]})(props);\n};\nexport function LuCandyCane (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.7 21a2 2 0 0 1-3.5-2l8.6-14a6 6 0 0 1 10.4 6 2 2 0 1 1-3.464-2 2 2 0 1 0-3.464-2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.75 7 15 2.1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.9 4.8 13 9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m7.9 9.7 2 4.4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.9 14.7 7 18.9\"}}]})(props);\n};\nexport function LuCandyOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m8.5 8.5-1 1a4.95 4.95 0 0 0 7 7l1-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.843 6.187A4.947 4.947 0 0 1 16.5 7.5a4.947 4.947 0 0 1 1.313 4.657\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 16.5V14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 6.5v1.843\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 10v7.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 7 1-5 1.367.683A3 3 0 0 0 19.708 3H21v1.292a3 3 0 0 0 .317 1.341L22 7l-5 1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 17-1 5-1.367-.683A3 3 0 0 0 4.292 21H3v-1.292a3 3 0 0 0-.317-1.341L2 17l5-1\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuCandy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m9.5 7.5-2 2a4.95 4.95 0 1 0 7 7l2-2a4.95 4.95 0 1 0-7-7Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 6.5v10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 7.5v10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 7 1-5 1.37.68A3 3 0 0 0 19.7 3H21v1.3c0 .46.1.92.32 1.33L22 7l-5 1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 17-1 5-1.37-.68A3 3 0 0 0 4.3 21H3v-1.3a3 3 0 0 0-.32-1.33L2 17l5-1\"}}]})(props);\n};\nexport function LuCar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 16H9m10 0h3v-3.15a1 1 0 0 0-.84-.99L16 11l-2.7-3.6a1 1 0 0 0-.8-.4H5.24a2 2 0 0 0-1.8 1.1l-.8 1.63A6 6 0 0 0 2 12.42V16h2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.5\",\"cy\":\"16.5\",\"r\":\"2.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16.5\",\"cy\":\"16.5\",\"r\":\"2.5\"}}]})(props);\n};\nexport function LuCarrot (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.27 21.7s9.87-3.5 12.73-6.36a4.5 4.5 0 0 0-6.36-6.37C5.77 11.84 2.27 21.7 2.27 21.7zM8.64 14l-2.05-2.04M15.34 15l-2.46-2.46\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 9s-1.33-2-3.5-2C16.86 7 15 9 15 9s1.33 2 3.5 2S22 9 22 9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 2s-2 1.33-2 3.5S15 9 15 9s2-1.84 2-3.5C17 3.33 15 2 15 2z\"}}]})(props);\n};\nexport function LuCaseLower (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"7\",\"cy\":\"12\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 9v6\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17\",\"cy\":\"12\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 7v8\"}}]})(props);\n};\nexport function LuCaseSensitive (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3 15 4-8 4 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 13h6\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"12\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 9v6\"}}]})(props);\n};\nexport function LuCaseUpper (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3 15 4-8 4 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 13h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 11h4.5a2 2 0 0 1 0 4H15V7h4a2 2 0 0 1 0 4\"}}]})(props);\n};\nexport function LuCassetteTape (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"16\",\"x\":\"2\",\"y\":\"4\",\"rx\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"10\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 12h8\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"10\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m6 20 .7-2.9A1.4 1.4 0 0 1 8.1 16h7.8a1.4 1.4 0 0 1 1.4 1l.7 3\"}}]})(props);\n};\nexport function LuCast (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 12a9 9 0 0 1 8 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 16a5 5 0 0 1 4 4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"2.01\",\"y1\":\"20\",\"y2\":\"20\"}}]})(props);\n};\nexport function LuCastle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 20v-9H2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 11V4H6v7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 22v-4a3 3 0 0 0-3-3v0a3 3 0 0 0-3 3v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 11V9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 11V9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 4V2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 4V2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 4V2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 4V2\"}}]})(props);\n};\nexport function LuCat (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5c.67 0 1.35.09 2 .26 1.78-2 5.03-2.84 6.42-2.26 1.4.58-.42 7-.42 7 .57 1.07 1 2.24 1 3.44C21 17.9 16.97 21 12 21s-9-3-9-7.56c0-1.25.5-2.4 1-3.44 0 0-1.89-6.42-.5-7 1.39-.58 4.72.23 6.5 2.23A9.04 9.04 0 0 1 12 5Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 14v.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 14v.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.25 16.25h1.5L12 17l-.75-.75Z\"}}]})(props);\n};\nexport function LuCheckCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 6 7 17l-5-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 10-7.5 7.5L13 16\"}}]})(props);\n};\nexport function LuCheckCircle2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 12 2 2 4-4\"}}]})(props);\n};\nexport function LuCheckCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 4 12 14.01 9 11.01\"}}]})(props);\n};\nexport function LuCheckSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 11 12 14 22 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11\"}}]})(props);\n};\nexport function LuCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"20 6 9 17 4 12\"}}]})(props);\n};\nexport function LuChefHat (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 13.87A4 4 0 0 1 7.41 6a5.11 5.11 0 0 1 1.05-1.54 5 5 0 0 1 7.08 0A5.11 5.11 0 0 1 16.59 6 4 4 0 0 1 18 13.87V21H6Z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"x2\":\"18\",\"y1\":\"17\",\"y2\":\"17\"}}]})(props);\n};\nexport function LuCherry (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 17a5 5 0 0 0 10 0c0-2.76-2.5-5-5-3-2.5-2-5 .24-5 3Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17a5 5 0 0 0 10 0c0-2.76-2.5-5-5-3-2.5-2-5 .24-5 3Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 14c3.22-2.91 4.29-8.75 5-12 1.66 2.38 4.94 9 5 12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 9c-4.29 0-7.14-2.33-10-7 5.71 0 10 4.67 10 7Z\"}}]})(props);\n};\nexport function LuChevronDownCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 10-4 4-4-4\"}}]})(props);\n};\nexport function LuChevronDownSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 10-4 4-4-4\"}}]})(props);\n};\nexport function LuChevronDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m6 9 6 6 6-6\"}}]})(props);\n};\nexport function LuChevronFirst (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m17 18-6-6 6-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 6v12\"}}]})(props);\n};\nexport function LuChevronLast (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7 18 6-6-6-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 6v12\"}}]})(props);\n};\nexport function LuChevronLeftCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14 16-4-4 4-4\"}}]})(props);\n};\nexport function LuChevronLeftSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14 16-4-4 4-4\"}}]})(props);\n};\nexport function LuChevronLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m15 18-6-6 6-6\"}}]})(props);\n};\nexport function LuChevronRightCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10 8 4 4-4 4\"}}]})(props);\n};\nexport function LuChevronRightSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10 8 4 4-4 4\"}}]})(props);\n};\nexport function LuChevronRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m9 18 6-6-6-6\"}}]})(props);\n};\nexport function LuChevronUpCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 14 4-4 4 4\"}}]})(props);\n};\nexport function LuChevronUpSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 14 4-4 4 4\"}}]})(props);\n};\nexport function LuChevronUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m18 15-6-6-6 6\"}}]})(props);\n};\nexport function LuChevronsDownUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7 20 5-5 5 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m7 4 5 5 5-5\"}}]})(props);\n};\nexport function LuChevronsDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7 6 5 5 5-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m7 13 5 5 5-5\"}}]})(props);\n};\nexport function LuChevronsLeftRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m9 7-5 5 5 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 7 5 5-5 5\"}}]})(props);\n};\nexport function LuChevronsLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m11 17-5-5 5-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m18 17-5-5 5-5\"}}]})(props);\n};\nexport function LuChevronsRightLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m20 17-5-5 5-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m4 17 5-5-5-5\"}}]})(props);\n};\nexport function LuChevronsRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m6 17 5-5-5-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m13 17 5-5-5-5\"}}]})(props);\n};\nexport function LuChevronsUpDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7 15 5 5 5-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m7 9 5-5 5 5\"}}]})(props);\n};\nexport function LuChevronsUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m17 11-5-5-5 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17 18-5-5-5 5\"}}]})(props);\n};\nexport function LuChrome (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21.17\",\"x2\":\"12\",\"y1\":\"8\",\"y2\":\"8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3.95\",\"x2\":\"8.54\",\"y1\":\"6.06\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10.88\",\"x2\":\"15.46\",\"y1\":\"21.94\",\"y2\":\"14\"}}]})(props);\n};\nexport function LuChurch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m18 7 4 2v11a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9l4-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 22v-4a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 22V5l-6-3-6 3v17\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7v5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 9h4\"}}]})(props);\n};\nexport function LuCigaretteOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12H2v4h14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 12h-.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 12v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8c0-2.5-2-2.5-2-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 8c0-2.5-2-2.5-2-5\"}}]})(props);\n};\nexport function LuCigarette (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 12H2v4h16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 12v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8c0-2.5-2-2.5-2-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 8c0-2.5-2-2.5-2-5\"}}]})(props);\n};\nexport function LuCircleDashed (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.1 2.18a9.93 9.93 0 0 1 3.8 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.6 3.71a9.95 9.95 0 0 1 2.69 2.7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.82 10.1a9.93 9.93 0 0 1 0 3.8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.29 17.6a9.95 9.95 0 0 1-2.7 2.69\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.9 21.82a9.94 9.94 0 0 1-3.8 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.4 20.29a9.95 9.95 0 0 1-2.69-2.7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.18 13.9a9.93 9.93 0 0 1 0-3.8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.71 6.4a9.95 9.95 0 0 1 2.7-2.69\"}}]})(props);\n};\nexport function LuCircleDollarSign (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18V6\"}}]})(props);\n};\nexport function LuCircleDotDashed (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.1 2.18a9.93 9.93 0 0 1 3.8 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.6 3.71a9.95 9.95 0 0 1 2.69 2.7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.82 10.1a9.93 9.93 0 0 1 0 3.8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.29 17.6a9.95 9.95 0 0 1-2.7 2.69\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.9 21.82a9.94 9.94 0 0 1-3.8 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.4 20.29a9.95 9.95 0 0 1-2.69-2.7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.18 13.9a9.93 9.93 0 0 1 0-3.8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.71 6.4a9.95 9.95 0 0 1 2.7-2.69\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1\"}}]})(props);\n};\nexport function LuCircleDot (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1\"}}]})(props);\n};\nexport function LuCircleEllipsis (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 12h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 12h.01\"}}]})(props);\n};\nexport function LuCircleEqual (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 10h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 14h10\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}}]})(props);\n};\nexport function LuCircleOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m2 2 20 20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.35 2.69A10 10 0 0 1 21.3 15.65\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.08 19.08A10 10 0 1 1 4.92 4.92\"}}]})(props);\n};\nexport function LuCircleSlash2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 2 2 22\"}}]})(props);\n};\nexport function LuCircleSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"x2\":\"15\",\"y1\":\"15\",\"y2\":\"9\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}}]})(props);\n};\nexport function LuCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}}]})(props);\n};\nexport function LuCircuitBoard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 9h4a2 2 0 0 0 2-2V3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"9\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 21v-4a2 2 0 0 1 2-2h4\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"15\",\"r\":\"2\"}}]})(props);\n};\nexport function LuCitrus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.66 17.67a1.08 1.08 0 0 1-.04 1.6A12 12 0 0 1 4.73 2.38a1.1 1.1 0 0 1 1.61-.04z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.65 15.66A8 8 0 0 1 8.35 4.34\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14 10-5.5 5.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 17.85V10H6.15\"}}]})(props);\n};\nexport function LuClapperboard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 11v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8H4Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m4 11-.88-2.87a2 2 0 0 1 1.33-2.5l11.48-3.5a2 2 0 0 1 2.5 1.32l.87 2.87L4 11.01Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m6.6 4.99 3.38 4.2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m11.86 3.38 3.38 4.2\"}}]})(props);\n};\nexport function LuClipboardCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"4\",\"x\":\"8\",\"y\":\"2\",\"rx\":\"1\",\"ry\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 14 2 2 4-4\"}}]})(props);\n};\nexport function LuClipboardCopy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"4\",\"x\":\"8\",\"y\":\"2\",\"rx\":\"1\",\"ry\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 4h2a2 2 0 0 1 2 2v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 14H11\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 10-4 4 4 4\"}}]})(props);\n};\nexport function LuClipboardEdit (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"4\",\"x\":\"8\",\"y\":\"2\",\"rx\":\"1\",\"ry\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.42 12.61a2.1 2.1 0 1 1 2.97 2.97L7.95 21 4 22l.99-3.95 5.43-5.44Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-5.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 13.5V6a2 2 0 0 1 2-2h2\"}}]})(props);\n};\nexport function LuClipboardList (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"4\",\"x\":\"8\",\"y\":\"2\",\"rx\":\"1\",\"ry\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 11h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 16h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 11h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 16h.01\"}}]})(props);\n};\nexport function LuClipboardPaste (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 2H9a1 1 0 0 0-1 1v2c0 .6.4 1 1 1h6c.6 0 1-.4 1-1V3c0-.6-.4-1-1-1Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2M16 4h2a2 2 0 0 1 2 2v2M11 14h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17 10 4 4-4 4\"}}]})(props);\n};\nexport function LuClipboardSignature (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"4\",\"x\":\"8\",\"y\":\"2\",\"rx\":\"1\",\"ry\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 4h2a2 2 0 0 1 1.73 1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.42 9.61a2.1 2.1 0 1 1 2.97 2.97L16.95 17 13 18l.99-3.95 4.43-4.44Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 18h1\"}}]})(props);\n};\nexport function LuClipboardType (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"4\",\"x\":\"8\",\"y\":\"2\",\"rx\":\"1\",\"ry\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 12v-1h6v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 17h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 11v6\"}}]})(props);\n};\nexport function LuClipboardX (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"4\",\"x\":\"8\",\"y\":\"2\",\"rx\":\"1\",\"ry\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 11-6 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 11 6 6\"}}]})(props);\n};\nexport function LuClipboard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"4\",\"x\":\"8\",\"y\":\"2\",\"rx\":\"1\",\"ry\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"}}]})(props);\n};\nexport function LuClock1 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 6 12 12 14.5 8\"}}]})(props);\n};\nexport function LuClock10 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 6 12 12 8 10\"}}]})(props);\n};\nexport function LuClock11 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 6 12 12 9.5 8\"}}]})(props);\n};\nexport function LuClock12 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 6 12 12\"}}]})(props);\n};\nexport function LuClock2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 6 12 12 16 10\"}}]})(props);\n};\nexport function LuClock3 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 6 12 12 16.5 12\"}}]})(props);\n};\nexport function LuClock4 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 6 12 12 16 14\"}}]})(props);\n};\nexport function LuClock5 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 6 12 12 14.5 16\"}}]})(props);\n};\nexport function LuClock6 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 6 12 12 12 16.5\"}}]})(props);\n};\nexport function LuClock7 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 6 12 12 9.5 16\"}}]})(props);\n};\nexport function LuClock8 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 6 12 12 8 14\"}}]})(props);\n};\nexport function LuClock9 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 6 12 12 7.5 12\"}}]})(props);\n};\nexport function LuClock (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 6 12 12 16 14\"}}]})(props);\n};\nexport function LuCloudCog (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 16.2A4.5 4.5 0 0 0 17.5 8h-1.8A7 7 0 1 0 4 14.9\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"17\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 13v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 17h-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 17H8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 14-.88.88\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.88 19.12 9 20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 20-.88-.88\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.88 14.88 9 14\"}}]})(props);\n};\nexport function LuCloudDrizzle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 19v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 14v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 19v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 14v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 21v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 16v1\"}}]})(props);\n};\nexport function LuCloudFog (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 17H7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 21H9\"}}]})(props);\n};\nexport function LuCloudHail (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 14v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 14v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 20h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 20h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 16v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22h.01\"}}]})(props);\n};\nexport function LuCloudLightning (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 16.326A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 .5 8.973\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m13 12-3 5h4l-3 5\"}}]})(props);\n};\nexport function LuCloudMoonRain (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.083 9A6.002 6.002 0 0 1 16 4a4.243 4.243 0 0 0 6 6c0 2.22-1.206 4.16-3 5.197\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 20a5 5 0 1 1 8.9-4H13a3 3 0 0 1 2 5.24\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 20v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 19v2\"}}]})(props);\n};\nexport function LuCloudMoon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 16a3 3 0 1 1 0 6H7a5 5 0 1 1 4.9-6Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.1 9A6 6 0 0 1 16 4a4.24 4.24 0 0 0 6 6 6 6 0 0 1-3 5.197\"}}]})(props);\n};\nexport function LuCloudOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m2 2 20 20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.782 5.782A7 7 0 0 0 9 19h8.5a4.5 4.5 0 0 0 1.307-.193\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.532 16.5A4.5 4.5 0 0 0 17.5 10h-1.79A7.008 7.008 0 0 0 10 5.07\"}}]})(props);\n};\nexport function LuCloudRainWind (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9.2 22 3-7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 13-3 7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17 13-3 7\"}}]})(props);\n};\nexport function LuCloudRain (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 14v6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 14v6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 16v6\"}}]})(props);\n};\nexport function LuCloudSnow (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 15h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 19h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 21h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 15h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 19h.01\"}}]})(props);\n};\nexport function LuCloudSunRain (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m4.93 4.93 1.41 1.41\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 12h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m19.07 4.93-1.41 1.41\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.947 12.65a4 4 0 0 0-5.925-4.128\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 20a5 5 0 1 1 8.9-4H13a3 3 0 0 1 2 5.24\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 20v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 19v2\"}}]})(props);\n};\nexport function LuCloudSun (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m4.93 4.93 1.41 1.41\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 12h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m19.07 4.93-1.41 1.41\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.947 12.65a4 4 0 0 0-5.925-4.128\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 22H7a5 5 0 1 1 4.9-6H13a3 3 0 0 1 0 6Z\"}}]})(props);\n};\nexport function LuCloud (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z\"}}]})(props);\n};\nexport function LuCloudy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.5 21H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 10a3 3 0 0 0-3-3h-2.207a5.502 5.502 0 0 0-10.702.5\"}}]})(props);\n};\nexport function LuClover (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.2 3.8a2.7 2.7 0 0 0-3.81 0l-.4.38-.4-.4a2.7 2.7 0 0 0-3.82 0C6.73 4.85 6.67 6.64 8 8l4 4 4-4c1.33-1.36 1.27-3.15.2-4.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 8c-1.36-1.33-3.15-1.27-4.2-.2a2.7 2.7 0 0 0 0 3.81l.38.4-.4.4a2.7 2.7 0 0 0 0 3.82C4.85 17.27 6.64 17.33 8 16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16c1.36 1.33 3.15 1.27 4.2.2a2.7 2.7 0 0 0 0-3.81l-.38-.4.4-.4a2.7 2.7 0 0 0 0-3.82C19.15 6.73 17.36 6.67 16 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.8 20.2a2.7 2.7 0 0 0 3.81 0l.4-.38.4.4a2.7 2.7 0 0 0 3.82 0c1.06-1.06 1.12-2.85-.21-4.21l-4-4-4 4c-1.33 1.36-1.27 3.15-.2 4.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m7 17-5 5\"}}]})(props);\n};\nexport function LuClub (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.28 9.05a5.5 5.5 0 1 0-10.56 0A5.5 5.5 0 1 0 12 17.66a5.5 5.5 0 1 0 5.28-8.6Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17.66L12 22\"}}]})(props);\n};\nexport function LuCode2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m18 16 4-4-4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m6 8-4 4 4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14.5 4-5 16\"}}]})(props);\n};\nexport function LuCode (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 18 22 12 16 6\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 6 2 12 8 18\"}}]})(props);\n};\nexport function LuCodepen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 22 8.5 22 15.5 12 22 2 15.5 2 8.5 12 2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"22\",\"y2\":\"15.5\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 8.5 12 15.5 2 8.5\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"2 15.5 12 8.5 22 15.5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"2\",\"y2\":\"8.5\"}}]})(props);\n};\nexport function LuCodesandbox (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7.5 4.21 12 6.81 16.5 4.21\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7.5 19.79 7.5 14.6 3 12\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 12 16.5 14.6 16.5 19.79\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.27 6.96 12 12.01 20.73 6.96\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"22.08\",\"y2\":\"12\"}}]})(props);\n};\nexport function LuCoffee (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 8h1a4 4 0 1 1 0 8h-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 8h14v9a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4Z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"x2\":\"6\",\"y1\":\"2\",\"y2\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"x2\":\"10\",\"y1\":\"2\",\"y2\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"x2\":\"14\",\"y1\":\"2\",\"y2\":\"4\"}}]})(props);\n};\nexport function LuCog (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22v-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17 20.66-1-1.73\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 10.27 7 3.34\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m20.66 17-1.73-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m3.34 7 1.73 1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 12h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 12h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m20.66 7-1.73 1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m3.34 17 1.73-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17 3.34-1 1.73\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m11 13.73-4 6.93\"}}]})(props);\n};\nexport function LuCoins (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"8\",\"r\":\"6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.09 10.37A6 6 0 1 1 10.34 18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 6h1v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16.71 13.88.7.71-2.82 2.82\"}}]})(props);\n};\nexport function LuColumns (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"3\",\"y2\":\"21\"}}]})(props);\n};\nexport function LuCombine (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"8\",\"x\":\"2\",\"y\":\"2\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2c1.1 0 2 .9 2 2v4c0 1.1-.9 2-2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2c1.1 0 2 .9 2 2v4c0 1.1-.9 2-2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 18H5c-1.7 0-3-1.3-3-3v-1\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 21 10 18 7 15\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"8\",\"x\":\"14\",\"y\":\"14\",\"rx\":\"2\"}}]})(props);\n};\nexport function LuCommand (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3\"}}]})(props);\n};\nexport function LuCompass (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polygon\",\"attr\":{\"points\":\"16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76\"}}]})(props);\n};\nexport function LuComponent (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.5 8.5 9 12l-3.5 3.5L2 12l3.5-3.5Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12 2 3.5 3.5L12 9 8.5 5.5 12 2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 8.5 22 12l-3.5 3.5L15 12l3.5-3.5Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12 15 3.5 3.5L12 22l-3.5-3.5L12 15Z\"}}]})(props);\n};\nexport function LuComputer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"14\",\"height\":\"8\",\"x\":\"5\",\"y\":\"2\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"8\",\"x\":\"2\",\"y\":\"14\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 18h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18h6\"}}]})(props);\n};\nexport function LuConciergeBell (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 18a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v2H2v-2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 16a8 8 0 1 0-16 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 4h4\"}}]})(props);\n};\nexport function LuConstruction (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"6\",\"width\":\"20\",\"height\":\"8\",\"rx\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 14v7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 14v7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3v3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 3v3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 14 2.3 6.3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14 6 7.7 7.7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 6 8 8\"}}]})(props);\n};\nexport function LuContact2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 18a4 4 0 0 0-8 0\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"11\",\"r\":\"3\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"8\",\"y1\":\"2\",\"y2\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"16\",\"y1\":\"2\",\"y2\":\"4\"}}]})(props);\n};\nexport function LuContact (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 18a2 2 0 0 0-2-2H9a2 2 0 0 0-2 2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"10\",\"r\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"8\",\"y1\":\"2\",\"y2\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"16\",\"y1\":\"2\",\"y2\":\"4\"}}]})(props);\n};\nexport function LuContainer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 21.9V14L2.1 9.1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10 14 11.9-6.9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 19.8v-8.1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 17.5V9.4\"}}]})(props);\n};\nexport function LuContrast (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18a6 6 0 0 0 0-12v12z\"}}]})(props);\n};\nexport function LuCookie (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2a10 10 0 1 0 10 10 4 4 0 0 1-5-5 4 4 0 0 1-5-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 8.5v.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 15.5v.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12v.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 17v.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 14v.01\"}}]})(props);\n};\nexport function LuCopyCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12 15 2 2 4-4\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"14\",\"height\":\"14\",\"x\":\"8\",\"y\":\"8\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"}}]})(props);\n};\nexport function LuCopyMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"18\",\"y1\":\"15\",\"y2\":\"15\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"14\",\"height\":\"14\",\"x\":\"8\",\"y\":\"8\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"}}]})(props);\n};\nexport function LuCopyPlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"x2\":\"15\",\"y1\":\"12\",\"y2\":\"18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"18\",\"y1\":\"15\",\"y2\":\"15\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"14\",\"height\":\"14\",\"x\":\"8\",\"y\":\"8\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"}}]})(props);\n};\nexport function LuCopySlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"18\",\"y1\":\"18\",\"y2\":\"12\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"14\",\"height\":\"14\",\"x\":\"8\",\"y\":\"8\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"}}]})(props);\n};\nexport function LuCopyX (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"18\",\"y1\":\"12\",\"y2\":\"18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"18\",\"y1\":\"18\",\"y2\":\"12\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"14\",\"height\":\"14\",\"x\":\"8\",\"y\":\"8\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"}}]})(props);\n};\nexport function LuCopy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"14\",\"height\":\"14\",\"x\":\"8\",\"y\":\"8\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"}}]})(props);\n};\nexport function LuCopyleft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 9.35a4 4 0 1 1 0 5.3\"}}]})(props);\n};\nexport function LuCopyright (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 9.354a4 4 0 1 0 0 5.292\"}}]})(props);\n};\nexport function LuCornerDownLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 10 4 15 9 20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4v7a4 4 0 0 1-4 4H4\"}}]})(props);\n};\nexport function LuCornerDownRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 10 20 15 15 20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4v7a4 4 0 0 0 4 4h12\"}}]})(props);\n};\nexport function LuCornerLeftDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 15 9 20 4 15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4h-7a4 4 0 0 0-4 4v12\"}}]})(props);\n};\nexport function LuCornerLeftUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 9 9 4 4 9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 20h-7a4 4 0 0 1-4-4V4\"}}]})(props);\n};\nexport function LuCornerRightDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 15 15 20 20 15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4h7a4 4 0 0 1 4 4v12\"}}]})(props);\n};\nexport function LuCornerRightUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 9 15 4 20 9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h7a4 4 0 0 0 4-4V4\"}}]})(props);\n};\nexport function LuCornerUpLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 14 4 9 9 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 20v-7a4 4 0 0 0-4-4H4\"}}]})(props);\n};\nexport function LuCornerUpRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 14 20 9 15 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20v-7a4 4 0 0 1 4-4h12\"}}]})(props);\n};\nexport function LuCpu (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"4\",\"width\":\"16\",\"height\":\"16\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"9\",\"width\":\"6\",\"height\":\"6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 2v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 20v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 15h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 9h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 15h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 9h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 2v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 20v2\"}}]})(props);\n};\nexport function LuCreativeCommons (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 9.3a2.8 2.8 0 0 0-3.5 1 3.1 3.1 0 0 0 0 3.4 2.7 2.7 0 0 0 3.5 1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 9.3a2.8 2.8 0 0 0-3.5 1 3.1 3.1 0 0 0 0 3.4 2.7 2.7 0 0 0 3.5 1\"}}]})(props);\n};\nexport function LuCreditCard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"14\",\"x\":\"2\",\"y\":\"5\",\"rx\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"10\",\"y2\":\"10\"}}]})(props);\n};\nexport function LuCroissant (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m4.6 13.11 5.79-3.21c1.89-1.05 4.79 1.78 3.71 3.71l-3.22 5.81C8.8 23.16.79 15.23 4.6 13.11Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10.5 9.5-1-2.29C9.2 6.48 8.8 6 8 6H4.5C2.79 6 2 6.5 2 8.5a7.71 7.71 0 0 0 2 4.83\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 6c0-1.55.24-4-2-4-2 0-2.5 2.17-2.5 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14.5 13.5 2.29 1c.73.3 1.21.7 1.21 1.5v3.5c0 1.71-.5 2.5-2.5 2.5a7.71 7.71 0 0 1-4.83-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 16c1.55 0 4-.24 4 2 0 2-2.17 2.5-4 2.5\"}}]})(props);\n};\nexport function LuCrop (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 2v14a2 2 0 0 0 2 2h14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 22V8a2 2 0 0 0-2-2H2\"}}]})(props);\n};\nexport function LuCross (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 2a2 2 0 0 0-2 2v5H4a2 2 0 0 0-2 2v2c0 1.1.9 2 2 2h5v5c0 1.1.9 2 2 2h2a2 2 0 0 0 2-2v-5h5a2 2 0 0 0 2-2v-2a2 2 0 0 0-2-2h-5V4a2 2 0 0 0-2-2h-2z\"}}]})(props);\n};\nexport function LuCrosshair (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"x2\":\"18\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"x2\":\"2\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"6\",\"y2\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"22\",\"y2\":\"18\"}}]})(props);\n};\nexport function LuCrown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m2 4 3 12h14l3-12-6 7-4-7-4 7-6-7zm3 16h14\"}}]})(props);\n};\nexport function LuCupSoda (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m6 8 1.75 12.28a2 2 0 0 0 2 1.72h4.54a2 2 0 0 0 2-1.72L18 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 8h14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 15a6.47 6.47 0 0 1 5 0 6.47 6.47 0 0 0 5 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12 8 1-6h2\"}}]})(props);\n};\nexport function LuCurrency (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"6\",\"y1\":\"3\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"x2\":\"18\",\"y1\":\"3\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"6\",\"y1\":\"21\",\"y2\":\"18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"x2\":\"18\",\"y1\":\"21\",\"y2\":\"18\"}}]})(props);\n};\nexport function LuDatabaseBackup (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"rx\":\"9\",\"ry\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5v14c0 1.4 3 2.7 7 3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 12c0 1.2 2 2.5 5 3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 5v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 20a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L12 16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12v4h4\"}}]})(props);\n};\nexport function LuDatabase (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"rx\":\"9\",\"ry\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5V19A9 3 0 0 0 21 19V5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 12A9 3 0 0 0 21 12\"}}]})(props);\n};\nexport function LuDelete (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 5H9l-7 7 7 7h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2Z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"x2\":\"12\",\"y1\":\"9\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"18\",\"y1\":\"9\",\"y2\":\"15\"}}]})(props);\n};\nexport function LuDessert (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"4\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.2 3.2C5.5 4 2 8.1 2 13a2 2 0 0 0 4 0v-1a2 2 0 0 1 4 0v4a2 2 0 0 0 4 0v-4a2 2 0 0 1 4 0v1a2 2 0 0 0 4 0c0-4.9-3.5-9-8.2-9.8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.2 14.8a9 9 0 0 0 17.6 0\"}}]})(props);\n};\nexport function LuDiamond (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41l-7.59-7.59a2.41 2.41 0 0 0-3.41 0Z\"}}]})(props);\n};\nexport function LuDice1 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12h.01\"}}]})(props);\n};\nexport function LuDice2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 9h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 15h.01\"}}]})(props);\n};\nexport function LuDice3 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 16h.01\"}}]})(props);\n};\nexport function LuDice4 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 8h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 16h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16h.01\"}}]})(props);\n};\nexport function LuDice5 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 8h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 16h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12h.01\"}}]})(props);\n};\nexport function LuDice6 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 12h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 8h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 12h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 16h.01\"}}]})(props);\n};\nexport function LuDices (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"12\",\"height\":\"12\",\"x\":\"2\",\"y\":\"10\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17.92 14 3.5-3.5a2.24 2.24 0 0 0 0-3l-5-4.92a2.24 2.24 0 0 0-3 0L10 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 18h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 14h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 6h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9h.01\"}}]})(props);\n};\nexport function LuDiff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3v14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 10h14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 21h14\"}}]})(props);\n};\nexport function LuDisc2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12h.01\"}}]})(props);\n};\nexport function LuDisc3 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 12c0-1.7.7-3.2 1.8-4.2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 12c0 1.7-.7 3.2-1.8 4.2\"}}]})(props);\n};\nexport function LuDisc (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"}}]})(props);\n};\nexport function LuDivideCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"16\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"16\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"8\",\"y2\":\"8\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}}]})(props);\n};\nexport function LuDivideSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"16\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"16\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"8\",\"y2\":\"8\"}}]})(props);\n};\nexport function LuDivide (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"6\",\"r\":\"1\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"x2\":\"19\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"18\",\"r\":\"1\"}}]})(props);\n};\nexport function LuDnaOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 2c-1.35 1.5-2.092 3-2.5 4.5M9 22c1.35-1.5 2.092-3 2.5-4.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 15c3.333-3 6.667-3 10-3m10-3c-1.5 1.35-3 2.092-4.5 2.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17 6-2.5-2.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14 8-1.5-1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m7 18 2.5 2.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m3.5 14.5.5.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m20 9 .5.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m6.5 12.5 1 1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16.5 10.5 1 1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10 16 1.5 1.5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuDna (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 15c6.667-6 13.333 0 20-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 22c1.798-1.998 2.518-3.995 2.807-5.993\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 2c-1.798 1.998-2.518 3.995-2.807 5.993\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17 6-2.5-2.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14 8-1-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m7 18 2.5 2.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m3.5 14.5.5.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m20 9 .5.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m6.5 12.5 1 1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16.5 10.5 1 1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10 16 1.5 1.5\"}}]})(props);\n};\nexport function LuDog (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 5.172C10 3.782 8.423 2.679 6.5 3c-2.823.47-4.113 6.006-4 7 .08.703 1.725 1.722 3.656 1 1.261-.472 1.96-1.45 2.344-2.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.267 5.172c0-1.39 1.577-2.493 3.5-2.172 2.823.47 4.113 6.006 4 7-.08.703-1.725 1.722-3.656 1-1.261-.472-1.855-1.45-2.239-2.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 14v.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 14v.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.25 16.25h1.5L12 17l-.75-.75Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.42 11.247A13.152 13.152 0 0 0 4 14.556C4 18.728 7.582 21 12 21s8-2.272 8-6.444c0-1.061-.162-2.2-.493-3.309m-9.243-6.082A8.801 8.801 0 0 1 12 5c.78 0 1.5.108 2.161.306\"}}]})(props);\n};\nexport function LuDollarSign (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"2\",\"y2\":\"22\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"}}]})(props);\n};\nexport function LuDonut (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.5 10a2.5 2.5 0 0 1-2.4-3H18a2.95 2.95 0 0 1-2.6-4.4 10 10 0 1 0 6.3 7.1c-.3.2-.8.3-1.2.3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"}}]})(props);\n};\nexport function LuDoorClosed (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 20V6a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 20h20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 12v.01\"}}]})(props);\n};\nexport function LuDoorOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 4h3a2 2 0 0 1 2 2v14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 20h3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 20h9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 12v.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 4.562v16.157a1 1 0 0 1-1.242.97L5 20V5.562a2 2 0 0 1 1.515-1.94l4-1A2 2 0 0 1 13 4.561Z\"}}]})(props);\n};\nexport function LuDot (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12.1\",\"cy\":\"12.1\",\"r\":\"1\"}}]})(props);\n};\nexport function LuDownloadCloud (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12v9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 17 4 4 4-4\"}}]})(props);\n};\nexport function LuDownload (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 10 12 15 17 10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"15\",\"y2\":\"3\"}}]})(props);\n};\nexport function LuDribbble (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.13 5.09C15.22 9.14 10 10.44 2.25 10.94\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.75 12.84c-6.62-1.41-12.14 1-16.38 6.32\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.56 2.75c4.37 6 6 9.42 8 17.72\"}}]})(props);\n};\nexport function LuDroplet (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22a7 7 0 0 0 7-7c0-2-1-3.9-3-5.5s-3.5-4-4-6.5c-.5 2.5-2 4.9-4 6.5C6 11.1 5 13 5 15a7 7 0 0 0 7 7z\"}}]})(props);\n};\nexport function LuDroplets (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 16.3c2.2 0 4-1.83 4-4.05 0-1.16-.57-2.26-1.71-3.19S7.29 6.75 7 5.3c-.29 1.45-1.14 2.84-2.29 3.76S3 11.1 3 12.25c0 2.22 1.8 4.05 4 4.05z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.56 6.6A10.97 10.97 0 0 0 14 3.02c.5 2.5 2 4.9 4 6.5s3 3.5 3 5.5a6.98 6.98 0 0 1-11.91 4.97\"}}]})(props);\n};\nexport function LuDrumstick (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.45 15.4c-2.13.65-4.3.32-5.7-1.1-2.29-2.27-1.76-6.5 1.17-9.42 2.93-2.93 7.15-3.46 9.43-1.18 1.41 1.41 1.74 3.57 1.1 5.71-1.4-.51-3.26-.02-4.64 1.36-1.38 1.38-1.87 3.23-1.36 4.63z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m11.25 15.6-2.16 2.16a2.5 2.5 0 1 1-4.56 1.73 2.49 2.49 0 0 1-1.41-4.24 2.5 2.5 0 0 1 3.14-.32l2.16-2.16\"}}]})(props);\n};\nexport function LuDumbbell (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m6.5 6.5 11 11\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21 21-1-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m3 3 1 1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m18 22 4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m2 6 4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m3 10 7-7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14 21 7-7\"}}]})(props);\n};\nexport function LuEarOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 18.5a3.5 3.5 0 1 0 7 0c0-1.57.92-2.52 2.04-3.46\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 8.5c0-.75.13-1.47.36-2.14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.8 3.15A6.5 6.5 0 0 1 19 8.5c0 1.63-.44 2.81-1.09 3.76\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.5 6A2.5 2.5 0 0 1 15 8.5M10 13a2 2 0 0 0 1.82-1.18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuEar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 8.5a6.5 6.5 0 1 1 13 0c0 6-6 6-6 10a3.5 3.5 0 1 1-7 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 8.5a2.5 2.5 0 0 0-5 0v1a2 2 0 1 1 0 4\"}}]})(props);\n};\nexport function LuEggFried (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11.5\",\"cy\":\"12.5\",\"r\":\"3.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 8c0-3.5 2.5-6 6.5-6 5 0 4.83 3 7.5 5s5 2 5 6c0 4.5-2.5 6.5-7 6.5-2.5 0-2.5 2.5-6 2.5s-7-2-7-5.5c0-3 1.5-3 1.5-5C3.5 10 3 9 3 8Z\"}}]})(props);\n};\nexport function LuEggOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.399 6.399C5.362 8.157 4.65 10.189 4.5 12c-.37 4.43 1.27 9.95 7.5 10 3.256-.026 5.259-1.547 6.375-3.625\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.532 13.875A14.07 14.07 0 0 0 19.5 12c-.36-4.34-3.95-9.96-7.5-10-1.04.012-2.082.502-3.046 1.297\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuEgg (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22c6.23-.05 7.87-5.57 7.5-10-.36-4.34-3.95-9.96-7.5-10-3.55.04-7.14 5.66-7.5 10-.37 4.43 1.27 9.95 7.5 10z\"}}]})(props);\n};\nexport function LuEqualNot (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"x2\":\"19\",\"y1\":\"9\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"x2\":\"19\",\"y1\":\"15\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"x2\":\"5\",\"y1\":\"5\",\"y2\":\"19\"}}]})(props);\n};\nexport function LuEqual (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"x2\":\"19\",\"y1\":\"9\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"x2\":\"19\",\"y1\":\"15\",\"y2\":\"15\"}}]})(props);\n};\nexport function LuEraser (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7 21-4.3-4.3c-1-1-1-2.5 0-3.4l9.6-9.6c1-1 2.5-1 3.4 0l5.6 5.6c1 1 1 2.5 0 3.4L13 21\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 21H7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m5 11 9 9\"}}]})(props);\n};\nexport function LuEuro (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 10h12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 14h9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6a7.7 7.7 0 0 0-5.2-2A7.9 7.9 0 0 0 6 12c0 4.4 3.5 8 7.8 8 2 0 3.8-.8 5.2-2\"}}]})(props);\n};\nexport function LuExpand (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21 21-6-6m6 6v-4.8m0 4.8h-4.8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 16.2V21m0 0h4.8M3 21l6-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 7.8V3m0 0h-4.8M21 3l-6 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 7.8V3m0 0h4.8M3 3l6 6\"}}]})(props);\n};\nexport function LuExternalLink (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 3 21 3 21 9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"x2\":\"21\",\"y1\":\"14\",\"y2\":\"3\"}}]})(props);\n};\nexport function LuEyeOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.88 9.88a3 3 0 1 0 4.24 4.24\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuEye (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"}}]})(props);\n};\nexport function LuFacebook (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z\"}}]})(props);\n};\nexport function LuFactory (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 20a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8l-7 5V8l-7 5V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 18h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 18h1\"}}]})(props);\n};\nexport function LuFan (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.827 16.379a6.082 6.082 0 0 1-8.618-7.002l5.412 1.45a6.082 6.082 0 0 1 7.002-8.618l-1.45 5.412a6.082 6.082 0 0 1 8.618 7.002l-5.412-1.45a6.082 6.082 0 0 1-7.002 8.618l1.45-5.412Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12v.01\"}}]})(props);\n};\nexport function LuFastForward (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"13 19 22 12 13 5 13 19\"}},{\"tag\":\"polygon\",\"attr\":{\"points\":\"2 19 11 12 2 5 2 19\"}}]})(props);\n};\nexport function LuFeather (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.24 12.24a6 6 0 0 0-8.49-8.49L5 10.5V19h8.5z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"2\",\"y1\":\"8\",\"y2\":\"22\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17.5\",\"x2\":\"9\",\"y1\":\"15\",\"y2\":\"15\"}}]})(props);\n};\nexport function LuFerrisWheel (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m6.8 15-3.5 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m20.7 7-3.5 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.8 9 3.3 7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m20.7 17-3.5-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 22 3-8 3 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 22h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 18.7a9 9 0 1 0-12 0\"}}]})(props);\n};\nexport function LuFigma (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z\"}}]})(props);\n};\nexport function LuFileArchive (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 22V4c0-.5.2-1 .6-1.4C5 2.2 5.5 2 6 2h8.5L20 7.5V20c0 .5-.2 1-.6 1.4-.4.4-.9.6-1.4.6h-2\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"20\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 7V6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 12v-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 18v-2\"}}]})(props);\n};\nexport function LuFileAudio2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v2\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 17v-3a4 4 0 0 1 8 0v3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"17\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"3\",\"cy\":\"17\",\"r\":\"1\"}}]})(props);\n};\nexport function LuFileAudio (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.5 22h.5c.5 0 1-.2 1.4-.6.4-.4.6-.9.6-1.4V7.5L14.5 2H6c-.5 0-1 .2-1.4.6C4.2 3 4 3.5 4 4v3\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 20v-1a2 2 0 1 1 4 0v1a2 2 0 1 1-4 0Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 20v-1a2 2 0 1 0-4 0v1a2 2 0 1 0 4 0Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 19v-3a6 6 0 0 1 12 0v3\"}}]})(props);\n};\nexport function LuFileAxis3D (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 10v8h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 18 4-4\"}}]})(props);\n};\nexport function LuFileBadge2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 13a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14 12.5 1 5.5-3-1-3 1 1-5.5\"}}]})(props);\n};\nexport function LuFileBadge (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 7V4a2 2 0 0 1 2-2h8.5L20 7.5V20a2 2 0 0 1-2 2h-6\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 17a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 16.5 8 22l-3-1-3 1 1-5.5\"}}]})(props);\n};\nexport function LuFileBarChart2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18v-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 18v-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 18v-3\"}}]})(props);\n};\nexport function LuFileBarChart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18v-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 18v-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 18v-6\"}}]})(props);\n};\nexport function LuFileBox (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 22H18a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.97 13.12c-.6.36-.97 1.02-.97 1.74v3.28c0 .72.37 1.38.97 1.74l3 1.83c.63.39 1.43.39 2.06 0l3-1.83c.6-.36.97-1.02.97-1.74v-3.28c0-.72-.37-1.38-.97-1.74l-3-1.83a1.97 1.97 0 0 0-2.06 0l-3 1.83Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m7 17-4.74-2.85\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m7 17 4.74-2.85\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 17v5\"}}]})(props);\n};\nexport function LuFileCheck2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m3 15 2 2 4-4\"}}]})(props);\n};\nexport function LuFileCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 15 2 2 4-4\"}}]})(props);\n};\nexport function LuFileClock (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 22h2c.5 0 1-.2 1.4-.6.4-.4.6-.9.6-1.4V7.5L14.5 2H6c-.5 0-1 .2-1.4.6C4.2 3 4 3.5 4 4v3\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"16\",\"r\":\"6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 17.5 8 16.25V14\"}}]})(props);\n};\nexport function LuFileCode2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 18 3-3-3-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m5 12-3 3 3 3\"}}]})(props);\n};\nexport function LuFileCode (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10 13-2 2 2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14 17 2-2-2-2\"}}]})(props);\n};\nexport function LuFileCog2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"15\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14.6 13.5-.87.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10.27 16-.87.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14.6 16.5-.87-.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10.27 14-.87-.5\"}}]})(props);\n};\nexport function LuFileCog (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6V4a2 2 0 0 1 2-2h8.5L20 7.5V20a2 2 0 0 1-2 2H4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"14\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 10v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 17v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 14H9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 14H2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 11-.88.88\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.88 16.12 3 17\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 17-.88-.88\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.88 11.88 3 11\"}}]})(props);\n};\nexport function LuFileDiff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 13V7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 10h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 17h6\"}}]})(props);\n};\nexport function LuFileDigit (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"4\",\"height\":\"6\",\"x\":\"2\",\"y\":\"12\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2v6h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 12h2v6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 18h4\"}}]})(props);\n};\nexport function LuFileDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18v-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 15 3 3 3-3\"}}]})(props);\n};\nexport function LuFileEdit (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 13.5V4a2 2 0 0 1 2-2h8.5L20 7.5V20a2 2 0 0 1-2 2h-5.5\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.42 12.61a2.1 2.1 0 1 1 2.97 2.97L7.95 21 4 22l.99-3.95 5.43-5.44Z\"}}]})(props);\n};\nexport function LuFileHeart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6V4a2 2 0 0 1 2-2h8.5L20 7.5V20a2 2 0 0 1-2 2H4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.29 10.7a2.43 2.43 0 0 0-2.66-.52c-.29.12-.56.3-.78.53l-.35.34-.35-.34a2.43 2.43 0 0 0-2.65-.53c-.3.12-.56.3-.79.53-.95.94-1 2.53.2 3.74L6.5 18l3.6-3.55c1.2-1.21 1.14-2.8.19-3.74Z\"}}]})(props);\n};\nexport function LuFileImage (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"13\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m20 17-1.09-1.09a2 2 0 0 0-2.82 0L10 22\"}}]})(props);\n};\nexport function LuFileInput (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 15h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 18 3-3-3-3\"}}]})(props);\n};\nexport function LuFileJson2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1\"}}]})(props);\n};\nexport function LuFileJson (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1\"}}]})(props);\n};\nexport function LuFileKey2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 10V4a2 2 0 0 1 2-2h8.5L20 7.5V20a2 2 0 0 1-2 2H4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"4\",\"cy\":\"16\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10 10-4.5 4.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 11 1 1\"}}]})(props);\n};\nexport function LuFileKey (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"16\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 10-4.5 4.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 11 1 1\"}}]})(props);\n};\nexport function LuFileLineChart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 13-3.5 3.5-2-2L8 17\"}}]})(props);\n};\nexport function LuFileLock2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 5V4a2 2 0 0 1 2-2h8.5L20 7.5V20a2 2 0 0 1-2 2H4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"5\",\"x\":\"2\",\"y\":\"13\",\"rx\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 13v-2a2 2 0 1 0-4 0v2\"}}]})(props);\n};\nexport function LuFileLock (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"6\",\"x\":\"8\",\"y\":\"12\",\"rx\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 12v-2a3 3 0 1 0-6 0v2\"}}]})(props);\n};\nexport function LuFileMinus2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 15h6\"}}]})(props);\n};\nexport function LuFileMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"x2\":\"15\",\"y1\":\"15\",\"y2\":\"15\"}}]})(props);\n};\nexport function LuFileOutput (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 15h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m5 12-3 3 3 3\"}}]})(props);\n};\nexport function LuFilePieChart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 22h2a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v3\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.04 11.71a5.84 5.84 0 1 0 8.2 8.29\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.83 16A5.83 5.83 0 0 0 8 10.17V16h5.83Z\"}}]})(props);\n};\nexport function LuFilePlus2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 15h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 12v6\"}}]})(props);\n};\nexport function LuFilePlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"18\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"x2\":\"15\",\"y1\":\"15\",\"y2\":\"15\"}}]})(props);\n};\nexport function LuFileQuestion (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 10.3c.2-.4.5-.8.9-1a2.1 2.1 0 0 1 2.6.4c.3.4.5.8.5 1.3 0 1.3-2 2-2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17h.01\"}}]})(props);\n};\nexport function LuFileScan (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 10V7.5L14.5 2H6a2 2 0 0 0-2 2v16c0 1.1.9 2 2 2h4.5\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 22a2 2 0 0 1-2-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 22a2 2 0 0 0 2-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 14a2 2 0 0 1 2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 14a2 2 0 0 0-2 2\"}}]})(props);\n};\nexport function LuFileSearch2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"11.5\",\"cy\":\"14.5\",\"r\":\"2.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.25 16.25 15 18\"}}]})(props);\n};\nexport function LuFileSearch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v3\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 17a3 3 0 1 0 0-6 3 3 0 0 0 0 6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 18-1.5-1.5\"}}]})(props);\n};\nexport function LuFileSignature (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 19.5v.5a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8.5L18 5.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 18h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.42 9.61a2.1 2.1 0 1 1 2.97 2.97L16.95 17 13 18l.99-3.95 4.43-4.44Z\"}}]})(props);\n};\nexport function LuFileSpreadsheet (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 13h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 17h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 13h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 17h2\"}}]})(props);\n};\nexport function LuFileStack (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 2v5h5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 6v6.5c0 .8-.7 1.5-1.5 1.5h-7c-.8 0-1.5-.7-1.5-1.5v-9c0-.8.7-1.5 1.5-1.5H17l4 4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 8v8.8c0 .3.2.6.4.8.2.2.5.4.8.4H15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 12v8.8c0 .3.2.6.4.8.2.2.5.4.8.4H11\"}}]})(props);\n};\nexport function LuFileSymlink (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v7\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10 18 3-3-3-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 18v-1a2 2 0 0 1 2-2h6\"}}]})(props);\n};\nexport function LuFileTerminal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 16 2-2-2-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18h4\"}}]})(props);\n};\nexport function LuFileText (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"8\",\"y1\":\"13\",\"y2\":\"13\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"8\",\"y1\":\"17\",\"y2\":\"17\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"x2\":\"8\",\"y1\":\"9\",\"y2\":\"9\"}}]})(props);\n};\nexport function LuFileType2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 13v-1h6v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 18h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12v6\"}}]})(props);\n};\nexport function LuFileType (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 13v-1h6v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 18h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12v6\"}}]})(props);\n};\nexport function LuFileUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12v6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 15-3-3-3 3\"}}]})(props);\n};\nexport function LuFileVideo2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 8V4a2 2 0 0 1 2-2h8.5L20 7.5V20a2 2 0 0 1-2 2H4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10 15.5 4 2.5v-6l-4 2.5\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"6\",\"x\":\"2\",\"y\":\"12\",\"rx\":\"1\"}}]})(props);\n};\nexport function LuFileVideo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10 11 5 3-5 3v-6Z\"}}]})(props);\n};\nexport function LuFileVolume2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.5 13.5c.32.4.5.94.5 1.5s-.18 1.1-.5 1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 12c.64.8 1 1.87 1 3s-.36 2.2-1 3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 15h.01\"}}]})(props);\n};\nexport function LuFileVolume (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v3\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m7 10-3 2H2v4h2l3 2v-8Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 11c.64.8 1 1.87 1 3s-.36 2.2-1 3\"}}]})(props);\n};\nexport function LuFileWarning (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 9v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17h.01\"}}]})(props);\n};\nexport function LuFileX2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2v6h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m3 12.5 5 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 12.5-5 5\"}}]})(props);\n};\nexport function LuFileX (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9.5\",\"x2\":\"14.5\",\"y1\":\"12.5\",\"y2\":\"17.5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.5\",\"x2\":\"9.5\",\"y1\":\"12.5\",\"y2\":\"17.5\"}}]})(props);\n};\nexport function LuFile (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}}]})(props);\n};\nexport function LuFiles (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 2H8.6c-.4 0-.8.2-1.1.5-.3.3-.5.7-.5 1.1v12.8c0 .4.2.8.5 1.1.3.3.7.5 1.1.5h9.8c.4 0 .8-.2 1.1-.5.3-.3.5-.7.5-1.1V6.5L15.5 2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 7.6v12.8c0 .4.2.8.5 1.1.3.3.7.5 1.1.5h9.8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 2v5h5\"}}]})(props);\n};\nexport function LuFilm (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"20\",\"x\":\"2\",\"y\":\"2\",\"rx\":\"2.18\",\"ry\":\"2.18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"x2\":\"7\",\"y1\":\"2\",\"y2\":\"22\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"x2\":\"17\",\"y1\":\"2\",\"y2\":\"22\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"7\",\"y1\":\"7\",\"y2\":\"7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"7\",\"y1\":\"17\",\"y2\":\"17\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"x2\":\"22\",\"y1\":\"17\",\"y2\":\"17\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"x2\":\"22\",\"y1\":\"7\",\"y2\":\"7\"}}]})(props);\n};\nexport function LuFilterX (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.013 3H2l8 9.46V19l4 2v-8.54l.9-1.055\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 3-5 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17 3 5 5\"}}]})(props);\n};\nexport function LuFilter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\"}}]})(props);\n};\nexport function LuFingerprint (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 12C2 6.5 6.5 2 12 2a10 10 0 0 1 8 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 19.5C5.5 18 6 15 6 12c0-.7.12-1.37.34-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.29 21.02c.12-.6.43-2.3.5-3.02\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.65 22c.21-.66.45-1.32.57-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 13.12c0 2.38 0 6.38-1 8.88\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 16h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.8 16c.2-2 .131-5.354 0-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 6.8a6 6 0 0 1 9 5.2c0 .47 0 1.17-.02 2\"}}]})(props);\n};\nexport function LuFishOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 12.47v.03m0-.5v.47m-.475 5.056A6.744 6.744 0 0 1 15 18c-3.56 0-7.56-2.53-8.5-6 .348-1.28 1.114-2.433 2.121-3.38m3.444-2.088A8.802 8.802 0 0 1 15 6c3.56 0 6.06 2.54 7 6-.309 1.14-.786 2.177-1.413 3.058\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 10.67C7 8 5.58 5.97 2.73 5.5c-1 1.5-1 5 .23 6.5-1.24 1.5-1.24 5-.23 6.5C5.58 18.03 7 16 7 13.33m7.48-4.372A9.77 9.77 0 0 1 16 6.07m0 11.86a9.77 9.77 0 0 1-1.728-3.618\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16.01 17.93-.23 1.4A2 2 0 0 1 13.8 21H9.5a5.96 5.96 0 0 0 1.49-3.98M8.53 3h5.27a2 2 0 0 1 1.98 1.67l.23 1.4M2 2l20 20\"}}]})(props);\n};\nexport function LuFish (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.5 12c.94-3.46 4.94-6 8.5-6 3.56 0 6.06 2.54 7 6-.94 3.47-3.44 6-7 6s-7.56-2.53-8.5-6Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 12v.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 17.93a9.77 9.77 0 0 1 0-11.86\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 10.67C7 8 5.58 5.97 2.73 5.5c-1 1.5-1 5 .23 6.5-1.24 1.5-1.24 5-.23 6.5C5.58 18.03 7 16 7 13.33\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.46 7.26C10.2 5.88 9.17 4.24 8 3h5.8a2 2 0 0 1 1.98 1.67l.23 1.4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16.01 17.93-.23 1.4A2 2 0 0 1 13.8 21H9.5a5.96 5.96 0 0 0 1.49-3.98\"}}]})(props);\n};\nexport function LuFlagOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 2c3 0 5 2 8 2s4-1 4-1v11\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 22V4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 15s1-1 4-1 5 2 8 2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuFlagTriangleLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 22V2L7 7l10 5\"}}]})(props);\n};\nexport function LuFlagTriangleRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 22V2l10 5-10 5\"}}]})(props);\n};\nexport function LuFlag (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"x2\":\"4\",\"y1\":\"22\",\"y2\":\"15\"}}]})(props);\n};\nexport function LuFlame (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z\"}}]})(props);\n};\nexport function LuFlashlightOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16v4a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2V10c0-2-2-2-2-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 2h11v4c0 2-2 2-2 4v1\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"11\",\"x2\":\"18\",\"y1\":\"6\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuFlashlight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 6c0 2-2 2-2 4v10a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2V10c0-2-2-2-2-4V2h12z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"x2\":\"18\",\"y1\":\"6\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"12\",\"y2\":\"12\"}}]})(props);\n};\nexport function LuFlaskConicalOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 10 4.72 20.55a1 1 0 0 0 .9 1.45h12.76a1 1 0 0 0 .9-1.45l-1.272-2.542\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 2v2.343\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2v6.343\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 2h7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 16h9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuFlaskConical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 2v7.527a2 2 0 0 1-.211.896L4.72 20.55a1 1 0 0 0 .9 1.45h12.76a1 1 0 0 0 .9-1.45l-5.069-10.127A2 2 0 0 1 14 9.527V2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 2h7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 16h10\"}}]})(props);\n};\nexport function LuFlaskRound (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 2v7.31\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 9.3V1.99\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 2h7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 9.3a6.5 6.5 0 1 1-4 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.52 16h12.96\"}}]})(props);\n};\nexport function LuFlipHorizontal2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3 7 5 5-5 5V7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21 7-5 5 5 5V7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 14v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2v2\"}}]})(props);\n};\nexport function LuFlipHorizontal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 3H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 3h3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 14v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2v2\"}}]})(props);\n};\nexport function LuFlipVertical2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m17 3-5 5-5-5h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17 21-5-5-5 5h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 12H2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 12H8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 12h-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12h-2\"}}]})(props);\n};\nexport function LuFlipVertical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 8V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 12H2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 12H8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 12h-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12h-2\"}}]})(props);\n};\nexport function LuFlower2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5a3 3 0 1 1 3 3m-3-3a3 3 0 1 0-3 3m3-3v1M9 8a3 3 0 1 0 3 3M9 8h1m5 0a3 3 0 1 1-3 3m3-3h-1m-2 3v-1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"8\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10v12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22c4.2 0 7-1.667 7-5-4.2 0-7 1.667-7 5Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22c-4.2 0-7-1.667-7-5 4.2 0 7 1.667 7 5Z\"}}]})(props);\n};\nexport function LuFlower (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7.5a4.5 4.5 0 1 1 4.5 4.5M12 7.5A4.5 4.5 0 1 0 7.5 12M12 7.5V9m-4.5 3a4.5 4.5 0 1 0 4.5 4.5M7.5 12H9m7.5 0a4.5 4.5 0 1 1-4.5 4.5m4.5-4.5H15m-3 4.5V15\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 16 1.5-1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 9.5 16 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 8 1.5 1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 14.5 16 16\"}}]})(props);\n};\nexport function LuFocus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 7V5a2 2 0 0 1 2-2h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3h2a2 2 0 0 1 2 2v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 17v2a2 2 0 0 1-2 2h-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 21H5a2 2 0 0 1-2-2v-2\"}}]})(props);\n};\nexport function LuFoldHorizontal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 12h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12h-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 14v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m19 9-3 3 3 3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m5 15 3-3-3-3\"}}]})(props);\n};\nexport function LuFoldVertical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22v-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8V2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 12H2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 12H8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 12h-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12h-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 19-3-3-3 3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 5-3 3-3-3\"}}]})(props);\n};\nexport function LuFolderArchive (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 20V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2h6\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"19\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 11v-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 17v-2\"}}]})(props);\n};\nexport function LuFolderCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 13 2 2 4-4\"}}]})(props);\n};\nexport function LuFolderClock (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 20H4a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2h3.93a2 2 0 0 1 1.66.9l.82 1.2a2 2 0 0 0 1.66.9H20a2 2 0 0 1 2 2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"16\",\"r\":\"6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 14v2l1 1\"}}]})(props);\n};\nexport function LuFolderClosed (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 10h20\"}}]})(props);\n};\nexport function LuFolderCog2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"13\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 15v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14.6 11.5-.87.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10.27 14-.87.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14.6 14.5-.87-.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10.27 12-.87-.5\"}}]})(props);\n};\nexport function LuFolderCog (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.5 20H4a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2h3.93a2 2 0 0 1 1.66.9l.82 1.2a2 2 0 0 0 1.66.9H20a2 2 0 0 1 2 2v3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"18\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 14v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 21v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 18h-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 18h-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21 15-.88.88\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.88 20.12 15 21\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21 21-.88-.88\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.88 15.88 15 15\"}}]})(props);\n};\nexport function LuFolderDot (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"13\",\"r\":\"1\"}}]})(props);\n};\nexport function LuFolderDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10v6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 13-3 3-3-3\"}}]})(props);\n};\nexport function LuFolderEdit (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.42 10.61a2.1 2.1 0 1 1 2.97 2.97L5.95 19 2 20l.99-3.95 5.43-5.44Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 11.5V5c0-1.1.9-2 2-2h3.93a2 2 0 0 1 1.66.9l.82 1.2a2 2 0 0 0 1.66.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-9.5\"}}]})(props);\n};\nexport function LuFolderGit2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"13\",\"cy\":\"12\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 19c-2.8 0-5-2.2-5-5v8\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"20\",\"cy\":\"19\",\"r\":\"2\"}}]})(props);\n};\nexport function LuFolderGit (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"13\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 13h3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 13h3\"}}]})(props);\n};\nexport function LuFolderHeart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 20H4a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2h3.93a2 2 0 0 1 1.66.9l.82 1.2a2 2 0 0 0 1.66.9H20a2 2 0 0 1 2 2v1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.29 13.7a2.43 2.43 0 0 0-2.65-.52c-.3.12-.57.3-.8.53l-.34.34-.35-.34a2.43 2.43 0 0 0-2.65-.53c-.3.12-.56.3-.79.53-.95.94-1 2.53.2 3.74L17.5 21l3.6-3.55c1.2-1.21 1.14-2.8.19-3.74Z\"}}]})(props);\n};\nexport function LuFolderInput (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 9V5c0-1.1.9-2 2-2h3.93a2 2 0 0 1 1.66.9l.82 1.2a2 2 0 0 0 1.66.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 13h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 16 3-3-3-3\"}}]})(props);\n};\nexport function LuFolderKanban (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 10v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 10v6\"}}]})(props);\n};\nexport function LuFolderKey (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 20H4a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2h3.93a2 2 0 0 1 1.66.9l.82 1.2a2 2 0 0 0 1.66.9H20a2 2 0 0 1 2 2v2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"20\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 14-4.5 4.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21 15 1 1\"}}]})(props);\n};\nexport function LuFolderLock (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 20H4a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2h3.93a2 2 0 0 1 1.66.9l.82 1.2a2 2 0 0 0 1.66.9H20a2 2 0 0 1 2 2v2.5\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"5\",\"x\":\"14\",\"y\":\"17\",\"rx\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 17v-2a2 2 0 1 0-4 0v2\"}}]})(props);\n};\nexport function LuFolderMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"x2\":\"15\",\"y1\":\"13\",\"y2\":\"13\"}}]})(props);\n};\nexport function LuFolderOpenDot (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m6 14 1.45-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.55 6a2 2 0 0 1-1.94 1.5H4a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2h3.93a2 2 0 0 1 1.66.9l.82 1.2a2 2 0 0 0 1.66.9H18a2 2 0 0 1 2 2v2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"14\",\"cy\":\"15\",\"r\":\"1\"}}]})(props);\n};\nexport function LuFolderOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m6 14 1.45-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.55 6a2 2 0 0 1-1.94 1.5H4a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2h3.93a2 2 0 0 1 1.66.9l.82 1.2a2 2 0 0 0 1.66.9H18a2 2 0 0 1 2 2v2\"}}]})(props);\n};\nexport function LuFolderOutput (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 7.5V5c0-1.1.9-2 2-2h3.93a2 2 0 0 1 1.66.9l.82 1.2a2 2 0 0 0 1.66.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 13h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m5 10-3 3 3 3\"}}]})(props);\n};\nexport function LuFolderPlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"10\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"x2\":\"15\",\"y1\":\"13\",\"y2\":\"13\"}}]})(props);\n};\nexport function LuFolderRoot (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"13\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 15v5\"}}]})(props);\n};\nexport function LuFolderSearch2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"11.5\",\"cy\":\"12.5\",\"r\":\"2.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.27 14.27 15 16\"}}]})(props);\n};\nexport function LuFolderSearch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 20H4a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2h3.93a2 2 0 0 1 1.66.9l.82 1.2a2 2 0 0 0 1.66.9H20a2 2 0 0 1 2 2v4\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17\",\"cy\":\"17\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21 21-1.5-1.5\"}}]})(props);\n};\nexport function LuFolderSymlink (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 9V5c0-1.1.9-2 2-2h3.93a2 2 0 0 1 1.66.9l.82 1.2a2 2 0 0 0 1.66.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 16 3-3-3-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 16v-1a2 2 0 0 1 2-2h6\"}}]})(props);\n};\nexport function LuFolderSync (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10v4h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12 14 1.5-1.5c.9-.9 2.2-1.5 3.5-1.5s2.6.6 3.5 1.5c.4.4.8 1 1 1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 22v-4h-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 18-1.5 1.5c-.9.9-2.1 1.5-3.5 1.5s-2.6-.6-3.5-1.5c-.4-.4-.8-1-1-1.5\"}}]})(props);\n};\nexport function LuFolderTree (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 10h7a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 21h7a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.88a1 1 0 0 1-.9-.55l-.44-.9a1 1 0 0 0-.9-.55H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3v2c0 1.1.9 2 2 2h3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3v13c0 1.1.9 2 2 2h3\"}}]})(props);\n};\nexport function LuFolderUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10v6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 13 3-3 3 3\"}}]})(props);\n};\nexport function LuFolderX (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9.5 10.5 5 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14.5 10.5-5 5\"}}]})(props);\n};\nexport function LuFolder (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z\"}}]})(props);\n};\nexport function LuFolders (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 17h12a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3.93a2 2 0 0 1-1.66-.9l-.82-1.2a2 2 0 0 0-1.66-.9H8a2 2 0 0 0-2 2v9c0 1.1.9 2 2 2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 8v11c0 1.1.9 2 2 2h14\"}}]})(props);\n};\nexport function LuFootprints (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 16v-2.38C4 11.5 2.97 10.5 3 8c.03-2.72 1.49-6 4.5-6C9.37 2 10 3.8 10 5.5c0 3.11-2 5.66-2 8.68V16a2 2 0 1 1-4 0Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 20v-2.38c0-2.12 1.03-3.12 1-5.62-.03-2.72-1.49-6-4.5-6C14.63 6 14 7.8 14 9.5c0 3.11 2 5.66 2 8.68V20a2 2 0 1 0 4 0Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 17h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 13h4\"}}]})(props);\n};\nexport function LuForklift (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12H5a2 2 0 0 0-2 2v5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"13\",\"cy\":\"19\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"19\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 19h3m5-17v17h6M6 12V7c0-1.1.9-2 2-2h3l5 5\"}}]})(props);\n};\nexport function LuFormInput (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"12\",\"x\":\"2\",\"y\":\"6\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 12h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 12h.01\"}}]})(props);\n};\nexport function LuForward (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 17 20 12 15 7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 18v-2a4 4 0 0 1 4-4h12\"}}]})(props);\n};\nexport function LuFrame (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"x2\":\"2\",\"y1\":\"6\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"x2\":\"2\",\"y1\":\"18\",\"y2\":\"18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"x2\":\"6\",\"y1\":\"2\",\"y2\":\"22\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"x2\":\"18\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuFramer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 16V9h14V2H5l14 14h-7m-7 0 7 7v-7m-7 0h7\"}}]})(props);\n};\nexport function LuFrown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16s-1.5-2-4-2-4 2-4 2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"x2\":\"9.01\",\"y1\":\"9\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"x2\":\"15.01\",\"y1\":\"9\",\"y2\":\"9\"}}]})(props);\n};\nexport function LuFuel (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"15\",\"y1\":\"22\",\"y2\":\"22\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"x2\":\"14\",\"y1\":\"9\",\"y2\":\"9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 22V4a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 13h2a2 2 0 0 1 2 2v2a2 2 0 0 0 2 2h0a2 2 0 0 0 2-2V9.83a2 2 0 0 0-.59-1.42L18 5\"}}]})(props);\n};\nexport function LuFunctionSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 17c2 0 2.8-1 2.8-2.8V10c0-2 1-3.3 3.2-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 11.2h5.7\"}}]})(props);\n};\nexport function LuGalleryHorizontalEnd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 7v10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 5v14\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"12\",\"height\":\"18\",\"x\":\"10\",\"y\":\"3\",\"rx\":\"2\"}}]})(props);\n};\nexport function LuGalleryHorizontal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 3v18\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"12\",\"height\":\"18\",\"x\":\"6\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 3v18\"}}]})(props);\n};\nexport function LuGalleryThumbnails (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"14\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 21h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 21h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 21h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 21h1\"}}]})(props);\n};\nexport function LuGalleryVerticalEnd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 2h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 6h14\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"12\",\"x\":\"3\",\"y\":\"10\",\"rx\":\"2\"}}]})(props);\n};\nexport function LuGalleryVertical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 2h18\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"12\",\"x\":\"3\",\"y\":\"6\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 22h18\"}}]})(props);\n};\nexport function LuGamepad2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"x2\":\"10\",\"y1\":\"11\",\"y2\":\"11\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"8\",\"y1\":\"9\",\"y2\":\"13\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"x2\":\"15.01\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"x2\":\"18.01\",\"y1\":\"10\",\"y2\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.32 5H6.68a4 4 0 0 0-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258-.007-.05-.011-.1-.017-.151A4 4 0 0 0 17.32 5z\"}}]})(props);\n};\nexport function LuGamepad (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"x2\":\"10\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"8\",\"y1\":\"10\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"x2\":\"15.01\",\"y1\":\"13\",\"y2\":\"13\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"x2\":\"18.01\",\"y1\":\"11\",\"y2\":\"11\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"12\",\"x\":\"2\",\"y\":\"6\",\"rx\":\"2\"}}]})(props);\n};\nexport function LuGanttChartSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 8h7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 12h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 16h5\"}}]})(props);\n};\nexport function LuGanttChart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 6h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 12h9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 18h7\"}}]})(props);\n};\nexport function LuGaugeCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.6 2.7a10 10 0 1 0 5.7 5.7\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.4 10.6 19 5\"}}]})(props);\n};\nexport function LuGauge (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12 14 4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.34 19a10 10 0 1 1 17.32 0\"}}]})(props);\n};\nexport function LuGavel (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m14 13-7.5 7.5c-.83.83-2.17.83-3 0 0 0 0 0 0 0a2.12 2.12 0 0 1 0-3L11 10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 16 6-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 8 6-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 7 8 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21 11-8-8\"}}]})(props);\n};\nexport function LuGem (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 3h12l4 6-10 13L2 9Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 3 8 9l4 13 4-13-3-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 9h20\"}}]})(props);\n};\nexport function LuGhost (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 10h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 10h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2a8 8 0 0 0-8 8v12l3-3 2.5 2.5L12 19l2.5 2.5L17 19l3 3V10a8 8 0 0 0-8-8z\"}}]})(props);\n};\nexport function LuGift (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"20 12 20 22 4 22 4 12\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"5\",\"x\":\"2\",\"y\":\"7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"22\",\"y2\":\"7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z\"}}]})(props);\n};\nexport function LuGitBranchPlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 3v12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 6a9 9 0 0 0-9 9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 15v6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 18h-6\"}}]})(props);\n};\nexport function LuGitBranch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"x2\":\"6\",\"y1\":\"3\",\"y2\":\"15\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"6\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9a9 9 0 0 1-9 9\"}}]})(props);\n};\nexport function LuGitCommit (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"9\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"x2\":\"21\",\"y1\":\"12\",\"y2\":\"12\"}}]})(props);\n};\nexport function LuGitCompare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"18\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 6h3a2 2 0 0 1 2 2v7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 18H8a2 2 0 0 1-2-2V9\"}}]})(props);\n};\nexport function LuGitFork (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"18\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"6\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9v1a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2V9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12v3\"}}]})(props);\n};\nexport function LuGitMerge (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"18\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 21V9a9 9 0 0 0 9 9\"}}]})(props);\n};\nexport function LuGitPullRequestClosed (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"18\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 11.5V15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21 3-6 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21 9-6-6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"x2\":\"6\",\"y1\":\"9\",\"y2\":\"21\"}}]})(props);\n};\nexport function LuGitPullRequestDraft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"18\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 6V5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 11v-1\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"x2\":\"6\",\"y1\":\"9\",\"y2\":\"21\"}}]})(props);\n};\nexport function LuGitPullRequest (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"18\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 6h3a2 2 0 0 1 2 2v7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"x2\":\"6\",\"y1\":\"9\",\"y2\":\"21\"}}]})(props);\n};\nexport function LuGithub (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 18c-4.51 2-5-2-7-2\"}}]})(props);\n};\nexport function LuGitlab (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m22 13.29-3.33-10a.42.42 0 0 0-.14-.18.38.38 0 0 0-.22-.11.39.39 0 0 0-.23.07.42.42 0 0 0-.14.18l-2.26 6.67H8.32L6.1 3.26a.42.42 0 0 0-.1-.18.38.38 0 0 0-.26-.08.39.39 0 0 0-.23.07.42.42 0 0 0-.14.18L2 13.29a.74.74 0 0 0 .27.83L12 21l9.69-6.88a.71.71 0 0 0 .31-.83Z\"}}]})(props);\n};\nexport function LuGlassWater (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.2 22H8.8a2 2 0 0 1-2-1.79L5 3h14l-1.81 17.21A2 2 0 0 1 15.2 22Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 12a5 5 0 0 1 6 0 5 5 0 0 0 6 0\"}}]})(props);\n};\nexport function LuGlasses (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"15\",\"r\":\"4\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"15\",\"r\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 15a2 2 0 0 0-2-2 2 2 0 0 0-2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.5 13 5 7c.7-1.3 1.4-2 3-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.5 13 19 7c-.7-1.3-1.5-2-3-2\"}}]})(props);\n};\nexport function LuGlobe2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.54 15H17a2 2 0 0 0-2 2v4.54\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 3.34V5a3 3 0 0 0 3 3v0a2 2 0 0 1 2 2v0c0 1.1.9 2 2 2v0a2 2 0 0 0 2-2v0c0-1.1.9-2 2-2h3.17\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 21.95V18a2 2 0 0 0-2-2v0a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}}]})(props);\n};\nexport function LuGlobe (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"}}]})(props);\n};\nexport function LuGoal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 13V2l8 4-8 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.55 10.23A9 9 0 1 1 8 4.94\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 10a5 5 0 1 0 8.9 2.02\"}}]})(props);\n};\nexport function LuGrab (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 11.5V9a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v1.4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 10V8a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 9.9V9a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 14v0a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 11v0a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-4a8 8 0 0 1-8-8 2 2 0 1 1 4 0\"}}]})(props);\n};\nexport function LuGraduationCap (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 10v6M2 10l10-5 10 5-10 5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 12v5c3 3 9 3 12 0v-5\"}}]})(props);\n};\nexport function LuGrape (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 5V2l-5.89 5.89\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16.6\",\"cy\":\"15.89\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.11\",\"cy\":\"7.4\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12.35\",\"cy\":\"11.65\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"13.91\",\"cy\":\"5.85\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18.15\",\"cy\":\"10.09\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.56\",\"cy\":\"13.2\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10.8\",\"cy\":\"17.44\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"19\",\"r\":\"3\"}}]})(props);\n};\nexport function LuGrid (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"9\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"15\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"x2\":\"9\",\"y1\":\"3\",\"y2\":\"21\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"x2\":\"15\",\"y1\":\"3\",\"y2\":\"21\"}}]})(props);\n};\nexport function LuGripHorizontal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"9\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19\",\"cy\":\"9\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"9\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"15\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19\",\"cy\":\"15\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"15\",\"r\":\"1\"}}]})(props);\n};\nexport function LuGripVertical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"12\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"5\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"19\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"12\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"5\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"19\",\"r\":\"1\"}}]})(props);\n};\nexport function LuGrip (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19\",\"cy\":\"5\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"5\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19\",\"cy\":\"12\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"12\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"19\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19\",\"cy\":\"19\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"19\",\"r\":\"1\"}}]})(props);\n};\nexport function LuGroup (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 7V5c0-1.1.9-2 2-2h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3h2c1.1 0 2 .9 2 2v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 17v2c0 1.1-.9 2-2 2h-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 21H5c-1.1 0-2-.9-2-2v-2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"7\",\"height\":\"5\",\"x\":\"7\",\"y\":\"7\",\"rx\":\"1\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"7\",\"height\":\"5\",\"x\":\"10\",\"y\":\"12\",\"rx\":\"1\"}}]})(props);\n};\nexport function LuHammer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m15 12-8.5 8.5c-.83.83-2.17.83-3 0 0 0 0 0 0 0a2.12 2.12 0 0 1 0-3L12 9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.64 15 22 10.64\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m20.91 11.7-1.25-1.25c-.6-.6-.93-1.4-.93-2.25v-.86L16.01 4.6a5.56 5.56 0 0 0-3.94-1.64H9l.92.82A6.18 6.18 0 0 1 12 8.4v1.56l2 2h2.47l2.26 1.91\"}}]})(props);\n};\nexport function LuHandMetal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 12.5V10a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v1.4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 11V9a2 2 0 1 0-4 0v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 10.5V5a2 2 0 1 0-4 0v9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m7 15-1.76-1.76a2 2 0 0 0-2.83 2.82l3.6 3.6C7.5 21.14 9.2 22 12 22h2a8 8 0 0 0 8-8V7a2 2 0 1 0-4 0v5\"}}]})(props);\n};\nexport function LuHand (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 11V6a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 10V4a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 10.5V6a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15\"}}]})(props);\n};\nexport function LuHardDriveDownload (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2v8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 6-4 4-4-4\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"8\",\"x\":\"2\",\"y\":\"14\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 18h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 18h.01\"}}]})(props);\n};\nexport function LuHardDriveUpload (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m16 6-4-4-4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2v8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"8\",\"x\":\"2\",\"y\":\"14\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 18h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 18h.01\"}}]})(props);\n};\nexport function LuHardDrive (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"x2\":\"2\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"x2\":\"6.01\",\"y1\":\"16\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"x2\":\"10.01\",\"y1\":\"16\",\"y2\":\"16\"}}]})(props);\n};\nexport function LuHardHat (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 18a1 1 0 0 0 1 1h18a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 10V5a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 15v-3a6 6 0 0 1 6-6h0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 6h0a6 6 0 0 1 6 6v3\"}}]})(props);\n};\nexport function LuHash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"x2\":\"20\",\"y1\":\"9\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"x2\":\"20\",\"y1\":\"15\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"x2\":\"8\",\"y1\":\"3\",\"y2\":\"21\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"14\",\"y1\":\"3\",\"y2\":\"21\"}}]})(props);\n};\nexport function LuHaze (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m5.2 6.2 1.4 1.4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 13h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 13h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17.4 7.6 1.4-1.4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 17H2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 21H2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 13a4 4 0 0 0-8 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5V2.5\"}}]})(props);\n};\nexport function LuHdmiPort (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 9a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h1l2 2h12l2-2h1a1 1 0 0 0 1-1Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 12h9\"}}]})(props);\n};\nexport function LuHeading1 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 12h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 18V6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18V6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17 12 3-2v8\"}}]})(props);\n};\nexport function LuHeading2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 12h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 18V6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18V6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1\"}}]})(props);\n};\nexport function LuHeading3 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 12h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 18V6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18V6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2\"}}]})(props);\n};\nexport function LuHeading4 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 12h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 18V6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18V6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 10v4h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 10v8\"}}]})(props);\n};\nexport function LuHeading5 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 12h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 18V6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18V6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 13v-3h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 17.7c.4.2.8.3 1.3.3 1.5 0 2.7-1.1 2.7-2.5S19.8 13 18.3 13H17\"}}]})(props);\n};\nexport function LuHeading6 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 12h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 18V6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18V6\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19\",\"cy\":\"16\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 10c-2 2-3 3.5-3 6\"}}]})(props);\n};\nexport function LuHeading (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 12h12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 20V4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 20V4\"}}]})(props);\n};\nexport function LuHeadphones (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3\"}}]})(props);\n};\nexport function LuHeartCrack (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12 13-1-1 2-2-3-3 2-2\"}}]})(props);\n};\nexport function LuHeartHandshake (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5 9.04 7.96a2.17 2.17 0 0 0 0 3.08v0c.82.82 2.13.85 3 .07l2.07-1.9a2.82 2.82 0 0 1 3.79 0l2.96 2.66\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m18 15-2-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 18-2-2\"}}]})(props);\n};\nexport function LuHeartOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"2\",\"x2\":\"22\",\"y2\":\"22\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 16.5 12 21l-7-7c-1.5-1.45-3-3.2-3-5.5a5.5 5.5 0 0 1 2.14-4.35\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.76 3.1c1.15.22 2.13.78 3.24 1.9 1.5-1.5 2.74-2 4.5-2A5.5 5.5 0 0 1 22 8.5c0 2.12-1.3 3.78-2.67 5.17\"}}]})(props);\n};\nexport function LuHeartPulse (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.22 12H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27\"}}]})(props);\n};\nexport function LuHeart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z\"}}]})(props);\n};\nexport function LuHelpCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17h.01\"}}]})(props);\n};\nexport function LuHelpingHand (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3 15 5.12-5.12A3 3 0 0 1 10.24 9H13a2 2 0 1 1 0 4h-2.5m4-.68 4.17-4.89a1.88 1.88 0 0 1 2.92 2.36l-4.2 5.94A3 3 0 0 1 14.96 17H9.83a2 2 0 0 0-1.42.59L7 19\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m2 14 6 6\"}}]})(props);\n};\nexport function LuHexagon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"}}]})(props);\n};\nexport function LuHighlighter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m9 11-6 6v3h9l3-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 12-4.6 4.6a2 2 0 0 1-2.8 0l-5.2-5.2a2 2 0 0 1 0-2.8L14 4\"}}]})(props);\n};\nexport function LuHistory (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3v5h5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7v5l4 2\"}}]})(props);\n};\nexport function LuHome (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 22 9 12 15 12 15 22\"}}]})(props);\n};\nexport function LuHopOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.5 5.5C19 7 20.5 9 21 11c-1.323.265-2.646.39-4.118.226\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.5 17.5C7 19 9 20.5 11 21c.5-2.5.5-5-1-8.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.5 17.5c-2.5 0-4 0-6-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 11.5c1 1.5 2 3.5 2 4.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.5 20c1.5 1 3.5 2 4.5 2 .5-1.5 0-3-.5-4.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 22c-2 0-3.5-.5-5.5-1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.783 4.782C1.073 8.492 1 14.5 5 18c1-1 2-4.5 1.5-6.5 1.5 1 4 1 5.5.5M8.227 2.57C11.578 1.335 15.453 2.089 18 5c-.88.88-3.7 1.761-5.726 1.618\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuHop (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.5 5.5C19 7 20.5 9 21 11c-2.5.5-5 .5-8.5-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.5 17.5C7 19 9 20.5 11 21c.5-2.5.5-5-1-8.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 11.5c1 2 1 3.5 1 6-2.5 0-4 0-6-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 11.5c1 1.5 2 3.5 2 4.5-1.5.5-3 0-4.5-.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.5 20c1.5 1 3.5 2 4.5 2 .5-1.5 0-3-.5-4.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.5 16.5c1 2 1.5 3.5 1.5 5.5-2 0-3.5-.5-5.5-1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.783 4.782C8.493 1.072 14.5 1 18 5c-1 1-4.5 2-6.5 1.5 1 1.5 1 4 .5 5.5-1.5.5-4 .5-5.5-.5C7 13.5 6 17 5 18c-4-3.5-3.927-9.508-.217-13.218Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.5 4.5 3 3c-.184-.185-.184-.816 0-1\"}}]})(props);\n};\nexport function LuHotel (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 16 .348-.24c1.465-1.013 3.84-1.013 5.304 0L15 16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 7h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 7h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 11h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 11h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 11h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 22v-6.5m4 0V22\"}}]})(props);\n};\nexport function LuHourglass (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 22h14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 2h14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 22v-4.172a2 2 0 0 0-.586-1.414L12 12l-4.414 4.414A2 2 0 0 0 7 17.828V22\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 2v4.172a2 2 0 0 0 .586 1.414L12 12l4.414-4.414A2 2 0 0 0 17 6.172V2\"}}]})(props);\n};\nexport function LuIceCream2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17c5 0 8-2.69 8-6H4c0 3.31 3 6 8 6Zm-4 4h8m-4-3v3M5.14 11a3.5 3.5 0 1 1 6.71 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.14 11a3.5 3.5 0 1 1 6.71 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 6.5a3.5 3.5 0 1 0-7 0\"}}]})(props);\n};\nexport function LuIceCream (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7 11 4.08 10.35a1 1 0 0 0 1.84 0L17 11\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 7A5 5 0 0 0 7 7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 7a2 2 0 0 1 0 4H7a2 2 0 0 1 0-4\"}}]})(props);\n};\nexport function LuImageMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 9v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"22\",\"y1\":\"5\",\"y2\":\"5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"9\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21\"}}]})(props);\n};\nexport function LuImageOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.41 10.41a2 2 0 1 1-2.83-2.83\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"13.5\",\"x2\":\"6\",\"y1\":\"13.5\",\"y2\":\"21\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"x2\":\"21\",\"y1\":\"12\",\"y2\":\"15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15V5a2 2 0 0 0-2-2H9\"}}]})(props);\n};\nexport function LuImagePlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"22\",\"y1\":\"5\",\"y2\":\"5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"x2\":\"19\",\"y1\":\"2\",\"y2\":\"8\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"9\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21\"}}]})(props);\n};\nexport function LuImage (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"9\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21\"}}]})(props);\n};\nexport function LuImport (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3v12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 11 4 4 4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 5H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-4\"}}]})(props);\n};\nexport function LuInbox (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 12 16 12 14 15 10 15 8 12 2 12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"}}]})(props);\n};\nexport function LuIndent (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"3 8 7 12 3 16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"x2\":\"11\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"x2\":\"11\",\"y1\":\"6\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"x2\":\"11\",\"y1\":\"18\",\"y2\":\"18\"}}]})(props);\n};\nexport function LuIndianRupee (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 3h12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 8h12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m6 13 8.5 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 13h3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 13c6.667 0 6.667-10 0-10\"}}]})(props);\n};\nexport function LuInfinity (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12c-2-2.67-4-4-6-4a4 4 0 1 0 0 8c2 0 4-1.33 6-4Zm0 0c2 2.67 4 4 6 4a4 4 0 0 0 0-8c-2 0-4 1.33-6 4Z\"}}]})(props);\n};\nexport function LuInfo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 16v-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8h.01\"}}]})(props);\n};\nexport function LuInspect (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12 12 4 10 1.7-4.3L22 16Z\"}}]})(props);\n};\nexport function LuInstagram (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"20\",\"x\":\"2\",\"y\":\"2\",\"rx\":\"5\",\"ry\":\"5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17.5\",\"x2\":\"17.51\",\"y1\":\"6.5\",\"y2\":\"6.5\"}}]})(props);\n};\nexport function LuItalic (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"x2\":\"10\",\"y1\":\"4\",\"y2\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"x2\":\"5\",\"y1\":\"20\",\"y2\":\"20\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"x2\":\"9\",\"y1\":\"4\",\"y2\":\"20\"}}]})(props);\n};\nexport function LuIterationCcw (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 10c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8h8\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 14 20 18 16 22\"}}]})(props);\n};\nexport function LuIterationCw (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 10c0-4.4 3.6-8 8-8s8 3.6 8 8-3.6 8-8 8H4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 22 4 18 8 14\"}}]})(props);\n};\nexport function LuJapaneseYen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 9.5V21m0-11.5L6 3m6 6.5L18 3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 15h12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 11h12\"}}]})(props);\n};\nexport function LuJoystick (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 15v-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 15V9\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"6\",\"r\":\"3\"}}]})(props);\n};\nexport function LuKanbanSquareDashed (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 7v7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 7v9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 3a2 2 0 0 0-2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 3h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 3h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3a2 2 0 0 1 2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 9v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 14v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 19a2 2 0 0 1-2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 21h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 21h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 21a2 2 0 0 1-2-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 14v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9v1\"}}]})(props);\n};\nexport function LuKanbanSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 7v7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 7v9\"}}]})(props);\n};\nexport function LuKanban (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 5v11\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5v6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 5v14\"}}]})(props);\n};\nexport function LuKeyRound (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 18v3c0 .6.4 1 1 1h4v-3h3v-3h2l1.4-1.4a6.5 6.5 0 1 0-4-4Z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16.5\",\"cy\":\"7.5\",\"r\":\".5\"}}]})(props);\n};\nexport function LuKeySquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.4 2.7c.9-.9 2.5-.9 3.4 0l5.5 5.5c.9.9.9 2.5 0 3.4l-3.7 3.7c-.9.9-2.5.9-3.4 0L8.7 9.8c-.9-.9-.9-2.5 0-3.4Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14 7 3 3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.4 10.6 2 18v3c0 .6.4 1 1 1h4v-3h3v-3h2l1.4-1.4\"}}]})(props);\n};\nexport function LuKey (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"7.5\",\"cy\":\"15.5\",\"r\":\"5.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21 2-9.6 9.6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15.5 7.5 3 3L22 7l-3-3\"}}]})(props);\n};\nexport function LuKeyboard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"16\",\"x\":\"2\",\"y\":\"4\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 8h.001\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 8h.001\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 8h.001\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8h.001\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 12h.001\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12h.001\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 12h.001\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 16h10\"}}]})(props);\n};\nexport function LuLampCeiling (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2v5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 7h12l4 9H2l4-9Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.17 16a3 3 0 1 0 5.66 0\"}}]})(props);\n};\nexport function LuLampDesk (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m14 5-3 3 2 7 8-8-7-2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14 5-3 3-3-3 3-3 3 3Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 6.5 4 12l3 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 22v-2c0-1.1.9-2 2-2h4a2 2 0 0 1 2 2v2H3Z\"}}]})(props);\n};\nexport function LuLampFloor (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 2h6l3 7H6l3-7Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 9v13\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 22h6\"}}]})(props);\n};\nexport function LuLampWallDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 13h6l3 7H8l3-7Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 13V8a2 2 0 0 0-2-2H8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 9h2a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2H4v6Z\"}}]})(props);\n};\nexport function LuLampWallUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 4h6l3 7H8l3-7Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 11v5a2 2 0 0 1-2 2H8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 15h2a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H4v-6Z\"}}]})(props);\n};\nexport function LuLamp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 2h8l4 10H4L8 2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12v6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 22v-2c0-1.1.9-2 2-2h4a2 2 0 0 1 2 2v2H8Z\"}}]})(props);\n};\nexport function LuLandmark (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"22\",\"y2\":\"22\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"x2\":\"6\",\"y1\":\"18\",\"y2\":\"11\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"x2\":\"10\",\"y1\":\"18\",\"y2\":\"11\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"x2\":\"14\",\"y1\":\"18\",\"y2\":\"11\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"x2\":\"18\",\"y1\":\"18\",\"y2\":\"11\"}},{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 20 7 4 7\"}}]})(props);\n};\nexport function LuLanguages (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m5 8 6 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m4 14 6-6 2-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 5h12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 2h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 22-5-10-5 10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 18h6\"}}]})(props);\n};\nexport function LuLaptop2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"12\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"20\",\"y2\":\"20\"}}]})(props);\n};\nexport function LuLaptop (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 16V7a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v9m16 0H4m16 0 1.28 2.55a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45L4 16\"}}]})(props);\n};\nexport function LuLassoSelect (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 22a5 5 0 0 1-2-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 16.93c.96.43 1.96.74 2.99.91\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.34 14A6.8 6.8 0 0 1 2 10c0-4.42 4.48-8 10-8s10 3.58 10 8a7.19 7.19 0 0 1-.33 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.33 22h-.09a.35.35 0 0 1-.24-.32v-10a.34.34 0 0 1 .33-.34c.08 0 .15.03.21.08l7.34 6a.33.33 0 0 1-.21.59h-4.49l-2.57 3.85a.35.35 0 0 1-.28.14v0z\"}}]})(props);\n};\nexport function LuLasso (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 22a5 5 0 0 1-2-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.3 14A6.8 6.8 0 0 1 2 10c0-4.4 4.5-8 10-8s10 3.6 10 8-4.5 8-10 8a12 12 0 0 1-5-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z\"}}]})(props);\n};\nexport function LuLaugh (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13a6 6 0 0 1-6 5 6 6 0 0 1-6-5h12Z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"x2\":\"9.01\",\"y1\":\"9\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"x2\":\"15.01\",\"y1\":\"9\",\"y2\":\"9\"}}]})(props);\n};\nexport function LuLayers (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 2 7 12 12 22 7 12 2\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"2 17 12 22 22 17\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"2 12 12 17 22 12\"}}]})(props);\n};\nexport function LuLayoutDashboard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"7\",\"height\":\"9\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"1\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"7\",\"height\":\"5\",\"x\":\"14\",\"y\":\"3\",\"rx\":\"1\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"7\",\"height\":\"9\",\"x\":\"14\",\"y\":\"12\",\"rx\":\"1\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"7\",\"height\":\"5\",\"x\":\"3\",\"y\":\"16\",\"rx\":\"1\"}}]})(props);\n};\nexport function LuLayoutGrid (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"7\",\"height\":\"7\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"1\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"7\",\"height\":\"7\",\"x\":\"14\",\"y\":\"3\",\"rx\":\"1\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"7\",\"height\":\"7\",\"x\":\"14\",\"y\":\"14\",\"rx\":\"1\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"7\",\"height\":\"7\",\"x\":\"3\",\"y\":\"14\",\"rx\":\"1\"}}]})(props);\n};\nexport function LuLayoutList (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"7\",\"height\":\"7\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"1\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"7\",\"height\":\"7\",\"x\":\"3\",\"y\":\"14\",\"rx\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 4h7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 9h7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 15h7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 20h7\"}}]})(props);\n};\nexport function LuLayoutPanelLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"7\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"1\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"7\",\"height\":\"7\",\"x\":\"14\",\"y\":\"3\",\"rx\":\"1\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"7\",\"height\":\"7\",\"x\":\"14\",\"y\":\"14\",\"rx\":\"1\"}}]})(props);\n};\nexport function LuLayoutPanelTop (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"7\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"1\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"7\",\"height\":\"7\",\"x\":\"3\",\"y\":\"14\",\"rx\":\"1\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"7\",\"height\":\"7\",\"x\":\"14\",\"y\":\"14\",\"rx\":\"1\"}}]})(props);\n};\nexport function LuLayoutTemplate (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"7\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"1\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"9\",\"height\":\"7\",\"x\":\"3\",\"y\":\"14\",\"rx\":\"1\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"5\",\"height\":\"7\",\"x\":\"16\",\"y\":\"14\",\"rx\":\"1\"}}]})(props);\n};\nexport function LuLayout (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"9\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"x2\":\"9\",\"y1\":\"21\",\"y2\":\"9\"}}]})(props);\n};\nexport function LuLeaf (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12\"}}]})(props);\n};\nexport function LuLeafyGreen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 22c1.25-.987 2.27-1.975 3.9-2.2a5.56 5.56 0 0 1 3.8 1.5 4 4 0 0 0 6.187-2.353 3.5 3.5 0 0 0 3.69-5.116A3.5 3.5 0 0 0 20.95 8 3.5 3.5 0 1 0 16 3.05a3.5 3.5 0 0 0-5.831 1.373 3.5 3.5 0 0 0-5.116 3.69 4 4 0 0 0-2.348 6.155C3.499 15.42 4.409 16.712 4.2 18.1 3.926 19.743 3.014 20.732 2 22\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 22 17 7\"}}]})(props);\n};\nexport function LuLibrary (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m16 6 4 14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6v14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 8v12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4v16\"}}]})(props);\n};\nexport function LuLifeBuoy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m4.93 4.93 4.24 4.24\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14.83 9.17 4.24-4.24\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14.83 14.83 4.24 4.24\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9.17 14.83-4.24 4.24\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"}}]})(props);\n};\nexport function LuLigature (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 20V8c0-2.2 1.8-4 4-4 1.5 0 2.8.8 3.5 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 12h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 12h2v8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 20h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 20h4\"}}]})(props);\n};\nexport function LuLightbulbOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.8 11.2c.8-.9 1.2-2 1.2-3.2a6 6 0 0 0-9.3-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m2 2 20 20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.3 6.3a4.67 4.67 0 0 0 1.2 5.2c.7.7 1.3 1.5 1.5 2.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 18h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 22h4\"}}]})(props);\n};\nexport function LuLightbulb (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 18h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 22h4\"}}]})(props);\n};\nexport function LuLineChart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3v18h18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m19 9-5 5-4-4-3 3\"}}]})(props);\n};\nexport function LuLink2Off (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 17H7A5 5 0 0 1 7 7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 7h2a5 5 0 0 1 4 8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"12\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuLink2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 17H7A5 5 0 0 1 7 7h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 7h2a5 5 0 1 1 0 10h-2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"16\",\"y1\":\"12\",\"y2\":\"12\"}}]})(props);\n};\nexport function LuLink (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}}]})(props);\n};\nexport function LuLinkedin (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"4\",\"height\":\"12\",\"x\":\"2\",\"y\":\"9\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"4\",\"cy\":\"4\",\"r\":\"2\"}}]})(props);\n};\nexport function LuListChecks (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3 17 2 2 4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m3 7 2 2 4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 6h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 12h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 18h8\"}}]})(props);\n};\nexport function LuListEnd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 12H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 6H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 18H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 6v10a2 2 0 0 1-2 2h-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 16-2 2 2 2\"}}]})(props);\n};\nexport function LuListFilter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 6h18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 12h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 18h4\"}}]})(props);\n};\nexport function LuListMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 12H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 6H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 18H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12h-6\"}}]})(props);\n};\nexport function LuListMusic (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15V6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 18a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 6H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18H3\"}}]})(props);\n};\nexport function LuListOrdered (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"x2\":\"21\",\"y1\":\"6\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"x2\":\"21\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"x2\":\"21\",\"y1\":\"18\",\"y2\":\"18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6h1v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 10h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 18H4c0-1 2-2 2-3s-1-1.5-2-1\"}}]})(props);\n};\nexport function LuListPlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 12H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 6H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 18H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9v6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12h-6\"}}]})(props);\n};\nexport function LuListRestart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 6H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 12H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 18H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L11 14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 10v4h4\"}}]})(props);\n};\nexport function LuListStart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 12H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 18H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 6H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 18V8a2 2 0 0 0-2-2h-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 8-2-2 2-2\"}}]})(props);\n};\nexport function LuListTodo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"5\",\"width\":\"6\",\"height\":\"6\",\"rx\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m3 17 2 2 4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 6h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 12h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 18h8\"}}]})(props);\n};\nexport function LuListTree (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12h-8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 6H8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 18h-8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 6v4c0 1.1.9 2 2 2h3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 10v6c0 1.1.9 2 2 2h3\"}}]})(props);\n};\nexport function LuListVideo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 6H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 12 5 3-5 3v-6Z\"}}]})(props);\n};\nexport function LuListX (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 12H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 6H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 18H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m19 10-4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 10 4 4\"}}]})(props);\n};\nexport function LuList (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"21\",\"y1\":\"6\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"21\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"21\",\"y1\":\"18\",\"y2\":\"18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"3.01\",\"y1\":\"6\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"3.01\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"3.01\",\"y1\":\"18\",\"y2\":\"18\"}}]})(props);\n};\nexport function LuLoader2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12a9 9 0 1 1-6.219-8.56\"}}]})(props);\n};\nexport function LuLoader (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"2\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"18\",\"y2\":\"22\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"x2\":\"7.76\",\"y1\":\"4.93\",\"y2\":\"7.76\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16.24\",\"x2\":\"19.07\",\"y1\":\"16.24\",\"y2\":\"19.07\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"6\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"x2\":\"22\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"x2\":\"7.76\",\"y1\":\"19.07\",\"y2\":\"16.24\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16.24\",\"x2\":\"19.07\",\"y1\":\"7.76\",\"y2\":\"4.93\"}}]})(props);\n};\nexport function LuLocateFixed (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"5\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"x2\":\"22\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"2\",\"y2\":\"5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"19\",\"y2\":\"22\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"7\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"}}]})(props);\n};\nexport function LuLocateOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"5\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"x2\":\"22\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"2\",\"y2\":\"5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"19\",\"y2\":\"22\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.11 7.11C5.83 8.39 5 10.1 5 12c0 3.87 3.13 7 7 7 1.9 0 3.61-.83 4.89-2.11\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.71 13.96c.19-.63.29-1.29.29-1.96 0-3.87-3.13-7-7-7-.67 0-1.33.1-1.96.29\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuLocate (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"5\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"x2\":\"22\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"2\",\"y2\":\"5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"19\",\"y2\":\"22\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"7\"}}]})(props);\n};\nexport function LuLock (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"11\",\"x\":\"3\",\"y\":\"11\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11V7a5 5 0 0 1 10 0v4\"}}]})(props);\n};\nexport function LuLogIn (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 17 15 12 10 7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"x2\":\"3\",\"y1\":\"12\",\"y2\":\"12\"}}]})(props);\n};\nexport function LuLogOut (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 17 21 12 16 7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"x2\":\"9\",\"y1\":\"12\",\"y2\":\"12\"}}]})(props);\n};\nexport function LuLollipop (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21 21-4.3-4.3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 11a2 2 0 0 0 4 0 4 4 0 0 0-8 0 6 6 0 0 0 12 0\"}}]})(props);\n};\nexport function LuLuggage (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 20h0a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 18V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 20h4\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"20\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"20\",\"r\":\"2\"}}]})(props);\n};\nexport function LuMagnet (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m6 15-4-4 6.75-6.77a7.79 7.79 0 0 1 11 11L13 22l-4-4 6.39-6.36a2.14 2.14 0 0 0-3-3L6 15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m5 8 4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12 15 4 4\"}}]})(props);\n};\nexport function LuMailCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 19 2 2 4-4\"}}]})(props);\n};\nexport function LuMailMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 15V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 19h6\"}}]})(props);\n};\nexport function LuMailOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.2 8.4c.5.38.8.97.8 1.6v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V10a2 2 0 0 1 .8-1.6l8-6a2 2 0 0 1 2.4 0l8 6Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 10-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 10\"}}]})(props);\n};\nexport function LuMailPlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 16v6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 19h6\"}}]})(props);\n};\nexport function LuMailQuestion (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 10.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h12.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 15.28c.2-.4.5-.8.9-1a2.1 2.1 0 0 1 2.6.4c.3.4.5.8.5 1.3 0 1.3-2 2-2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 22v.01\"}}]})(props);\n};\nexport function LuMailSearch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h7.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6v0Z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"18\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 22-1.5-1.5\"}}]})(props);\n};\nexport function LuMailWarning (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 10.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h12.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 14v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 22v.01\"}}]})(props);\n};\nexport function LuMailX (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17 17 4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21 17-4 4\"}}]})(props);\n};\nexport function LuMail (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"16\",\"x\":\"2\",\"y\":\"4\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\"}}]})(props);\n};\nexport function LuMailbox (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9.5C2 7 4 5 6.5 5H18c2.2 0 4 1.8 4 4v8Z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"15,9 18,9 18,11\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.5 5C9 5 11 7 11 9.5V17a2 2 0 0 1-2 2v0\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"x2\":\"7\",\"y1\":\"10\",\"y2\":\"10\"}}]})(props);\n};\nexport function LuMails (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"16\",\"height\":\"13\",\"x\":\"6\",\"y\":\"4\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 7-7.1 3.78c-.57.3-1.23.3-1.8 0L6 7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 8v11c0 1.1.9 2 2 2h14\"}}]})(props);\n};\nexport function LuMapPinOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.43 5.43A8.06 8.06 0 0 0 4 10c0 6 8 12 8 12a29.94 29.94 0 0 0 5-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.18 13.52A8.66 8.66 0 0 0 20 10a8 8 0 0 0-8-8 7.88 7.88 0 0 0-3.52.82\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.13 9.13A2.78 2.78 0 0 0 9 10a3 3 0 0 0 3 3 2.78 2.78 0 0 0 .87-.13\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.9 9.25a3 3 0 0 0-2.15-2.16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuMapPin (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"10\",\"r\":\"3\"}}]})(props);\n};\nexport function LuMap (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"3 6 9 3 15 6 21 3 21 18 15 21 9 18 3 21\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"x2\":\"9\",\"y1\":\"3\",\"y2\":\"18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"x2\":\"15\",\"y1\":\"6\",\"y2\":\"21\"}}]})(props);\n};\nexport function LuMartini (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 22h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 11v11\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m19 3-7 8-7-8Z\"}}]})(props);\n};\nexport function LuMaximize2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 3 21 3 21 9\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 21 3 21 3 15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"x2\":\"14\",\"y1\":\"3\",\"y2\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"10\",\"y1\":\"21\",\"y2\":\"14\"}}]})(props);\n};\nexport function LuMaximize (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 3H5a2 2 0 0 0-2 2v3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 8V5a2 2 0 0 0-2-2h-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 16v3a2 2 0 0 0 2 2h3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21h3a2 2 0 0 0 2-2v-3\"}}]})(props);\n};\nexport function LuMedal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.21 15 2.66 7.14a2 2 0 0 1 .13-2.2L4.4 2.8A2 2 0 0 1 6 2h12a2 2 0 0 1 1.6.8l1.6 2.14a2 2 0 0 1 .14 2.2L16.79 15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 12 5.12 2.2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m13 12 5.88-9.8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 7h8\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"17\",\"r\":\"5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18v-2h-.5\"}}]})(props);\n};\nexport function LuMegaphoneOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.26 9.26 3 11v3l14.14 3.14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15.34V6l-7.31 2.03\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.6 16.8a3 3 0 1 1-5.8-1.6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuMegaphone (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3 11 18-5v12L3 14v-3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.6 16.8a3 3 0 1 1-5.8-1.6\"}}]})(props);\n};\nexport function LuMeh (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"16\",\"y1\":\"15\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"x2\":\"9.01\",\"y1\":\"9\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"x2\":\"15.01\",\"y1\":\"9\",\"y2\":\"9\"}}]})(props);\n};\nexport function LuMemoryStick (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 19v-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 19v-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 19v-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 19v-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 11V9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 11V9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 11V9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 15h20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1.1a2 2 0 0 0 0 3.837V17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-5.1a2 2 0 0 0 0-3.837Z\"}}]})(props);\n};\nexport function LuMenuSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 8h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 12h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 16h10\"}}]})(props);\n};\nexport function LuMenu (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"x2\":\"20\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"x2\":\"20\",\"y1\":\"6\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"x2\":\"20\",\"y1\":\"18\",\"y2\":\"18\"}}]})(props);\n};\nexport function LuMerge (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m8 6 4-4 4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2v10.3a4 4 0 0 1-1.172 2.872L4 22\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m20 22-5-5\"}}]})(props);\n};\nexport function LuMessageCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3 21 1.9-5.7a8.5 8.5 0 1 1 3.8 3.8z\"}}]})(props);\n};\nexport function LuMessageSquareDashed (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 6V5c0-1.1.9-2 2-2h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 3h3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 3h1c1.1 0 2 .9 2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 9v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15c0 1.1-.9 2-2 2h-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 17h-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m7 17-4 4v-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 12v-2\"}}]})(props);\n};\nexport function LuMessageSquarePlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"x2\":\"15\",\"y1\":\"10\",\"y2\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"7\",\"y2\":\"13\"}}]})(props);\n};\nexport function LuMessageSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"}}]})(props);\n};\nexport function LuMessagesSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 9a2 2 0 0 1-2 2H6l-4 4V4c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2v5Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1\"}}]})(props);\n};\nexport function LuMic2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12 8-9.04 9.06a2.82 2.82 0 1 0 3.98 3.98L16 12\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17\",\"cy\":\"7\",\"r\":\"5\"}}]})(props);\n};\nexport function LuMicOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.89 13.23A7.12 7.12 0 0 0 19 12v-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 10v2a7 7 0 0 0 12 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 9.34V5a3 3 0 0 0-5.68-1.33\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 9v3a3 3 0 0 0 5.12 2.12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"19\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuMic (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 10v2a7 7 0 0 1-14 0v-2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"19\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuMicroscope (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 18h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 22h18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 22a7 7 0 1 0 0-14h-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 14h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 12a2 2 0 0 1-2-2V6h6v4a2 2 0 0 1-2 2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3\"}}]})(props);\n};\nexport function LuMicrowave (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"15\",\"x\":\"2\",\"y\":\"4\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"7\",\"x\":\"6\",\"y\":\"8\",\"rx\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8v7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 19v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 19v2\"}}]})(props);\n};\nexport function LuMilestone (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 6H5a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h13l4-3.5L18 6Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 13v8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3v3\"}}]})(props);\n};\nexport function LuMilkOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 2h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 2v1.343M15 2v2.789a4 4 0 0 0 .672 2.219l.656.984a4 4 0 0 1 .672 2.22v1.131M7.8 7.8l-.128.192A4 4 0 0 0 7 10.212V20a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 15a6.47 6.47 0 0 1 5 0 6.472 6.472 0 0 0 3.435.435\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuMilk (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 2h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 2v2.789a4 4 0 0 1-.672 2.219l-.656.984A4 4 0 0 0 7 10.212V20a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-9.789a4 4 0 0 0-.672-2.219l-.656-.984A4 4 0 0 1 15 4.788V2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 15a6.472 6.472 0 0 1 5 0 6.47 6.47 0 0 0 5 0\"}}]})(props);\n};\nexport function LuMinimize2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"4 14 10 14 10 20\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"20 10 14 10 14 4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"x2\":\"21\",\"y1\":\"10\",\"y2\":\"3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"10\",\"y1\":\"21\",\"y2\":\"14\"}}]})(props);\n};\nexport function LuMinimize (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 3v3a2 2 0 0 1-2 2H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 8h-3a2 2 0 0 1-2-2V3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 16h3a2 2 0 0 1 2 2v3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-3a2 2 0 0 1 2-2h3\"}}]})(props);\n};\nexport function LuMinusCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 12h8\"}}]})(props);\n};\nexport function LuMinusSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 12h8\"}}]})(props);\n};\nexport function LuMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12h14\"}}]})(props);\n};\nexport function LuMonitorCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m9 10 2 2 4-4\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"14\",\"x\":\"2\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 21h8\"}}]})(props);\n};\nexport function LuMonitorDot (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"19\",\"cy\":\"6\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12v3a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 21h8\"}}]})(props);\n};\nexport function LuMonitorDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 13V7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 10-3 3-3-3\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"14\",\"x\":\"2\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 21h8\"}}]})(props);\n};\nexport function LuMonitorOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 17H4a2 2 0 0 1-2-2V5c0-1.5 1-2 1-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 15V5a2 2 0 0 0-2-2H9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 21h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m2 2 20 20\"}}]})(props);\n};\nexport function LuMonitorPause (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 13V7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 13V7\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"14\",\"x\":\"2\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 21h8\"}}]})(props);\n};\nexport function LuMonitorPlay (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m10 7 5 3-5 3Z\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"14\",\"x\":\"2\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 21h8\"}}]})(props);\n};\nexport function LuMonitorSmartphone (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 19v-3.96 3.15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 19h5\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"6\",\"height\":\"10\",\"x\":\"16\",\"y\":\"12\",\"rx\":\"2\"}}]})(props);\n};\nexport function LuMonitorSpeaker (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.5 20H8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 9h.01\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"10\",\"height\":\"16\",\"x\":\"12\",\"y\":\"4\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 6H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h4\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17\",\"cy\":\"15\",\"r\":\"1\"}}]})(props);\n};\nexport function LuMonitorStop (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"7\",\"width\":\"6\",\"height\":\"6\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"14\",\"x\":\"2\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 21h8\"}}]})(props);\n};\nexport function LuMonitorUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m9 10 3-3 3 3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 13V7\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"14\",\"x\":\"2\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 21h8\"}}]})(props);\n};\nexport function LuMonitorX (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m14.5 12.5-5-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9.5 12.5 5-5\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"14\",\"x\":\"2\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 21h8\"}}]})(props);\n};\nexport function LuMonitor (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"14\",\"x\":\"2\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"16\",\"y1\":\"21\",\"y2\":\"21\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"17\",\"y2\":\"21\"}}]})(props);\n};\nexport function LuMoonStar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 5h-4\"}}]})(props);\n};\nexport function LuMoon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z\"}}]})(props);\n};\nexport function LuMoreHorizontal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19\",\"cy\":\"12\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"12\",\"r\":\"1\"}}]})(props);\n};\nexport function LuMoreVertical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"19\",\"r\":\"1\"}}]})(props);\n};\nexport function LuMountainSnow (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m8 3 4 8 5-5 5 15H2L8 3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.14 15.08c2.62-1.57 5.24-1.43 7.86.42 2.74 1.94 5.49 2 8.23.19\"}}]})(props);\n};\nexport function LuMountain (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m8 3 4 8 5-5 5 15H2L8 3z\"}}]})(props);\n};\nexport function LuMousePointer2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m4 4 7.07 17 2.51-7.39L21 11.07z\"}}]})(props);\n};\nexport function LuMousePointerClick (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m9 9 5 12 1.774-5.226L21 14 9 9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16.071 16.071 4.243 4.243\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m7.188 2.239.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656-2.12 2.122\"}}]})(props);\n};\nexport function LuMousePointer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3 3 7.07 16.97 2.51-7.39 7.39-2.51L3 3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m13 13 6 6\"}}]})(props);\n};\nexport function LuMouse (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"5\",\"y\":\"2\",\"width\":\"14\",\"height\":\"20\",\"rx\":\"7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6v4\"}}]})(props);\n};\nexport function LuMove3D (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 3v16h16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m5 19 6-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m2 6 3-3 3 3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m18 16 3 3-3 3\"}}]})(props);\n};\nexport function LuMoveDiagonal2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"5 11 5 5 11 5\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"19 13 19 19 13 19\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"x2\":\"19\",\"y1\":\"5\",\"y2\":\"19\"}}]})(props);\n};\nexport function LuMoveDiagonal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"13 5 19 5 19 11\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"11 19 5 19 5 13\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"x2\":\"5\",\"y1\":\"5\",\"y2\":\"19\"}}]})(props);\n};\nexport function LuMoveDownLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 19H5V13\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5L5 19\"}}]})(props);\n};\nexport function LuMoveDownRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 13V19H13\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 5L19 19\"}}]})(props);\n};\nexport function LuMoveDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 18L12 22L16 18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2V22\"}}]})(props);\n};\nexport function LuMoveHorizontal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"18 8 22 12 18 16\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"6 8 2 12 6 16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"12\",\"y2\":\"12\"}}]})(props);\n};\nexport function LuMoveLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 8L2 12L6 16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 12H22\"}}]})(props);\n};\nexport function LuMoveRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8L22 12L18 16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 12H22\"}}]})(props);\n};\nexport function LuMoveUpLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 11V5H11\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 5L19 19\"}}]})(props);\n};\nexport function LuMoveUpRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 5H19V11\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5L5 19\"}}]})(props);\n};\nexport function LuMoveUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 6L12 2L16 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2V22\"}}]})(props);\n};\nexport function LuMoveVertical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 18 12 22 16 18\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 6 12 2 16 6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuMove (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"5 9 2 12 5 15\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 5 12 2 15 5\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 19 12 22 9 19\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"19 9 22 12 19 15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuMusic2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"18\",\"r\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18V2l7 4\"}}]})(props);\n};\nexport function LuMusic3 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"18\",\"r\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 18V2\"}}]})(props);\n};\nexport function LuMusic4 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 18V5l12-2v13\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 9 12-2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"16\",\"r\":\"3\"}}]})(props);\n};\nexport function LuMusic (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 18V5l12-2v13\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"16\",\"r\":\"3\"}}]})(props);\n};\nexport function LuNavigation2Off (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.31 9.31 5 21l7-4 7 4-1.17-3.17\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.53 8.88 12 2l-1.17 3.17\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuNavigation2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 19 21 12 17 5 21 12 2\"}}]})(props);\n};\nexport function LuNavigationOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.43 8.43 3 11l8 2 2 8 2.57-5.43\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.39 11.73 22 2l-9.73 4.61\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuNavigation (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"3 11 22 2 13 21 11 13 3 11\"}}]})(props);\n};\nexport function LuNetwork (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"16\",\"width\":\"6\",\"height\":\"6\",\"rx\":\"1\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"16\",\"width\":\"6\",\"height\":\"6\",\"rx\":\"1\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"2\",\"width\":\"6\",\"height\":\"6\",\"rx\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12V8\"}}]})(props);\n};\nexport function LuNewspaper (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-2 2Zm0 0a2 2 0 0 1-2-2v-9c0-1.1.9-2 2-2h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 14h-8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 18h-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 6h8v4h-8V6Z\"}}]})(props);\n};\nexport function LuNfc (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 8.32a7.43 7.43 0 0 1 0 7.36\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.46 6.21a11.76 11.76 0 0 1 0 11.58\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.91 4.1a15.91 15.91 0 0 1 .01 15.8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.37 2a20.16 20.16 0 0 1 0 20\"}}]})(props);\n};\nexport function LuNutOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4V2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 10v4a7.004 7.004 0 0 0 5.277 6.787c.412.104.802.292 1.102.592L12 22l.621-.621c.3-.3.69-.488 1.102-.592a7.01 7.01 0 0 0 4.125-2.939\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 10v3.343\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12c-1.349-.573-1.905-1.005-2.5-2-.546.902-1.048 1.353-2.5 2-1.018-.644-1.46-1.08-2-2-1.028.71-1.69.918-3 1 1.081-1.048 1.757-2.03 2-3 .194-.776.84-1.551 1.79-2.21m11.654 5.997c.887-.457 1.28-.891 1.556-1.787 1.032.916 1.683 1.157 3 1-1.297-1.036-1.758-2.03-2-3-.5-2-4-4-8-4-.74 0-1.461.068-2.15.192\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuNut (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4V2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 10v4a7.004 7.004 0 0 0 5.277 6.787c.412.104.802.292 1.102.592L12 22l.621-.621c.3-.3.69-.488 1.102-.592A7.003 7.003 0 0 0 19 14v-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4C8 4 4.5 6 4 8c-.243.97-.919 1.952-2 3 1.31-.082 1.972-.29 3-1 .54.92.982 1.356 2 2 1.452-.647 1.954-1.098 2.5-2 .595.995 1.151 1.427 2.5 2 1.31-.621 1.862-1.058 2.5-2 .629.977 1.162 1.423 2.5 2 1.209-.548 1.68-.967 2-2 1.032.916 1.683 1.157 3 1-1.297-1.036-1.758-2.03-2-3-.5-2-4-4-8-4Z\"}}]})(props);\n};\nexport function LuOctagon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"}}]})(props);\n};\nexport function LuOption (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3h6l6 18h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 3h7\"}}]})(props);\n};\nexport function LuOrbit (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19\",\"cy\":\"5\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"19\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.4 21.9a10 10 0 0 0 9.941-15.416\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.5 2.1a10 10 0 0 0-9.841 15.416\"}}]})(props);\n};\nexport function LuOutdent (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 8 3 12 7 16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"x2\":\"11\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"x2\":\"11\",\"y1\":\"6\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"x2\":\"11\",\"y1\":\"18\",\"y2\":\"18\"}}]})(props);\n};\nexport function LuPackage2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9h18v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m3 9 2.45-4.9A2 2 0 0 1 7.24 3h9.52a2 2 0 0 1 1.8 1.1L21 9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3v6\"}}]})(props);\n};\nexport function LuPackageCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m16 16 2 2 4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 9.4 7.55 4.24\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.29 7 12 12 20.71 7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"22\",\"y2\":\"12\"}}]})(props);\n};\nexport function LuPackageMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 9.4 7.55 4.24\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.29 7 12 12 20.71 7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"22\",\"y2\":\"12\"}}]})(props);\n};\nexport function LuPackageOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.91 8.84 8.56 2.23a1.93 1.93 0 0 0-1.81 0L3.1 4.13a2.12 2.12 0 0 0-.05 3.69l12.22 6.93a2 2 0 0 0 1.94 0L21 12.51a2.12 2.12 0 0 0-.09-3.67Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m3.09 8.84 12.35-6.61a1.93 1.93 0 0 1 1.81 0l3.65 1.9a2.12 2.12 0 0 1 .1 3.69L8.73 14.75a2 2 0 0 1-1.94 0L3 12.51a2.12 2.12 0 0 1 .09-3.67Z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"22\",\"y2\":\"13\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 13.5v3.37a2.06 2.06 0 0 1-1.11 1.83l-6 3.08a1.93 1.93 0 0 1-1.78 0l-6-3.08A2.06 2.06 0 0 1 4 16.87V13.5\"}}]})(props);\n};\nexport function LuPackagePlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 13v6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 9.4 7.55 4.24\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.29 7 12 12 20.71 7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"22\",\"y2\":\"12\"}}]})(props);\n};\nexport function LuPackageSearch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 9.4 7.55 4.24\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.29 7 12 12 20.71 7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"22\",\"y2\":\"12\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18.5\",\"cy\":\"15.5\",\"r\":\"2.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.27 17.27 22 19\"}}]})(props);\n};\nexport function LuPackageX (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 9.4 7.55 4.24\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.29 7 12 12 20.71 7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"22\",\"y2\":\"12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17 13 5 5m-5 0 5-5\"}}]})(props);\n};\nexport function LuPackage (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 9.4 7.55 4.24\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.29 7 12 12 20.71 7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"22\",\"y2\":\"12\"}}]})(props);\n};\nexport function LuPaintBucket (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m19 11-8-8-8.6 8.6a2 2 0 0 0 0 2.8l5.2 5.2c.8.8 2 .8 2.8 0L19 11Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m5 2 5 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 13h15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 20a2 2 0 1 1-4 0c0-1.6 1.7-2.4 2-4 .3 1.6 2 2.4 2 4Z\"}}]})(props);\n};\nexport function LuPaintbrush2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 19.9V16h3a2 2 0 0 0 2-2v-2H5v2c0 1.1.9 2 2 2h3v3.9a2 2 0 1 0 4 0Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 12V2h12v10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 2v2\"}}]})(props);\n};\nexport function LuPaintbrush (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.37 2.63 14 7l-1.59-1.59a2 2 0 0 0-2.82 0L8 7l9 9 1.59-1.59a2 2 0 0 0 0-2.82L17 10l4.37-4.37a2.12 2.12 0 1 0-3-3Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 8c-2 3-4 3.5-7 4l8 10c2-1 6-5 6-7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 17.5 4.5 15\"}}]})(props);\n};\nexport function LuPalette (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"13.5\",\"cy\":\"6.5\",\"r\":\".5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17.5\",\"cy\":\"10.5\",\"r\":\".5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7.5\",\"r\":\".5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.5\",\"cy\":\"12.5\",\"r\":\".5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z\"}}]})(props);\n};\nexport function LuPalmtree (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 8c0-2.76-2.46-5-5.5-5S2 5.24 2 8h2l1-1 1 1h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 7.14A5.82 5.82 0 0 1 16.5 6c3.04 0 5.5 2.24 5.5 5h-3l-1-1-1 1h-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.89 9.71c-2.15 2.15-2.3 5.47-.35 7.43l4.24-4.25.7-.7.71-.71 2.12-2.12c-1.95-1.96-5.27-1.8-7.42.35z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 15.5c.5 2.5-.17 4.5-1 6.5h4c2-5.5-.5-12-1-14\"}}]})(props);\n};\nexport function LuPanelBottomClose (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"15\",\"y2\":\"15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 8-3 3-3-3\"}}]})(props);\n};\nexport function LuPanelBottomInactive (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 15h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 15h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 15h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 15h1\"}}]})(props);\n};\nexport function LuPanelBottomOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"15\",\"y2\":\"15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 10 3-3 3 3\"}}]})(props);\n};\nexport function LuPanelBottom (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"15\",\"y2\":\"15\"}}]})(props);\n};\nexport function LuPanelLeftClose (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 3v18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 15-3-3 3-3\"}}]})(props);\n};\nexport function LuPanelLeftInactive (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 14v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 19v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 3v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 9v1\"}}]})(props);\n};\nexport function LuPanelLeftOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 3v18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14 9 3 3-3 3\"}}]})(props);\n};\nexport function LuPanelLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"x2\":\"9\",\"y1\":\"3\",\"y2\":\"21\"}}]})(props);\n};\nexport function LuPanelRightClose (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"x2\":\"15\",\"y1\":\"3\",\"y2\":\"21\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 9 3 3-3 3\"}}]})(props);\n};\nexport function LuPanelRightInactive (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 14v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 19v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 3v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 9v1\"}}]})(props);\n};\nexport function LuPanelRightOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"x2\":\"15\",\"y1\":\"3\",\"y2\":\"21\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10 15-3-3 3-3\"}}]})(props);\n};\nexport function LuPanelRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"x2\":\"15\",\"y1\":\"3\",\"y2\":\"21\"}}]})(props);\n};\nexport function LuPanelTopClose (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"9\",\"y2\":\"9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 16 3-3 3 3\"}}]})(props);\n};\nexport function LuPanelTopInactive (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 9h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 9h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 9h1\"}}]})(props);\n};\nexport function LuPanelTopOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"9\",\"y2\":\"9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 14-3 3-3-3\"}}]})(props);\n};\nexport function LuPanelTop (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"9\",\"y2\":\"9\"}}]})(props);\n};\nexport function LuPaperclip (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l8.57-8.57A4 4 0 1 1 18 8.84l-8.59 8.57a2 2 0 0 1-2.83-2.83l8.49-8.48\"}}]})(props);\n};\nexport function LuParentheses (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 21s-4-3-4-9 4-9 4-9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 3s4 3 4 9-4 9-4 9\"}}]})(props);\n};\nexport function LuParkingCircleOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m5 5 14 14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 13a3 3 0 1 0 0-6H9v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 17v-2.34\"}}]})(props);\n};\nexport function LuParkingCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 17V7h4a3 3 0 0 1 0 6H9\"}}]})(props);\n};\nexport function LuParkingSquareOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.6 3.6A2 2 0 0 1 5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-.59 1.41\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 8.7V19a2 2 0 0 0 2 2h10.3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m2 2 20 20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 13a3 3 0 1 0 0-6H9v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 17v-2.3\"}}]})(props);\n};\nexport function LuParkingSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 17V7h4a3 3 0 0 1 0 6H9\"}}]})(props);\n};\nexport function LuPartyPopper (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.8 11.3 2 22l10.7-3.79\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 3h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 8h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 2h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 20h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 2-2.24.75a2.9 2.9 0 0 0-1.96 3.12v0c.1.86-.57 1.63-1.45 1.63h-.38c-.86 0-1.6.6-1.76 1.44L14 10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 13-.82-.33c-.86-.34-1.82.2-1.98 1.11v0c-.11.7-.72 1.22-1.43 1.22H17\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m11 2 .33.82c.34.86-.2 1.82-1.11 1.98v0C9.52 4.9 9 5.52 9 6.23V7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 13c1.93 1.93 2.83 4.17 2 5-.83.83-3.07-.07-5-2-1.93-1.93-2.83-4.17-2-5 .83-.83 3.07.07 5 2Z\"}}]})(props);\n};\nexport function LuPauseCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"x2\":\"10\",\"y1\":\"15\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"x2\":\"14\",\"y1\":\"15\",\"y2\":\"9\"}}]})(props);\n};\nexport function LuPauseOctagon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 15V9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 15V9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.714 2h8.572L22 7.714v8.572L16.286 22H7.714L2 16.286V7.714L7.714 2z\"}}]})(props);\n};\nexport function LuPause (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"4\",\"height\":\"16\",\"x\":\"6\",\"y\":\"4\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"4\",\"height\":\"16\",\"x\":\"14\",\"y\":\"4\"}}]})(props);\n};\nexport function LuPcCase (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"14\",\"height\":\"20\",\"x\":\"5\",\"y\":\"2\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 14h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 6h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 10h6\"}}]})(props);\n};\nexport function LuPenLine (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20h9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z\"}}]})(props);\n};\nexport function LuPenSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 2.5a2.12 2.12 0 0 1 3 3L12 15l-4 1 1-4Z\"}}]})(props);\n};\nexport function LuPenTool (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12 19 7-7 3 3-7 7-3-3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m18 13-1.5-7.5L2 2l3.5 14.5L13 18l5-5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m2 2 7.586 7.586\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"2\"}}]})(props);\n};\nexport function LuPen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z\"}}]})(props);\n};\nexport function LuPencilLine (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20h9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 5 3 3\"}}]})(props);\n};\nexport function LuPencilRuler (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m15 5 4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 7 8.7 2.7a2.41 2.41 0 0 0-3.4 0L2.7 5.3a2.41 2.41 0 0 0 0 3.4L7 13\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 6 2-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m2 22 5.5-1.5L21.17 6.83a2.82 2.82 0 0 0-4-4L3.5 16.5Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m18 16 2-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17 11 4.3 4.3c.94.94.94 2.46 0 3.4l-2.6 2.6c-.94.94-2.46.94-3.4 0L11 17\"}}]})(props);\n};\nexport function LuPencil (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 5 4 4\"}}]})(props);\n};\nexport function LuPercent (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"x2\":\"5\",\"y1\":\"5\",\"y2\":\"19\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.5\",\"cy\":\"6.5\",\"r\":\"2.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17.5\",\"cy\":\"17.5\",\"r\":\"2.5\"}}]})(props);\n};\nexport function LuPersonStanding (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 20 3-6 3 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m6 8 6 2 6-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10v4\"}}]})(props);\n};\nexport function LuPhoneCall (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.05 2a9 9 0 0 1 8 7.94\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.05 6A5 5 0 0 1 18 10\"}}]})(props);\n};\nexport function LuPhoneForwarded (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"18 2 22 6 18 10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"x2\":\"22\",\"y1\":\"6\",\"y2\":\"6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"}}]})(props);\n};\nexport function LuPhoneIncoming (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 2 16 8 22 8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"x2\":\"16\",\"y1\":\"2\",\"y2\":\"8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"}}]})(props);\n};\nexport function LuPhoneMissed (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"x2\":\"16\",\"y1\":\"2\",\"y2\":\"8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"}}]})(props);\n};\nexport function LuPhoneOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.68 13.31a16 16 0 0 0 3.41 2.6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7 2 2 0 0 1 1.72 2v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.42 19.42 0 0 1-3.33-2.67m-2.67-3.34a19.79 19.79 0 0 1-3.07-8.63A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"x2\":\"2\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuPhoneOutgoing (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 8 22 2 16 2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"22\",\"y1\":\"8\",\"y2\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"}}]})(props);\n};\nexport function LuPhone (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"}}]})(props);\n};\nexport function LuPiSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 7h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 7v10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 17a2 2 0 0 1-2-2V7\"}}]})(props);\n};\nexport function LuPi (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"x2\":\"9\",\"y1\":\"4\",\"y2\":\"20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 7c0-1.7 1.3-3 3-3h13\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 20c-1.7 0-3-1.3-3-3V4\"}}]})(props);\n};\nexport function LuPictureInPicture2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 9V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h4\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"10\",\"height\":\"7\",\"x\":\"12\",\"y\":\"13\",\"rx\":\"2\"}}]})(props);\n};\nexport function LuPictureInPicture (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 4.5v5H3m-1-6 6 6m13 0v-3c0-1.16-.84-2-2-2h-7m-9 9v2c0 1.05.95 2 2 2h3\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"10\",\"height\":\"7\",\"x\":\"12\",\"y\":\"13.5\",\"ry\":\"2\"}}]})(props);\n};\nexport function LuPieChart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.21 15.89A10 10 0 1 1 8 2.83\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12A10 10 0 0 0 12 2v10z\"}}]})(props);\n};\nexport function LuPiggyBank (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5c-1.5 0-2.8 1.4-3 2-3.5-1.5-11-.3-11 5 0 1.8 0 3 2 4.5V20h4v-2h3v2h4v-4c1-.5 1.7-1 2-2h2v-4h-2c0-1-.5-1.5-1-2h0V5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 9v1c0 1.1.9 2 2 2h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 11h0\"}}]})(props);\n};\nexport function LuPilcrowSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12H9.5a2.5 2.5 0 0 1 0-5H17\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7v10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 7v10\"}}]})(props);\n};\nexport function LuPilcrow (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 4v16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 4v16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4H9.5a4.5 4.5 0 0 0 0 9H13\"}}]})(props);\n};\nexport function LuPill (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m10.5 20.5 10-10a4.95 4.95 0 1 0-7-7l-10 10a4.95 4.95 0 1 0 7 7Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8.5 8.5 7 7\"}}]})(props);\n};\nexport function LuPinOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"17\",\"y2\":\"22\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V17h12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 9.34V6h1a2 2 0 0 0 0-4H7.89\"}}]})(props);\n};\nexport function LuPin (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"17\",\"y2\":\"22\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 17h14v-1.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V6h1a2 2 0 0 0 0-4H8a2 2 0 0 0 0 4h1v4.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24Z\"}}]})(props);\n};\nexport function LuPipette (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m2 22 1-1h3l9-9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 21v-3l9-9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 6 3.4-3.4a2.1 2.1 0 1 1 3 3L18 9l.4.4a2.1 2.1 0 1 1-3 3l-3.8-3.8a2.1 2.1 0 1 1 3-3l.4.4Z\"}}]})(props);\n};\nexport function LuPizza (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 11h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 15h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m2 16 20 6-6-20A20 20 0 0 0 2 16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.71 17.11a17.04 17.04 0 0 1 11.4-11.4\"}}]})(props);\n};\nexport function LuPlaneLanding (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 22h20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.77 10.77 2 9l2-4.5 1.1.55c.55.28.9.84.9 1.45s.35 1.17.9 1.45L8 8.5l3-6 1.05.53a2 2 0 0 1 1.09 1.52l.72 5.4a2 2 0 0 0 1.09 1.52l4.4 2.2c.42.22.78.55 1.01.96l.6 1.03c.49.88-.06 1.98-1.06 2.1l-1.18.15c-.47.06-.95-.02-1.37-.24L4.29 11.15a2 2 0 0 1-.52-.38Z\"}}]})(props);\n};\nexport function LuPlaneTakeoff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 22h20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.36 17.4 4 17l-2-4 1.1-.55a2 2 0 0 1 1.8 0l.17.1a2 2 0 0 0 1.8 0L8 12 5 6l.9-.45a2 2 0 0 1 2.09.2l4.02 3a2 2 0 0 0 2.1.2l4.19-2.06a2.41 2.41 0 0 1 1.73-.17L21 7a1.4 1.4 0 0 1 .87 1.99l-.38.76c-.23.46-.6.84-1.07 1.08L7.58 17.2a2 2 0 0 1-1.22.18Z\"}}]})(props);\n};\nexport function LuPlane (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z\"}}]})(props);\n};\nexport function LuPlayCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polygon\",\"attr\":{\"points\":\"10 8 16 12 10 16 10 8\"}}]})(props);\n};\nexport function LuPlaySquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 8 6 4-6 4Z\"}}]})(props);\n};\nexport function LuPlay (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"5 3 19 12 5 21 5 3\"}}]})(props);\n};\nexport function LuPlug2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 2v6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 2v6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17v5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 8h14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 11V8h12v3a6 6 0 1 1-12 0v0Z\"}}]})(props);\n};\nexport function LuPlugZap2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m13 2-2 2.5h3L12 7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 14v-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 14v-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 19c-1.7 0-3-1.3-3-3v-2h8v2c0 1.7-1.3 3-3 3Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22v-3\"}}]})(props);\n};\nexport function LuPlugZap (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m2 22 3-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 13.5 10 11\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.5 16.5 13 14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m18 3-4 4h6l-4 4\"}}]})(props);\n};\nexport function LuPlug (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22v-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 8V2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 8V2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z\"}}]})(props);\n};\nexport function LuPlusCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 12h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8v8\"}}]})(props);\n};\nexport function LuPlusSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 12h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8v8\"}}]})(props);\n};\nexport function LuPlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12h14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5v14\"}}]})(props);\n};\nexport function LuPocketKnife (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 2v1c0 1 2 1 2 2S3 6 3 7s2 1 2 2-2 1-2 2 2 1 2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 6h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 18h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.83 8.83a4 4 0 0 0-5.66-5.66l-12 12a4 4 0 1 0 5.66 5.66Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 11.66V22a4 4 0 0 0 4-4V6\"}}]})(props);\n};\nexport function LuPocket (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 3h16a2 2 0 0 1 2 2v6a10 10 0 0 1-10 10A10 10 0 0 1 2 11V5a2 2 0 0 1 2-2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 10 12 14 16 10\"}}]})(props);\n};\nexport function LuPodcast (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"11\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 17a1 1 0 0 1 2 0c0 .5-.34 3-.5 4.5a.5.5 0 0 1-1 0c-.16-1.5-.5-4-.5-4.5Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 14a5 5 0 1 1 8 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 18.5a9 9 0 1 0-10 0\"}}]})(props);\n};\nexport function LuPointer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 14a8 8 0 0 1-8 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 11v-1a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 10V9a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 9.5V4a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15\"}}]})(props);\n};\nexport function LuPopcorn (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8a2 2 0 0 0 0-4 2 2 0 0 0-4 0 2 2 0 0 0-4 0 2 2 0 0 0-4 0 2 2 0 0 0 0 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 22 9 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14 22 1-14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8c.5 0 .9.4.8 1l-2.6 12c-.1.5-.7 1-1.2 1H7c-.6 0-1.1-.4-1.2-1L3.2 9c-.1-.6.3-1 .8-1Z\"}}]})(props);\n};\nexport function LuPopsicle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.6 14.4c.8-.8.8-2 0-2.8l-8.1-8.1a4.95 4.95 0 1 0-7.1 7.1l8.1 8.1c.9.7 2.1.7 2.9-.1Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 22-5.5-5.5\"}}]})(props);\n};\nexport function LuPoundSterling (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 7c0-5.333-8-5.333-8 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 7v14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 21h12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 13h10\"}}]})(props);\n};\nexport function LuPowerOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.36 6.64A9 9 0 0 1 20.77 15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.16 6.16a9 9 0 1 0 12.68 12.68\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m2 2 20 20\"}}]})(props);\n};\nexport function LuPower (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.36 6.64a9 9 0 1 1-12.73 0\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"2\",\"y2\":\"12\"}}]})(props);\n};\nexport function LuPresentation (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 3h20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m7 21 5-5 5 5\"}}]})(props);\n};\nexport function LuPrinter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"6 9 6 2 18 2 18 9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"12\",\"height\":\"8\",\"x\":\"6\",\"y\":\"14\"}}]})(props);\n};\nexport function LuProjector (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 7 3 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 6V3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m13 7 2-2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"13\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.83 12H20a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h2.17\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16h2\"}}]})(props);\n};\nexport function LuPuzzle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.439 7.85c-.049.322.059.648.289.878l1.568 1.568c.47.47.706 1.087.706 1.704s-.235 1.233-.706 1.704l-1.611 1.611a.98.98 0 0 1-.837.276c-.47-.07-.802-.48-.968-.925a2.501 2.501 0 1 0-3.214 3.214c.446.166.855.497.925.968a.979.979 0 0 1-.276.837l-1.61 1.61a2.404 2.404 0 0 1-1.705.707 2.402 2.402 0 0 1-1.704-.706l-1.568-1.568a1.026 1.026 0 0 0-.877-.29c-.493.074-.84.504-1.02.968a2.5 2.5 0 1 1-3.237-3.237c.464-.18.894-.527.967-1.02a1.026 1.026 0 0 0-.289-.877l-1.568-1.568A2.402 2.402 0 0 1 1.998 12c0-.617.236-1.234.706-1.704L4.23 8.77c.24-.24.581-.353.917-.303.515.077.877.528 1.073 1.01a2.5 2.5 0 1 0 3.259-3.259c-.482-.196-.933-.558-1.01-1.073-.05-.336.062-.676.303-.917l1.525-1.525A2.402 2.402 0 0 1 12 1.998c.617 0 1.234.236 1.704.706l1.568 1.568c.23.23.556.338.877.29.493-.074.84-.504 1.02-.968a2.5 2.5 0 1 1 3.237 3.237c-.464.18-.894.527-.967 1.02Z\"}}]})(props);\n};\nexport function LuQrCode (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"5\",\"height\":\"5\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"1\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"5\",\"height\":\"5\",\"x\":\"16\",\"y\":\"3\",\"rx\":\"1\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"5\",\"height\":\"5\",\"x\":\"3\",\"y\":\"16\",\"rx\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16h-3a2 2 0 0 0-2 2v3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 21v.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7v3a2 2 0 0 1-2 2H7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 12h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 16v.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 12h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12v.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 21v-1\"}}]})(props);\n};\nexport function LuQuote (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z\"}}]})(props);\n};\nexport function LuRadar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.07 4.93A10 10 0 0 0 6.99 3.34\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.29 9.62A10 10 0 1 0 21.31 8.35\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.24 7.76A6 6 0 1 0 8.23 16.67\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.99 11.66A6 6 0 0 1 15.77 16.67\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m13.41 10.59 5.66-5.66\"}}]})(props);\n};\nexport function LuRadiation (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12h0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 4.2c-.3-.5-.9-.7-1.3-.4C3.9 5.5 2.3 8.1 2 11c-.1.5.4 1 1 1h5c0-1.5.8-2.8 2-3.4-1.1-1.9-2-3.5-2.5-4.4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12c.6 0 1-.4 1-1-.3-2.9-1.8-5.5-4.1-7.1-.4-.3-1.1-.2-1.3.3-.6.9-1.5 2.5-2.6 4.3 1.2.7 2 2 2 3.5h5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 19.8c-.3.5-.1 1.1.4 1.3 2.6 1.2 5.6 1.2 8.2 0 .5-.2.7-.8.4-1.3-.5-.9-1.4-2.5-2.5-4.3-1.2.7-2.8.7-4 0-1.1 1.8-2 3.4-2.5 4.3z\"}}]})(props);\n};\nexport function LuRadioReceiver (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 16v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 16v2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"8\",\"x\":\"2\",\"y\":\"8\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 12h0\"}}]})(props);\n};\nexport function LuRadioTower (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.9 16.1C1 12.2 1 5.8 4.9 1.9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.8 4.7a6.14 6.14 0 0 0-.8 7.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"9\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.2 4.8c2 2 2.26 5.11.8 7.47\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.1 1.9a9.96 9.96 0 0 1 0 14.1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 18h5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 22 4-11 4 11\"}}]})(props);\n};\nexport function LuRadio (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.9 19.1C1 15.2 1 8.8 4.9 4.9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.8 16.2c-2.3-2.3-2.3-6.1 0-8.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.2 7.8c2.3 2.3 2.3 6.1 0 8.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.1 4.9C23 8.8 23 15.1 19.1 19\"}}]})(props);\n};\nexport function LuRainbow (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 17a10 10 0 0 0-20 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 17a6 6 0 0 1 12 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 17a2 2 0 0 1 4 0\"}}]})(props);\n};\nexport function LuRat (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 5c0-1.7-1.3-3-3-3s-3 1.3-3 3c0 .8.3 1.5.8 2H11c-3.9 0-7 3.1-7 7v0c0 2.2 1.8 4 4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.8 3.9c.3-.3.6-.5 1-.7 1.5-.6 3.3.1 3.9 1.6.6 1.5-.1 3.3-1.6 3.9l1.6 2.8c.2.3.2.7.2 1-.2.8-.9 1.2-1.7 1.1 0 0-1.6-.3-2.7-.6H17c-1.7 0-3 1.3-3 3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.2 18a3 3 0 0 0-2.2-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 22H4a2 2 0 0 1 0-4h12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 9h.01\"}}]})(props);\n};\nexport function LuRatio (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"12\",\"height\":\"20\",\"x\":\"6\",\"y\":\"2\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"12\",\"x\":\"2\",\"y\":\"6\",\"rx\":\"2\"}}]})(props);\n};\nexport function LuReceipt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1-2-1Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17V7\"}}]})(props);\n};\nexport function LuRectangleHorizontal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"12\",\"x\":\"2\",\"y\":\"6\",\"rx\":\"2\"}}]})(props);\n};\nexport function LuRectangleVertical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"12\",\"height\":\"20\",\"x\":\"6\",\"y\":\"2\",\"rx\":\"2\"}}]})(props);\n};\nexport function LuRecycle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 19H4.815a1.83 1.83 0 0 1-1.57-.881 1.785 1.785 0 0 1-.004-1.784L7.196 9.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 19h8.203a1.83 1.83 0 0 0 1.556-.89 1.784 1.784 0 0 0 0-1.775l-1.226-2.12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14 16-3 3 3 3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.293 13.596 7.196 9.5 3.1 10.598\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9.344 5.811 1.093-1.892A1.83 1.83 0 0 1 11.985 3a1.784 1.784 0 0 1 1.546.888l3.943 6.843\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m13.378 9.633 4.096 1.098 1.097-4.096\"}}]})(props);\n};\nexport function LuRedo2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m15 14 5-5-5-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 9H9.5A5.5 5.5 0 0 0 4 14.5v0A5.5 5.5 0 0 0 9.5 20H13\"}}]})(props);\n};\nexport function LuRedoDot (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"17\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 7v6h-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7\"}}]})(props);\n};\nexport function LuRedo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 7v6h-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7\"}}]})(props);\n};\nexport function LuRefreshCcwDot (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 2v6h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12A9 9 0 0 0 6 5.3L3 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 22v-6h-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 12a9 9 0 0 0 15 6.7l3-2.7\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1\"}}]})(props);\n};\nexport function LuRefreshCcw (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3v5h5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16h5v5\"}}]})(props);\n};\nexport function LuRefreshCwOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 8L18.74 5.74A9.75 9.75 0 0 0 12 3C11 3 10.03 3.16 9.13 3.47\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 16H3v5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 12C3 9.51 4 7.26 5.64 5.64\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m3 16 2.26 2.26A9.75 9.75 0 0 0 12 21c2.49 0 4.74-1 6.36-2.64\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12c0 1-.16 1.97-.47 2.87\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3v5h-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 22 2 2\"}}]})(props);\n};\nexport function LuRefreshCw (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3v5h-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 16H3v5\"}}]})(props);\n};\nexport function LuRefrigerator (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 6a4 4 0 0 1 4-4h6a4 4 0 0 1 4 4v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 10h14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 7v6\"}}]})(props);\n};\nexport function LuRegex (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3v10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12.67 5.5 8.66 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12.67 10.5 8.66-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-2z\"}}]})(props);\n};\nexport function LuRemoveFormatting (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 7V4h16v3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 20h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 4 8 20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 15 5 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m20 15-5 5\"}}]})(props);\n};\nexport function LuRepeat1 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m17 2 4 4-4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 11v-1a4 4 0 0 1 4-4h14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m7 22-4-4 4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 13v1a4 4 0 0 1-4 4H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 10h1v4\"}}]})(props);\n};\nexport function LuRepeat2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m2 9 3-3 3 3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 18H7a2 2 0 0 1-2-2V6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 15-3 3-3-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 6h6a2 2 0 0 1 2 2v10\"}}]})(props);\n};\nexport function LuRepeat (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m17 2 4 4-4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 11v-1a4 4 0 0 1 4-4h14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m7 22-4-4 4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 13v1a4 4 0 0 1-4 4H3\"}}]})(props);\n};\nexport function LuReplaceAll (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 4c0-1.1.9-2 2-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2c1.1 0 2 .9 2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 8c0 1.1-.9 2-2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 10c-1.1 0-2-.9-2-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m3 7 3 3 3-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 10V5c0-1.7 1.3-3 3-3h1\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"8\",\"x\":\"2\",\"y\":\"14\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 14c1.1 0 2 .9 2 2v4c0 1.1-.9 2-2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 14c1.1 0 2 .9 2 2v4c0 1.1-.9 2-2 2\"}}]})(props);\n};\nexport function LuReplace (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 4c0-1.1.9-2 2-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2c1.1 0 2 .9 2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 8c0 1.1-.9 2-2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 10c-1.1 0-2-.9-2-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m3 7 3 3 3-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 10V5c0-1.7 1.3-3 3-3h1\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"8\",\"x\":\"2\",\"y\":\"14\",\"rx\":\"2\"}}]})(props);\n};\nexport function LuReplyAll (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 17 2 12 7 7\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 17 7 12 12 7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 18v-2a4 4 0 0 0-4-4H7\"}}]})(props);\n};\nexport function LuReply (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 17 4 12 9 7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18v-2a4 4 0 0 0-4-4H4\"}}]})(props);\n};\nexport function LuRewind (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 19 2 12 11 5 11 19\"}},{\"tag\":\"polygon\",\"attr\":{\"points\":\"22 19 13 12 22 5 22 19\"}}]})(props);\n};\nexport function LuRocket (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5\"}}]})(props);\n};\nexport function LuRockingChair (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.5 2 6.5 12.5 18 12.5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9.5\",\"x2\":\"5.5\",\"y1\":\"12.5\",\"y2\":\"20\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"x2\":\"18.5\",\"y1\":\"12.5\",\"y2\":\"20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.75 18a13 13 0 0 0 18.5 0\"}}]})(props);\n};\nexport function LuRollerCoaster (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 19V5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 19V6.8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 19v-7.8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 5v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 19v-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19V9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 19V9a4 4 0 0 1 4-4c2 0 4 1.33 6 4s4 4 6 4a4 4 0 1 0-3-6.65\"}}]})(props);\n};\nexport function LuRotate3D (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.466 7.5C15.643 4.237 13.952 2 12 2 9.239 2 7 6.477 7 12s2.239 10 5 10c.342 0 .677-.069 1-.2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15.194 13.707 3.814 1.86-1.86 3.814\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 15.57c-1.804.885-4.274 1.43-7 1.43-5.523 0-10-2.239-10-5s4.477-5 10-5c4.838 0 8.873 1.718 9.8 4\"}}]})(props);\n};\nexport function LuRotateCcw (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3v5h5\"}}]})(props);\n};\nexport function LuRotateCw (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3v5h-5\"}}]})(props);\n};\nexport function LuRouter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"8\",\"x\":\"2\",\"y\":\"14\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.01 18H6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.01 18H10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 10v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.84 7.17a4 4 0 0 0-5.66 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.66 4.34a8 8 0 0 0-11.31 0\"}}]})(props);\n};\nexport function LuRows (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"12\",\"y2\":\"12\"}}]})(props);\n};\nexport function LuRss (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 11a9 9 0 0 1 9 9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4a16 16 0 0 1 16 16\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"19\",\"r\":\"1\"}}]})(props);\n};\nexport function LuRuler (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.41 2.41 0 0 1 0-3.4l2.6-2.6a2.41 2.41 0 0 1 3.4 0Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14.5 12.5 2-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m11.5 9.5 2-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8.5 6.5 2-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17.5 15.5 2-2\"}}]})(props);\n};\nexport function LuRussianRuble (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 11c5.333 0 5.333-8 0-8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 11h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 15h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 21V3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 3h5\"}}]})(props);\n};\nexport function LuSailboat (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 18H2a4 4 0 0 0 4 4h12a4 4 0 0 0 4-4Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 14 10 2 3 14h18Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 2v16\"}}]})(props);\n};\nexport function LuSalad (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 21h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 21a9 9 0 0 0 9-9H3a9 9 0 0 0 9 9Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.38 12a2.4 2.4 0 0 1-.4-4.77 2.4 2.4 0 0 1 3.2-2.77 2.4 2.4 0 0 1 3.47-.63 2.4 2.4 0 0 1 3.37 3.37 2.4 2.4 0 0 1-1.1 3.7 2.51 2.51 0 0 1 .03 1.1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m13 12 4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.9 7.25A3.99 3.99 0 0 0 4 10c0 .73.2 1.41.54 2\"}}]})(props);\n};\nexport function LuSandwich (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 11v3a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1v-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 19H4a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-3.83\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m3 11 7.77-6.04a2 2 0 0 1 2.46 0L21 11H3Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.97 19.77 7 15h12.5l-3.75 4.5a2 2 0 0 1-2.78.27Z\"}}]})(props);\n};\nexport function LuSatelliteDish (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 10a7.31 7.31 0 0 0 10 10Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 15 3-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 13a6 6 0 0 0-6-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 13A10 10 0 0 0 11 3\"}}]})(props);\n};\nexport function LuSatellite (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 7 9 3 5 7l4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17 11 4 4-4 4-4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 12 4 4 6-6-4-4Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 8 3-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 21a6 6 0 0 0-6-6\"}}]})(props);\n};\nexport function LuSaveAll (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 4a2 2 0 0 1 2-2h10l4 4v10.2a2 2 0 0 1-2 1.8H8a2 2 0 0 1-2-2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 2v4h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 18v-7h-8v7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 22H4a2 2 0 0 1-2-2V6\"}}]})(props);\n};\nexport function LuSave (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 21 17 13 7 13 7 21\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 3 7 8 15 8\"}}]})(props);\n};\nexport function LuScale3D (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"19\",\"cy\":\"19\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"5\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 7v12h12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m5 19 6-6\"}}]})(props);\n};\nexport function LuScale (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 21h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3v18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2\"}}]})(props);\n};\nexport function LuScaling (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3 9 15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3H3v18h18v-9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 3h5v5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 15H9v-5\"}}]})(props);\n};\nexport function LuScanFace (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 7V5a2 2 0 0 1 2-2h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3h2a2 2 0 0 1 2 2v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 17v2a2 2 0 0 1-2 2h-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 21H5a2 2 0 0 1-2-2v-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 14s1.5 2 4 2 4-2 4-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 9h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 9h.01\"}}]})(props);\n};\nexport function LuScanLine (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 7V5a2 2 0 0 1 2-2h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3h2a2 2 0 0 1 2 2v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 17v2a2 2 0 0 1-2 2h-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 21H5a2 2 0 0 1-2-2v-2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"x2\":\"17\",\"y1\":\"12\",\"y2\":\"12\"}}]})(props);\n};\nexport function LuScan (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 7V5a2 2 0 0 1 2-2h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3h2a2 2 0 0 1 2 2v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 17v2a2 2 0 0 1-2 2h-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 21H5a2 2 0 0 1-2-2v-2\"}}]})(props);\n};\nexport function LuScatterChart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"7.5\",\"cy\":\"7.5\",\"r\":\".5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18.5\",\"cy\":\"5.5\",\"r\":\".5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"11.5\",\"cy\":\"11.5\",\"r\":\".5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7.5\",\"cy\":\"16.5\",\"r\":\".5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17.5\",\"cy\":\"14.5\",\"r\":\".5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3v18h18\"}}]})(props);\n};\nexport function LuSchool2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"10\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 20V8h-4l-6-4-6 4H2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 17v.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 13v.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 17v.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13v.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 22v-5a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v5\"}}]})(props);\n};\nexport function LuSchool (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m4 6 8-4 8 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m18 10 4 2v8a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-8l4-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 22v-4a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 5v17\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 5v17\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"9\",\"r\":\"2\"}}]})(props);\n};\nexport function LuScissorsLineDashed (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.42 9.42 8 12\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"4\",\"cy\":\"8\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14 6-8.58 8.58\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"4\",\"cy\":\"16\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.8 14.8 14 18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 12h-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12h-2\"}}]})(props);\n};\nexport function LuScissorsSquareDashedBottom (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 22H8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 22h-2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"8\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.414 9.414 12 12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.8 14.8 18 18\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"16\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m18 6-8.586 8.586\"}}]})(props);\n};\nexport function LuScissorsSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"20\",\"x\":\"2\",\"y\":\"2\",\"rx\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"8\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.414 9.414 12 12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.8 14.8 18 18\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"16\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m18 6-8.586 8.586\"}}]})(props);\n};\nexport function LuScissors (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.12 8.12 12 12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4 8.12 15.88\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.8 14.8 20 20\"}}]})(props);\n};\nexport function LuScreenShareOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 21h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 3-5 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17 3 5 5\"}}]})(props);\n};\nexport function LuScreenShare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 21h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17 8 5-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3h5v5\"}}]})(props);\n};\nexport function LuScrollText (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 21h12a2 2 0 0 0 2-2v-2H10v2a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v3h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 17V5a2 2 0 0 0-2-2H4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 8h-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 12h-5\"}}]})(props);\n};\nexport function LuScroll (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 21h12a2 2 0 0 0 2-2v-2H10v2a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v3h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 17V5a2 2 0 0 0-2-2H4\"}}]})(props);\n};\nexport function LuSearchCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m8 11 2 2 4-4\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21 21-4.3-4.3\"}}]})(props);\n};\nexport function LuSearchCode (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m9 9-2 2 2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m13 13 2-2-2-2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21 21-4.3-4.3\"}}]})(props);\n};\nexport function LuSearchSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m13.5 8.5-5 5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21 21-4.3-4.3\"}}]})(props);\n};\nexport function LuSearchX (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m13.5 8.5-5 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8.5 8.5 5 5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21 21-4.3-4.3\"}}]})(props);\n};\nexport function LuSearch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21 21-4.3-4.3\"}}]})(props);\n};\nexport function LuSendHorizonal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3 3 3 9-3 9 19-9Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 12h16\"}}]})(props);\n};\nexport function LuSendToBack (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"14\",\"width\":\"8\",\"height\":\"8\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"2\",\"width\":\"8\",\"height\":\"8\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 14v1a2 2 0 0 0 2 2h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 7h1a2 2 0 0 1 2 2v1\"}}]})(props);\n};\nexport function LuSend (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m22 2-7 20-4-9-9-4Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 2 11 13\"}}]})(props);\n};\nexport function LuSeparatorHorizontal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 8 12 4 16 8\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 16 12 20 8 16\"}}]})(props);\n};\nexport function LuSeparatorVertical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"3\",\"y2\":\"21\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 8 4 12 8 16\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 16 20 12 16 8\"}}]})(props);\n};\nexport function LuServerCog (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 6h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 18h.01\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 15v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 12h-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 12H8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 9-.88.88\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.88 14.12 9 15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 15-.88-.88\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.88 9.88 9 9\"}}]})(props);\n};\nexport function LuServerCrash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 6h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 18h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m13 6-4 6h6l-4 6\"}}]})(props);\n};\nexport function LuServerOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 2h13a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 10 2.5 2.5C2 2 2 2.5 2 5v3a2 2 0 0 0 2 2h6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 17v-1a2 2 0 0 0-2-2h-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 14a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16.5l1-.5.5.5-8-8H4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 18h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m2 2 20 20\"}}]})(props);\n};\nexport function LuServer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"8\",\"x\":\"2\",\"y\":\"2\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"8\",\"x\":\"2\",\"y\":\"14\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"x2\":\"6.01\",\"y1\":\"6\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"x2\":\"6.01\",\"y1\":\"18\",\"y2\":\"18\"}}]})(props);\n};\nexport function LuSettings2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 7h-9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 17H5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17\",\"cy\":\"17\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7\",\"cy\":\"7\",\"r\":\"3\"}}]})(props);\n};\nexport function LuSettings (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"}}]})(props);\n};\nexport function LuShapes (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"14\",\"width\":\"7\",\"height\":\"7\",\"rx\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17.5\",\"cy\":\"17.5\",\"r\":\"3.5\"}}]})(props);\n};\nexport function LuShare2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"5\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"12\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"19\",\"r\":\"3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8.59\",\"x2\":\"15.42\",\"y1\":\"13.51\",\"y2\":\"17.49\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15.41\",\"x2\":\"8.59\",\"y1\":\"6.51\",\"y2\":\"10.49\"}}]})(props);\n};\nexport function LuShare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 6 12 2 8 6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"2\",\"y2\":\"15\"}}]})(props);\n};\nexport function LuSheet (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"9\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"15\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"x2\":\"9\",\"y1\":\"9\",\"y2\":\"21\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"x2\":\"15\",\"y1\":\"9\",\"y2\":\"21\"}}]})(props);\n};\nexport function LuShieldAlert (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 16h.01\"}}]})(props);\n};\nexport function LuShieldCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 12 2 2 4-4\"}}]})(props);\n};\nexport function LuShieldClose (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9.5\",\"x2\":\"14.5\",\"y1\":\"9\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.5\",\"x2\":\"9.5\",\"y1\":\"9\",\"y2\":\"14\"}}]})(props);\n};\nexport function LuShieldOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.69 14a6.9 6.9 0 0 0 .31-2V5l-8-3-3.16 1.18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.73 4.73 4 5v7c0 6 8 10 8 10a20.29 20.29 0 0 0 5.62-4.38\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuShieldQuestion (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3\"}}]})(props);\n};\nexport function LuShield (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"}}]})(props);\n};\nexport function LuShip (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 21c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1 .6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.38 20A11.6 11.6 0 0 0 21 14l-9-4-9 4c0 2.9.94 5.34 2.81 7.76\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 13V7a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2v3\"}}]})(props);\n};\nexport function LuShirt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.38 3.46 16 2a4 4 0 0 1-8 0L3.62 3.46a2 2 0 0 0-1.34 2.23l.58 3.47a1 1 0 0 0 .99.84H6v10c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V10h2.15a1 1 0 0 0 .99-.84l.58-3.47a2 2 0 0 0-1.34-2.23z\"}}]})(props);\n};\nexport function LuShoppingBag (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 6h18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 10a4 4 0 0 1-8 0\"}}]})(props);\n};\nexport function LuShoppingBasket (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m5 11 4-7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m19 11-4-7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 11h20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m3.5 11 1.6 7.4a2 2 0 0 0 2 1.6h9.8c.9 0 1.8-.7 2-1.6l1.7-7.4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 11 1 9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.5 15.5h15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 11-1 9\"}}]})(props);\n};\nexport function LuShoppingCart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"21\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19\",\"cy\":\"21\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12\"}}]})(props);\n};\nexport function LuShovel (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 22v-5l5-5 5 5-5 5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 14.5 16 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17 2 5 5-.5.5a3.53 3.53 0 0 1-5 0s0 0 0 0a3.53 3.53 0 0 1 0-5L17 2\"}}]})(props);\n};\nexport function LuShowerHead (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m4 4 2.5 2.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.5 6.5a4.95 4.95 0 0 0-7 7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 5 5 15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 17v.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 16v.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 13v.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 10v.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 20v.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 14v.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 11v.01\"}}]})(props);\n};\nexport function LuShrink (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m15 15 6 6m-6-6v4.8m0-4.8h4.8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 19.8V15m0 0H4.2M9 15l-6 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 4.2V9m0 0h4.8M15 9l6-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 4.2V9m0 0H4.2M9 9 3 3\"}}]})(props);\n};\nexport function LuShrub (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22v-7l-2-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 8v.8A6 6 0 0 1 13.8 20v0H10v0A6.5 6.5 0 0 1 7 8h0a5 5 0 0 1 10 0Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14 14-2 2\"}}]})(props);\n};\nexport function LuShuffle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 18h1.4c1.3 0 2.5-.6 3.3-1.7l6.1-8.6c.7-1.1 2-1.7 3.3-1.7H22\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m18 2 4 4-4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 6h1.9c1.5 0 2.9.9 3.6 2.2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 18h-5.9c-1.3 0-2.6-.7-3.3-1.8l-.5-.8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m18 14 4 4-4 4\"}}]})(props);\n};\nexport function LuSigmaSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8.9V7H8l4 5-4 5h8v-1.9\"}}]})(props);\n};\nexport function LuSigma (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 7V4H6l6 8-6 8h12v-3\"}}]})(props);\n};\nexport function LuSignalHigh (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 20h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 20v-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20v-8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 20V8\"}}]})(props);\n};\nexport function LuSignalLow (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 20h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 20v-4\"}}]})(props);\n};\nexport function LuSignalMedium (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 20h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 20v-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20v-8\"}}]})(props);\n};\nexport function LuSignalZero (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 20h.01\"}}]})(props);\n};\nexport function LuSignal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 20h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 20v-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20v-8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 20V8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 4v16\"}}]})(props);\n};\nexport function LuSiren (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 12a5 5 0 0 1 5-5v0a5 5 0 0 1 5 5v6H7v-6Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 20a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v2H5v-2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 4.5 18 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 12h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m4.929 4.929.707.707\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12v6\"}}]})(props);\n};\nexport function LuSkipBack (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"19 20 9 12 19 4 19 20\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"x2\":\"5\",\"y1\":\"19\",\"y2\":\"5\"}}]})(props);\n};\nexport function LuSkipForward (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"5 4 15 12 5 20 5 4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"x2\":\"19\",\"y1\":\"5\",\"y2\":\"19\"}}]})(props);\n};\nexport function LuSkull (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"12\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"12\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 20v2h8v-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12.5 17-.5-1-.5 1h1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 20a2 2 0 0 0 1.56-3.25 8 8 0 1 0-11.12 0A2 2 0 0 0 8 20\"}}]})(props);\n};\nexport function LuSlack (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"3\",\"height\":\"8\",\"x\":\"13\",\"y\":\"2\",\"rx\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 8.5V10h1.5A1.5 1.5 0 1 0 19 8.5\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"3\",\"height\":\"8\",\"x\":\"8\",\"y\":\"14\",\"rx\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 15.5V14H3.5A1.5 1.5 0 1 0 5 15.5\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"3\",\"x\":\"14\",\"y\":\"13\",\"rx\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 19H14v1.5a1.5 1.5 0 1 0 1.5-1.5\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"3\",\"x\":\"2\",\"y\":\"8\",\"rx\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 5H10V3.5A1.5 1.5 0 1 0 8.5 5\"}}]})(props);\n};\nexport function LuSlice (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m8 14-6 6h9v-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.37 3.63 8 14l3 3L21.37 6.63a2.12 2.12 0 1 0-3-3Z\"}}]})(props);\n};\nexport function LuSlidersHorizontal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"x2\":\"14\",\"y1\":\"4\",\"y2\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"x2\":\"3\",\"y1\":\"4\",\"y2\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"x2\":\"12\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"3\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"x2\":\"16\",\"y1\":\"20\",\"y2\":\"20\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"3\",\"y1\":\"20\",\"y2\":\"20\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"x2\":\"14\",\"y1\":\"2\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"8\",\"y1\":\"10\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"16\",\"y1\":\"18\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuSliders (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"x2\":\"4\",\"y1\":\"21\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"x2\":\"4\",\"y1\":\"10\",\"y2\":\"3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"21\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"8\",\"y2\":\"3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"x2\":\"20\",\"y1\":\"21\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"x2\":\"20\",\"y1\":\"12\",\"y2\":\"3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"6\",\"y1\":\"14\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"x2\":\"14\",\"y1\":\"8\",\"y2\":\"8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"x2\":\"22\",\"y1\":\"16\",\"y2\":\"16\"}}]})(props);\n};\nexport function LuSmartphoneCharging (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"14\",\"height\":\"20\",\"x\":\"5\",\"y\":\"2\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.667 8 10 12h4l-2.667 4\"}}]})(props);\n};\nexport function LuSmartphoneNfc (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"7\",\"height\":\"12\",\"x\":\"2\",\"y\":\"6\",\"rx\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 8.32a7.43 7.43 0 0 1 0 7.36\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.46 6.21a11.76 11.76 0 0 1 0 11.58\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.91 4.1a15.91 15.91 0 0 1 .01 15.8\"}}]})(props);\n};\nexport function LuSmartphone (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"14\",\"height\":\"20\",\"x\":\"5\",\"y\":\"2\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18h.01\"}}]})(props);\n};\nexport function LuSmilePlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 11v1a10 10 0 1 1-9-10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 14s1.5 2 4 2 4-2 4-2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"x2\":\"9.01\",\"y1\":\"9\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"x2\":\"15.01\",\"y1\":\"9\",\"y2\":\"9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 5h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 2v6\"}}]})(props);\n};\nexport function LuSmile (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 14s1.5 2 4 2 4-2 4-2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"x2\":\"9.01\",\"y1\":\"9\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"x2\":\"15.01\",\"y1\":\"9\",\"y2\":\"9\"}}]})(props);\n};\nexport function LuSnowflake (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"2\",\"y2\":\"22\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m20 16-4-4 4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m4 8 4 4-4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 4-4 4-4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 20 4-4 4 4\"}}]})(props);\n};\nexport function LuSofa (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 9V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 11v5a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5a2 2 0 0 0-4 0v2H6v-2a2 2 0 0 0-4 0Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 18v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4v9\"}}]})(props);\n};\nexport function LuSoup (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 21a9 9 0 0 0 9-9H3a9 9 0 0 0 9 9Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 21h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.5 12 22 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.25 3c.27.1.8.53.75 1.36-.06.83-.93 1.2-1 2.02-.05.78.34 1.24.73 1.62\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.25 3c.27.1.8.53.74 1.36-.05.83-.93 1.2-.98 2.02-.06.78.33 1.24.72 1.62\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.25 3c.27.1.8.53.75 1.36-.06.83-.93 1.2-1 2.02-.05.78.34 1.24.74 1.62\"}}]})(props);\n};\nexport function LuSpace (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 17v1c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1v-1\"}}]})(props);\n};\nexport function LuSpade (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 9c-1.5 1.5-3 3.2-3 5.5A5.5 5.5 0 0 0 7.5 20c1.8 0 3-.5 4.5-2 1.5 1.5 2.7 2 4.5 2a5.5 5.5 0 0 0 5.5-5.5c0-2.3-1.5-4-3-5.5l-7-7-7 7Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18v4\"}}]})(props);\n};\nexport function LuSparkle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12 3-1.9 5.8a2 2 0 0 1-1.287 1.288L3 12l5.8 1.9a2 2 0 0 1 1.288 1.287L12 21l1.9-5.8a2 2 0 0 1 1.287-1.288L21 12l-5.8-1.9a2 2 0 0 1-1.288-1.287Z\"}}]})(props);\n};\nexport function LuSparkles (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12 3-1.912 5.813a2 2 0 0 1-1.275 1.275L3 12l5.813 1.912a2 2 0 0 1 1.275 1.275L12 21l1.912-5.813a2 2 0 0 1 1.275-1.275L21 12l-5.813-1.912a2 2 0 0 1-1.275-1.275L12 3Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 3v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 17v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 19h4\"}}]})(props);\n};\nexport function LuSpeaker (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"16\",\"height\":\"20\",\"x\":\"4\",\"y\":\"2\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"14\",\"r\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12.01\",\"y1\":\"6\",\"y2\":\"6\"}}]})(props);\n};\nexport function LuSpellCheck2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m6 16 6-12 6 12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 12h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 21c1.1 0 1.1-1 2.3-1s1.1 1 2.3 1c1.1 0 1.1-1 2.3-1 1.1 0 1.1 1 2.3 1 1.1 0 1.1-1 2.3-1 1.1 0 1.1 1 2.3 1 1.1 0 1.1-1 2.3-1\"}}]})(props);\n};\nexport function LuSpellCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m6 16 6-12 6 12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 12h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 20 2 2 4-4\"}}]})(props);\n};\nexport function LuSpline (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"19\",\"cy\":\"5\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"19\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 17A12 12 0 0 1 17 5\"}}]})(props);\n};\nexport function LuSplitSquareHorizontal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 19H5c-1 0-2-1-2-2V7c0-1 1-2 2-2h3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 5h3c1 0 2 1 2 2v10c0 1-1 2-2 2h-3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"4\",\"y2\":\"20\"}}]})(props);\n};\nexport function LuSplitSquareVertical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 8V5c0-1 1-2 2-2h10c1 0 2 1 2 2v3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 16v3c0 1-1 2-2 2H7c-1 0-2-1-2-2v-3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"x2\":\"20\",\"y1\":\"12\",\"y2\":\"12\"}}]})(props);\n};\nexport function LuSplit (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 3h5v5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 3H3v5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22v-8.3a4 4 0 0 0-1.172-2.872L3 3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 9 6-6\"}}]})(props);\n};\nexport function LuSprayCan (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 5h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 7h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 7h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 9h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 11h.01\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"4\",\"height\":\"4\",\"x\":\"15\",\"y\":\"5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m19 9 2 2v10c0 .6-.4 1-1 1h-6c-.6 0-1-.4-1-1V11l2-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m13 14 8-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m13 19 8-2\"}}]})(props);\n};\nexport function LuSprout (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 20h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 20c5.5-2.5.8-6.4 3-10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 9.4c1.1.8 1.8 2.2 2.3 3.7-2 .4-3.5.4-4.8-.3-1.2-.6-2.3-1.9-3-4.2 2.8-.5 4.4 0 5.5.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.1 6a7 7 0 0 0-1.1 4c1.9-.1 3.3-.6 4.3-1.4 1-1 1.6-2.3 1.7-4.6-2.7.1-4 1-4.9 2z\"}}]})(props);\n};\nexport function LuSquareAsterisk (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8v8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8.5 14 7-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8.5 10 7 4\"}}]})(props);\n};\nexport function LuSquareCode (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10 10-2 2 2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14 14 2-2-2-2\"}}]})(props);\n};\nexport function LuSquareDashedBottomCode (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m10 10-2 2 2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14 14 2-2-2-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 21a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 21h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 21h1\"}}]})(props);\n};\nexport function LuSquareDashedBottom (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 21a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 21h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 21h1\"}}]})(props);\n};\nexport function LuSquareDot (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1\"}}]})(props);\n};\nexport function LuSquareEqual (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 10h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 14h10\"}}]})(props);\n};\nexport function LuSquareSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"x2\":\"15\",\"y1\":\"15\",\"y2\":\"9\"}}]})(props);\n};\nexport function LuSquareStack (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 10c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 16c-1.1 0-2-.9-2-2v-4c0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"8\",\"x\":\"14\",\"y\":\"14\",\"rx\":\"2\"}}]})(props);\n};\nexport function LuSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}}]})(props);\n};\nexport function LuSquirrel (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 6a4 4 0 0 0-4 4 7 7 0 0 0-7 7c0-5 4-5 4-10.5a4.5 4.5 0 1 0-9 0 2.5 2.5 0 0 0 5 0C7 10 3 11 3 17c0 2.8 2.2 5 5 5h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 20c0-1.7 1.3-3 3-3h1a2 2 0 0 0 2-2v-2a4 4 0 0 0-4-4V4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.2 22a3 3 0 0 0-2.2-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13h.01\"}}]})(props);\n};\nexport function LuStamp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 22h14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.27 13.73A2.5 2.5 0 0 0 17.5 13h-11A2.5 2.5 0 0 0 4 15.5V17a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-1.5c0-.66-.26-1.3-.73-1.77Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 13V8.5C14 7 15 7 15 5a3 3 0 0 0-3-3c-1.66 0-3 1-3 3s1 2 1 3.5V13\"}}]})(props);\n};\nexport function LuStarHalf (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17.8 5.8 21 7 14.1 2 9.3l7-1L12 2\"}}]})(props);\n};\nexport function LuStarOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.34 8.34 2 9.27l5 4.87L5.82 21 12 17.77 18.18 21l-.59-3.43\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.42 12.76 22 9.27l-6.91-1L12 2l-1.44 2.91\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuStar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"}}]})(props);\n};\nexport function LuStepBack (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"x2\":\"18\",\"y1\":\"20\",\"y2\":\"4\"}},{\"tag\":\"polygon\",\"attr\":{\"points\":\"14,20 4,12 14,4\"}}]})(props);\n};\nexport function LuStepForward (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"x2\":\"6\",\"y1\":\"4\",\"y2\":\"20\"}},{\"tag\":\"polygon\",\"attr\":{\"points\":\"10,4 20,12 10,20\"}}]})(props);\n};\nexport function LuStethoscope (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.8 2.3A.3.3 0 1 0 5 2H4a2 2 0 0 0-2 2v5a6 6 0 0 0 6 6v0a6 6 0 0 0 6-6V4a2 2 0 0 0-2-2h-1a.2.2 0 1 0 .3.3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 15v1a6 6 0 0 0 6 6v0a6 6 0 0 0 6-6v-4\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"20\",\"cy\":\"10\",\"r\":\"2\"}}]})(props);\n};\nexport function LuSticker (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 3H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2V8.5L15.5 3Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 3v6h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 16s.8 1 2 1c1.3 0 2-1 2-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 13h0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 13h0\"}}]})(props);\n};\nexport function LuStickyNote (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 3H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2V8.5L15.5 3Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 3v6h6\"}}]})(props);\n};\nexport function LuStopCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"6\",\"height\":\"6\",\"x\":\"9\",\"y\":\"9\"}}]})(props);\n};\nexport function LuStore (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 7h20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 7v3a2 2 0 0 1-2 2v0a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 16 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 12 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 8 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 4 12v0a2 2 0 0 1-2-2V7\"}}]})(props);\n};\nexport function LuStretchHorizontal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"6\",\"x\":\"2\",\"y\":\"4\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"6\",\"x\":\"2\",\"y\":\"14\",\"rx\":\"2\"}}]})(props);\n};\nexport function LuStretchVertical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"6\",\"height\":\"20\",\"x\":\"4\",\"y\":\"2\",\"rx\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"6\",\"height\":\"20\",\"x\":\"14\",\"y\":\"2\",\"rx\":\"2\"}}]})(props);\n};\nexport function LuStrikethrough (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 4H9a3 3 0 0 0-2.83 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 12a4 4 0 0 1 0 8H6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"x2\":\"20\",\"y1\":\"12\",\"y2\":\"12\"}}]})(props);\n};\nexport function LuSubscript (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m4 5 8 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12 5-8 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 19h-4c0-1.5.44-2 1.5-2.5S20 15.33 20 14c0-.47-.17-.93-.48-1.29a2.11 2.11 0 0 0-2.62-.44c-.42.24-.74.62-.9 1.07\"}}]})(props);\n};\nexport function LuSubtitles (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 13h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 13h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 9h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 9h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10Z\"}}]})(props);\n};\nexport function LuSunDim (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 12h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 12h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.657 6.343h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.657 17.657h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.343 17.657h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.343 6.343h.01\"}}]})(props);\n};\nexport function LuSunMedium (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 12h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 12h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m18.364 5.636-.707.707\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m6.343 17.657-.707.707\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m5.636 5.636.707.707\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17.657 17.657.707.707\"}}]})(props);\n};\nexport function LuSunMoon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8a2 2 0 1 0 4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m4.93 4.93 1.41 1.41\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17.66 17.66 1.41 1.41\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 12h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 12h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m6.34 17.66-1.41 1.41\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m19.07 4.93-1.41 1.41\"}}]})(props);\n};\nexport function LuSunSnow (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 9a3 3 0 1 0 0 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 12h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 21V3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 4V3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 21v-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m3.64 18.36.7-.7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m4.34 6.34-.7-.7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 12h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17 4-3 3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14 17 3 3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21 15-3-3 3-3\"}}]})(props);\n};\nexport function LuSun (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m4.93 4.93 1.41 1.41\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17.66 17.66 1.41 1.41\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 12h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 12h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m6.34 17.66-1.41 1.41\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m19.07 4.93-1.41 1.41\"}}]})(props);\n};\nexport function LuSunrise (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2v8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m4.93 10.93 1.41 1.41\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 18h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m19.07 10.93-1.41 1.41\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 22H2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 6 4-4 4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 18a4 4 0 0 0-8 0\"}}]})(props);\n};\nexport function LuSunset (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10V2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m4.93 10.93 1.41 1.41\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 18h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m19.07 10.93-1.41 1.41\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 22H2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 6-4 4-4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 18a4 4 0 0 0-8 0\"}}]})(props);\n};\nexport function LuSuperscript (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m4 19 8-8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12 19-8-8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 12h-4c0-1.5.442-2 1.5-2.5S20 8.334 20 7.002c0-.472-.17-.93-.484-1.29a2.105 2.105 0 0 0-2.617-.436c-.42.239-.738.614-.899 1.06\"}}]})(props);\n};\nexport function LuSwissFranc (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 21V3h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 16h9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 9.5h7\"}}]})(props);\n};\nexport function LuSwitchCamera (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 19H4a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 5h7a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m18 22-3-3 3-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m6 2 3 3-3 3\"}}]})(props);\n};\nexport function LuSword (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"14.5 17.5 3 6 3 3 6 3 17.5 14.5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"13\",\"x2\":\"19\",\"y1\":\"19\",\"y2\":\"13\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"20\",\"y1\":\"16\",\"y2\":\"20\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"x2\":\"21\",\"y1\":\"21\",\"y2\":\"19\"}}]})(props);\n};\nexport function LuSwords (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"14.5 17.5 3 6 3 3 6 3 17.5 14.5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"13\",\"x2\":\"19\",\"y1\":\"19\",\"y2\":\"13\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"20\",\"y1\":\"16\",\"y2\":\"20\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"x2\":\"21\",\"y1\":\"21\",\"y2\":\"19\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14.5 6.5 18 3 21 3 21 6 17.5 9.5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"x2\":\"9\",\"y1\":\"14\",\"y2\":\"18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"x2\":\"4\",\"y1\":\"17\",\"y2\":\"20\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"5\",\"y1\":\"19\",\"y2\":\"21\"}}]})(props);\n};\nexport function LuSyringe (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m18 2 4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17 7 3-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 9 8.7 19.3c-1 1-2.5 1-3.4 0l-.6-.6c-1-1-1-2.5 0-3.4L15 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 11 4 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m5 19-3 3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14 4 6 6\"}}]})(props);\n};\nexport function LuTable2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18\"}}]})(props);\n};\nexport function LuTableProperties (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 3v18\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 9H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15H3\"}}]})(props);\n};\nexport function LuTable (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3v18\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9h18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 15h18\"}}]})(props);\n};\nexport function LuTablet (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"16\",\"height\":\"20\",\"x\":\"4\",\"y\":\"2\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12.01\",\"y1\":\"18\",\"y2\":\"18\"}}]})(props);\n};\nexport function LuTablets (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"7\",\"cy\":\"7\",\"r\":\"5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17\",\"cy\":\"17\",\"r\":\"5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m3.46 10.54 7.08-7.08\"}}]})(props);\n};\nexport function LuTag (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2H2v10l9.29 9.29c.94.94 2.48.94 3.42 0l6.58-6.58c.94-.94.94-2.48 0-3.42L12 2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 7h.01\"}}]})(props);\n};\nexport function LuTags (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 5H2v7l6.29 6.29c.94.94 2.48.94 3.42 0l3.58-3.58c.94-.94.94-2.48 0-3.42L9 5Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 9.01V9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 5 6.3 6.3a2.4 2.4 0 0 1 0 3.4L17 19\"}}]})(props);\n};\nexport function LuTally1 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4v16\"}}]})(props);\n};\nexport function LuTally2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4v16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 4v16\"}}]})(props);\n};\nexport function LuTally3 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4v16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 4v16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 4v16\"}}]})(props);\n};\nexport function LuTally4 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4v16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 4v16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 4v16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4v16\"}}]})(props);\n};\nexport function LuTally5 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4v16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 4v16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 4v16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4v16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 6 2 18\"}}]})(props);\n};\nexport function LuTarget (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"6\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"}}]})(props);\n};\nexport function LuTent (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 20 10 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m5 20 9-16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 20h18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12 15-3 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12 15 3 5\"}}]})(props);\n};\nexport function LuTerminalSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7 11 2-2-2-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 13h4\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}}]})(props);\n};\nexport function LuTerminal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"4 17 10 11 4 5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"20\",\"y1\":\"19\",\"y2\":\"19\"}}]})(props);\n};\nexport function LuTestTube2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 7 6.82 21.18a2.83 2.83 0 0 1-3.99-.01v0a2.83 2.83 0 0 1 0-4L17 3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 2 6 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 16H4\"}}]})(props);\n};\nexport function LuTestTube (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 2v17.5c0 1.4-1.1 2.5-2.5 2.5h0c-1.4 0-2.5-1.1-2.5-2.5V2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 2h7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 16h-5\"}}]})(props);\n};\nexport function LuTestTubes (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 2v17.5A2.5 2.5 0 0 1 6.5 22v0A2.5 2.5 0 0 1 4 19.5V2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2v17.5a2.5 2.5 0 0 1-2.5 2.5v0a2.5 2.5 0 0 1-2.5-2.5V2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 2h7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2h7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 16H4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 16h-5\"}}]})(props);\n};\nexport function LuTextCursorInput (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 4h1a3 3 0 0 1 3 3 3 3 0 0 1 3-3h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 20h-1a3 3 0 0 1-3-3 3 3 0 0 1-3 3H5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 16H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 8h7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 7v10\"}}]})(props);\n};\nexport function LuTextCursor (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 22h-1a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 22h1a4 4 0 0 0 4-4v-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 2h1a4 4 0 0 1 4 4v1\"}}]})(props);\n};\nexport function LuTextQuote (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 6H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12H8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 18H8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 12v6\"}}]})(props);\n};\nexport function LuTextSelect (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 3a2 2 0 0 0-2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3a2 2 0 0 1 2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 19a2 2 0 0 1-2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 21a2 2 0 0 1-2-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 3h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 21h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 3h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 21h1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 9v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 14v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 14v1\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"x2\":\"15\",\"y1\":\"8\",\"y2\":\"8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"x2\":\"17\",\"y1\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"x2\":\"13\",\"y1\":\"16\",\"y2\":\"16\"}}]})(props);\n};\nexport function LuText (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 6.1H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12.1H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.1 18H3\"}}]})(props);\n};\nexport function LuThermometerSnowflake (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 12h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 4v16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m3 9 3 3-3 3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6 9 9 6 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m6 18 3-3 1.5 1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0Z\"}}]})(props);\n};\nexport function LuThermometerSun (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 9a4 4 0 0 0-2 7.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m6.6 18.4-1.4 1.4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 13H2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.34 7.34 4.93 5.93\"}}]})(props);\n};\nexport function LuThermometer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0Z\"}}]})(props);\n};\nexport function LuThumbsDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 14V2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22h0a3.13 3.13 0 0 1-3-3.88Z\"}}]})(props);\n};\nexport function LuThumbsUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 10v12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2h0a3.13 3.13 0 0 1 3 3.88Z\"}}]})(props);\n};\nexport function LuTicket (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 5v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 17v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 11v2\"}}]})(props);\n};\nexport function LuTimerOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 2h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.6 11a8 8 0 0 0 1.7 8.7 8 8 0 0 0 8.7 1.7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.4 7.4a8 8 0 0 1 10.3 1 8 8 0 0 1 .9 10.2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m2 2 20 20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12v-2\"}}]})(props);\n};\nexport function LuTimerReset (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 2h4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 14v-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 13a8 8 0 0 1 8-7 8 8 0 1 1-5.3 14L4 17.6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 17H4v5\"}}]})(props);\n};\nexport function LuTimer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"x2\":\"14\",\"y1\":\"2\",\"y2\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"15\",\"y1\":\"14\",\"y2\":\"11\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"14\",\"r\":\"8\"}}]})(props);\n};\nexport function LuToggleLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"12\",\"x\":\"2\",\"y\":\"6\",\"rx\":\"6\",\"ry\":\"6\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"12\",\"r\":\"2\"}}]})(props);\n};\nexport function LuToggleRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"12\",\"x\":\"2\",\"y\":\"6\",\"rx\":\"6\",\"ry\":\"6\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"12\",\"r\":\"2\"}}]})(props);\n};\nexport function LuTornado (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 4H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8H6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 12H9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16h-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 20H9\"}}]})(props);\n};\nexport function LuTouchpadOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 14h12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 14h-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20v-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m2 2 20 20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16V6a2 2 0 0 0-2-2H10\"}}]})(props);\n};\nexport function LuTouchpad (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"16\",\"x\":\"2\",\"y\":\"4\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 14h20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20v-6\"}}]})(props);\n};\nexport function LuTowerControl (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.2 12.27 20 6H4l1.8 6.27a1 1 0 0 0 .95.73h10.5a1 1 0 0 0 .96-.73Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 13v9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 22v-9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 6 1 7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 6-1 7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6V2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 2h-2\"}}]})(props);\n};\nexport function LuToyBrick (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"12\",\"x\":\"3\",\"y\":\"8\",\"rx\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 8V5c0-.6-.4-1-1-1H6a1 1 0 0 0-1 1v3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 8V5c0-.6-.4-1-1-1h-3a1 1 0 0 0-1 1v3\"}}]})(props);\n};\nexport function LuTrain (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"16\",\"height\":\"16\",\"x\":\"4\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 11h16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3v8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 19-2 3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m18 22-2-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 15h0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 15h0\"}}]})(props);\n};\nexport function LuTrash2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 6h18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"x2\":\"10\",\"y1\":\"11\",\"y2\":\"17\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"x2\":\"14\",\"y1\":\"11\",\"y2\":\"17\"}}]})(props);\n};\nexport function LuTrash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 6h18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\"}}]})(props);\n};\nexport function LuTreeDeciduous (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 19h8a4 4 0 0 0 3.8-2.8 4 4 0 0 0-1.6-4.5c1-1.1 1-2.7.4-4-.7-1.2-2.2-2-3.6-1.7a3 3 0 0 0-3-3 3 3 0 0 0-3 3c-1.4-.2-2.9.5-3.6 1.7-.7 1.3-.5 2.9.4 4a4 4 0 0 0-1.6 4.5A4 4 0 0 0 8 19Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 19v3\"}}]})(props);\n};\nexport function LuTreePine (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m17 14 3 3.3a1 1 0 0 1-.7 1.7H4.7a1 1 0 0 1-.7-1.7L7 14h-.3a1 1 0 0 1-.7-1.7L9 9h-.2A1 1 0 0 1 8 7.3L12 3l4 4.3a1 1 0 0 1-.8 1.7H15l3 3.3a1 1 0 0 1-.7 1.7H17Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22v-3\"}}]})(props);\n};\nexport function LuTrees (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 10v.2A3 3 0 0 1 8.9 16v0H5v0h0a3 3 0 0 1-1-5.8V10a3 3 0 0 1 6 0Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 16v6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 19v3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 19h8.3a1 1 0 0 0 .7-1.7L18 14h.3a1 1 0 0 0 .7-1.7L16 9h.2a1 1 0 0 0 .8-1.7L13 3l-1.4 1.5\"}}]})(props);\n};\nexport function LuTrello (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"3\",\"height\":\"9\",\"x\":\"7\",\"y\":\"7\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"3\",\"height\":\"5\",\"x\":\"14\",\"y\":\"7\"}}]})(props);\n};\nexport function LuTrendingDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 17 13.5 8.5 8.5 13.5 2 7\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 17 22 17 22 11\"}}]})(props);\n};\nexport function LuTrendingUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 7 13.5 15.5 8.5 10.5 2 17\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 7 22 7 22 13\"}}]})(props);\n};\nexport function LuTriangleRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 18a2 2 0 0 1-2 2H3c-1.1 0-1.3-.6-.4-1.3L20.4 4.3c.9-.7 1.6-.4 1.6.7Z\"}}]})(props);\n};\nexport function LuTriangle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z\"}}]})(props);\n};\nexport function LuTrophy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 9H4.5a2.5 2.5 0 0 1 0-5H6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9h1.5a2.5 2.5 0 0 0 0-5H18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 22h16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 14.66V17c0 .55-.47.98-.97 1.21C7.85 18.75 7 20.24 7 22\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 14.66V17c0 .55.47.98.97 1.21C16.15 18.75 17 20.24 17 22\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2H6v7a6 6 0 0 0 12 0V2Z\"}}]})(props);\n};\nexport function LuTruck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 17h4V5H2v12h3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 17h2v-3.34a4 4 0 0 0-1.17-2.83L19 9h-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 17h1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7.5\",\"cy\":\"17.5\",\"r\":\"2.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17.5\",\"cy\":\"17.5\",\"r\":\"2.5\"}}]})(props);\n};\nexport function LuTv2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 21h10\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"14\",\"x\":\"2\",\"y\":\"3\",\"rx\":\"2\"}}]})(props);\n};\nexport function LuTv (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"15\",\"x\":\"2\",\"y\":\"7\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 2 12 7 7 2\"}}]})(props);\n};\nexport function LuTwitch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 2H3v16h5v4l4-4h5l4-4V2zm-10 9V7m5 4V7\"}}]})(props);\n};\nexport function LuTwitter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z\"}}]})(props);\n};\nexport function LuType (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"4 7 4 4 20 4 20 7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"x2\":\"15\",\"y1\":\"20\",\"y2\":\"20\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"4\",\"y2\":\"20\"}}]})(props);\n};\nexport function LuUmbrella (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12a10.06 10.06 1 0 0-20 0Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12v8a2 2 0 0 0 4 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2v1\"}}]})(props);\n};\nexport function LuUnderline (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 4v6a6 6 0 0 0 12 0V4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"x2\":\"20\",\"y1\":\"20\",\"y2\":\"20\"}}]})(props);\n};\nexport function LuUndo2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 14 4 9l5-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5v0a5.5 5.5 0 0 1-5.5 5.5H11\"}}]})(props);\n};\nexport function LuUndoDot (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"17\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 7v6h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13\"}}]})(props);\n};\nexport function LuUndo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 7v6h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13\"}}]})(props);\n};\nexport function LuUnfoldHorizontal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 12h6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 12H2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 14v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m19 15 3-3-3-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m5 9-3 3 3 3\"}}]})(props);\n};\nexport function LuUnfoldVertical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22v-6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8V2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 12H2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 12H8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 12h-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12h-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 19-3 3-3-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 5-3-3-3 3\"}}]})(props);\n};\nexport function LuUngroup (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"6\",\"x\":\"5\",\"y\":\"4\",\"rx\":\"1\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"6\",\"x\":\"11\",\"y\":\"14\",\"rx\":\"1\"}}]})(props);\n};\nexport function LuUnlink2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 7h2a5 5 0 0 1 0 10h-2m-6 0H7A5 5 0 0 1 7 7h2\"}}]})(props);\n};\nexport function LuUnlink (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"8\",\"y1\":\"2\",\"y2\":\"5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"5\",\"y1\":\"8\",\"y2\":\"8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"16\",\"y1\":\"19\",\"y2\":\"22\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"x2\":\"22\",\"y1\":\"16\",\"y2\":\"16\"}}]})(props);\n};\nexport function LuUnlock (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"11\",\"x\":\"3\",\"y\":\"11\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11V7a5 5 0 0 1 9.9-1\"}}]})(props);\n};\nexport function LuUnplug (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m19 5 3-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m2 22 3-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 13.5 10 11\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.5 16.5 13 14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12 6 6 6 2.3-2.3a2.4 2.4 0 0 0 0-3.4l-2.6-2.6a2.4 2.4 0 0 0-3.4 0Z\"}}]})(props);\n};\nexport function LuUploadCloud (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12v9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 16-4-4-4 4\"}}]})(props);\n};\nexport function LuUpload (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 8 12 3 7 8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"3\",\"y2\":\"15\"}}]})(props);\n};\nexport function LuUsb (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"7\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"4\",\"cy\":\"20\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.7 19.3 19 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21 3-3 1 2 2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.26 7.68 5 12l2 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10 14 5 2 3.5-3.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m18 12 1-1 1 1-1 1Z\"}}]})(props);\n};\nexport function LuUser2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"8\",\"r\":\"5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 21a8 8 0 1 0-16 0\"}}]})(props);\n};\nexport function LuUserCheck2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 19a6 6 0 0 0-12 0\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"9\",\"r\":\"4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 11 18 13 22 9\"}}]})(props);\n};\nexport function LuUserCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"7\",\"r\":\"4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 11 18 13 22 9\"}}]})(props);\n};\nexport function LuUserCircle2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 20a6 6 0 0 0-12 0\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"10\",\"r\":\"4\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}}]})(props);\n};\nexport function LuUserCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"10\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662\"}}]})(props);\n};\nexport function LuUserCog2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 19a6 6 0 0 0-12 0\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"9\",\"r\":\"4\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19\",\"cy\":\"11\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 8v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 13v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21.6 9.5-.87.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17.27 12-.87.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21.6 12.5-.87-.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17.27 10-.87-.5\"}}]})(props);\n};\nexport function LuUserCog (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"7\",\"r\":\"4\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19\",\"cy\":\"11\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 8v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 13v1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21.6 9.5-.87.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17.27 12-.87.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21.6 12.5-.87-.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17.27 10-.87-.5\"}}]})(props);\n};\nexport function LuUserMinus2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 19a6 6 0 0 0-12 0\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"9\",\"r\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"x2\":\"16\",\"y1\":\"11\",\"y2\":\"11\"}}]})(props);\n};\nexport function LuUserMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"7\",\"r\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"x2\":\"16\",\"y1\":\"11\",\"y2\":\"11\"}}]})(props);\n};\nexport function LuUserPlus2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 19a6 6 0 0 0-12 0\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"9\",\"r\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"x2\":\"19\",\"y1\":\"8\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"x2\":\"16\",\"y1\":\"11\",\"y2\":\"11\"}}]})(props);\n};\nexport function LuUserPlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"7\",\"r\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"x2\":\"19\",\"y1\":\"8\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"x2\":\"16\",\"y1\":\"11\",\"y2\":\"11\"}}]})(props);\n};\nexport function LuUserSquare2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 21a6 6 0 0 0-12 0\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"11\",\"r\":\"4\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}}]})(props);\n};\nexport function LuUserSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"10\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 21v-2a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v2\"}}]})(props);\n};\nexport function LuUserX2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 19a6 6 0 0 0-12 0\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"9\",\"r\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"x2\":\"22\",\"y1\":\"8\",\"y2\":\"13\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"x2\":\"17\",\"y1\":\"8\",\"y2\":\"13\"}}]})(props);\n};\nexport function LuUserX (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"7\",\"r\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"x2\":\"22\",\"y1\":\"8\",\"y2\":\"13\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"x2\":\"17\",\"y1\":\"8\",\"y2\":\"13\"}}]})(props);\n};\nexport function LuUser (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}}]})(props);\n};\nexport function LuUsers2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 19a6 6 0 0 0-12 0\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"9\",\"r\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19a6 6 0 0 0-6-6 4 4 0 1 0 0-8\"}}]})(props);\n};\nexport function LuUsers (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"7\",\"r\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 21v-2a4 4 0 0 0-3-3.87\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 3.13a4 4 0 0 1 0 7.75\"}}]})(props);\n};\nexport function LuUtensilsCrossed (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m16 2-2.3 2.3a3 3 0 0 0 0 4.2l1.8 1.8a3 3 0 0 0 4.2 0L22 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 15 3.3 3.3a4.2 4.2 0 0 0 0 6l7.3 7.3c.7.7 2 .7 2.8 0L15 15Zm0 0 7 7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m2.1 21.8 6.4-6.3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m19 5-7 7\"}}]})(props);\n};\nexport function LuUtensils (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 2v7c0 1.1.9 2 2 2h4a2 2 0 0 0 2-2V2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 2v20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15V2v0a5 5 0 0 0-5 5v6c0 1.1.9 2 2 2h3Zm0 0v7\"}}]})(props);\n};\nexport function LuUtilityPole (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2v20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 5h20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 3v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m19 5-7 7-7-7\"}}]})(props);\n};\nexport function LuVariable (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 21s-4-3-4-9 4-9 4-9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 3s4 3 4 9-4 9-4 9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"x2\":\"9\",\"y1\":\"9\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"x2\":\"15\",\"y1\":\"9\",\"y2\":\"15\"}}]})(props);\n};\nexport function LuVegan (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 2a26.6 26.6 0 0 1 10 20c.9-6.82 1.5-9.5 4-14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8c4 0 6-2 6-6-4 0-6 2-6 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.41 3.6a10 10 0 1 0 3 3\"}}]})(props);\n};\nexport function LuVenetianMask (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 12a5 5 0 0 0 5 5 8 8 0 0 1 5 2 8 8 0 0 1 5-2 5 5 0 0 0 5-5V7h-5a8 8 0 0 0-5 2 8 8 0 0 0-5-2H2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 11c1.5 0 3 .5 3 2-2 0-3 0-3-2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 11c-1.5 0-3 .5-3 2 2 0 3 0 3-2Z\"}}]})(props);\n};\nexport function LuVibrateOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m2 8 2 2-2 2 2 2-2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 8-2 2 2 2-2 2 2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 8v10c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 10.34V6c0-.55-.45-1-1-1h-4.34\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuVibrate (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m2 8 2 2-2 2 2 2-2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m22 8-2 2 2 2-2 2 2 2\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"14\",\"x\":\"8\",\"y\":\"5\",\"rx\":\"1\"}}]})(props);\n};\nexport function LuVideoOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.66 6H14a2 2 0 0 1 2 2v2.34l1 1L22 8v8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2l10 10Z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuVideo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m22 8-6 4 6 4V8Z\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"14\",\"height\":\"12\",\"x\":\"2\",\"y\":\"6\",\"rx\":\"2\",\"ry\":\"2\"}}]})(props);\n};\nexport function LuVideotape (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"20\",\"height\":\"16\",\"x\":\"2\",\"y\":\"4\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 8h20\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"14\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 12h8\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"14\",\"r\":\"2\"}}]})(props);\n};\nexport function LuView (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12s2.545-5 7-5c4.454 0 7 5 7 5s-2.546 5-7 5c-4.455 0-7-5-7-5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 13a1 1 0 1 0 0-2 1 1 0 0 0 0 2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 17v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 7V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2\"}}]})(props);\n};\nexport function LuVoicemail (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"12\",\"r\":\"4\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"12\",\"r\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"x2\":\"18\",\"y1\":\"16\",\"y2\":\"16\"}}]})(props);\n};\nexport function LuVolume1 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.54 8.46a5 5 0 0 1 0 7.07\"}}]})(props);\n};\nexport function LuVolume2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.54 8.46a5 5 0 0 1 0 7.07\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.07 4.93a10 10 0 0 1 0 14.14\"}}]})(props);\n};\nexport function LuVolumeX (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"x2\":\"16\",\"y1\":\"9\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"x2\":\"22\",\"y1\":\"9\",\"y2\":\"15\"}}]})(props);\n};\nexport function LuVolume (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"}}]})(props);\n};\nexport function LuVote (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m9 12 2 2 4-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 7c0-1.1.9-2 2-2h10a2 2 0 0 1 2 2v12H5V7Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19H2\"}}]})(props);\n};\nexport function LuWallet2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 14h.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 7h12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14\"}}]})(props);\n};\nexport function LuWalletCards (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 11h3c.8 0 1.6.3 2.1.9l1.1.9c1.6 1.6 4.1 1.6 5.7 0l1.1-.9c.5-.5 1.3-.9 2.1-.9H21\"}}]})(props);\n};\nexport function LuWallet (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12V7H5a2 2 0 0 1 0-4h14v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5v14a2 2 0 0 0 2 2h16v-5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 12a2 2 0 0 0 0 4h4v-4Z\"}}]})(props);\n};\nexport function LuWallpaper (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"9\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 17 6.1-6.1a2 2 0 0 1 2.81.01L22 15V5a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 21h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17v4\"}}]})(props);\n};\nexport function LuWand2 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14 7 3 3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 6v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 14v4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 2v2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 8H3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16h-4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 3H9\"}}]})(props);\n};\nexport function LuWand (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 4V2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 16v-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 9h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 9h2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.8 11.8 19 13\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 9h0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.8 6.2 19 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m3 21 9-9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.2 6.2 11 5\"}}]})(props);\n};\nexport function LuWarehouse (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 8.35V20a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8.35A2 2 0 0 1 3.26 6.5l8-3.2a2 2 0 0 1 1.48 0l8 3.2A2 2 0 0 1 22 8.35Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 18h12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 14h12\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"12\",\"height\":\"12\",\"x\":\"6\",\"y\":\"10\"}}]})(props);\n};\nexport function LuWatch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"6\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 10 12 12 13 13\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16.13 7.66-.81-4.05a2 2 0 0 0-2-1.61h-2.68a2 2 0 0 0-2 1.61l-.78 4.05\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m7.88 16.36.8 4a2 2 0 0 0 2 1.61h2.72a2 2 0 0 0 2-1.61l.81-4.05\"}}]})(props);\n};\nexport function LuWaves (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 6c.6.5 1.2 1 2.5 1C7 7 7 5 9.5 5c2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 12c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1\"}}]})(props);\n};\nexport function LuWebcam (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"10\",\"r\":\"8\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"10\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 22h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22v-4\"}}]})(props);\n};\nexport function LuWebhook (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m6 17 3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12 6 3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8\"}}]})(props);\n};\nexport function LuWheatOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m2 22 10-10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 8-1.17 1.17\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.47 12.53 5 11l1.53 1.53a3.5 3.5 0 0 1 0 4.94L5 19l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 8-.53.53a3.5 3.5 0 0 0 0 4.94L9 15l1.53-1.53c.55-.55.88-1.25.98-1.97\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.91 5.26c.15-.26.34-.51.56-.73L13 3l1.53 1.53a3.5 3.5 0 0 1 .28 4.62\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2h2v2a4 4 0 0 1-4 4h-2V6a4 4 0 0 1 4-4Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.47 17.47 13 19l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L5 19l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16 16-.53.53a3.5 3.5 0 0 1-4.94 0L9 15l1.53-1.53a3.49 3.49 0 0 1 1.97-.98\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.74 13.09c.26-.15.51-.34.73-.56L21 11l-1.53-1.53a3.5 3.5 0 0 0-4.62-.28\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuWheat (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 22 16 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.47 12.53 5 11l1.53 1.53a3.5 3.5 0 0 1 0 4.94L5 19l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.47 8.53 9 7l1.53 1.53a3.5 3.5 0 0 1 0 4.94L9 15l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.47 4.53 13 3l1.53 1.53a3.5 3.5 0 0 1 0 4.94L13 11l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2h2v2a4 4 0 0 1-4 4h-2V6a4 4 0 0 1 4-4Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.47 17.47 13 19l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L5 19l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.47 13.47 17 15l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L9 15l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.47 9.47 21 11l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L13 11l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z\"}}]})(props);\n};\nexport function LuWholeWord (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"7\",\"cy\":\"12\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 9v6\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17\",\"cy\":\"12\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 7v8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 17v1c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1v-1\"}}]})(props);\n};\nexport function LuWifiOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 16.5a5 5 0 0 1 7 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 8.82a15 15 0 0 1 4.17-2.65\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.66 5c4.01-.36 8.14.9 11.34 3.76\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.85 11.25a10 10 0 0 1 2.22 1.68\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 13a10 10 0 0 1 5.24-2.76\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12.01\",\"y1\":\"20\",\"y2\":\"20\"}}]})(props);\n};\nexport function LuWifi (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 13a10 10 0 0 1 14 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 16.5a5 5 0 0 1 7 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 8.82a15 15 0 0 1 20 0\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"x2\":\"12.01\",\"y1\":\"20\",\"y2\":\"20\"}}]})(props);\n};\nexport function LuWind (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.7 7.7a2.5 2.5 0 1 1 1.8 4.3H2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.6 4.6A2 2 0 1 1 11 8H2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.6 19.4A2 2 0 1 0 14 16H2\"}}]})(props);\n};\nexport function LuWineOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 22h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 10h3m7 0h-1.343\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 15v7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.307 7.307A12.33 12.33 0 0 0 7 10a5 5 0 0 0 7.391 4.391M8.638 2.981C8.75 2.668 8.872 2.34 9 2h6c1.5 4 2 6 2 8 0 .407-.05.809-.145 1.198\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuWine (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 22h8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 10h10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 15v7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 15a5 5 0 0 0 5-5c0-2-.5-4-2-8H9c-1.5 4-2 6-2 8a5 5 0 0 0 5 5Z\"}}]})(props);\n};\nexport function LuWorkflow (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"8\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11v4a2 2 0 0 0 2 2h4\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"8\",\"height\":\"8\",\"x\":\"13\",\"y\":\"13\",\"rx\":\"2\"}}]})(props);\n};\nexport function LuWrapText (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"6\",\"y2\":\"6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 12h15a3 3 0 1 1 0 6h-4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 16 14 18 16 20\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"x2\":\"10\",\"y1\":\"18\",\"y2\":\"18\"}}]})(props);\n};\nexport function LuWrench (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z\"}}]})(props);\n};\nexport function LuXCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 9-6 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 9 6 6\"}}]})(props);\n};\nexport function LuXOctagon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 9-6 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 9 6 6\"}}]})(props);\n};\nexport function LuXSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15 9-6 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 9 6 6\"}}]})(props);\n};\nexport function LuX (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 6 6 18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m6 6 12 12\"}}]})(props);\n};\nexport function LuYoutube (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.5 17a24.12 24.12 0 0 1 0-10 2 2 0 0 1 1.4-1.4 49.56 49.56 0 0 1 16.2 0A2 2 0 0 1 21.5 7a24.12 24.12 0 0 1 0 10 2 2 0 0 1-1.4 1.4 49.55 49.55 0 0 1-16.2 0A2 2 0 0 1 2.5 17\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10 15 5-3-5-3z\"}}]})(props);\n};\nexport function LuZapOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"12.41 6.75 13 2 10.57 4.92\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"18.57 12.91 21 10 15.66 10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 8 3 14 12 14 11 22 16 16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"x2\":\"22\",\"y1\":\"2\",\"y2\":\"22\"}}]})(props);\n};\nexport function LuZap (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"}}]})(props);\n};\nexport function LuZoomIn (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"x2\":\"16.65\",\"y1\":\"21\",\"y2\":\"16.65\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"11\",\"x2\":\"11\",\"y1\":\"8\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"14\",\"y1\":\"11\",\"y2\":\"11\"}}]})(props);\n};\nexport function LuZoomOut (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"x2\":\"16.65\",\"y1\":\"21\",\"y2\":\"16.65\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"x2\":\"14\",\"y1\":\"11\",\"y2\":\"11\"}}]})(props);\n};\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-is.production.min.js');\n} else {\n  module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * Relay v16.2.0\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nmodule.exports = require('./lib/hooks.js');\n","/**\n * Relay v16.2.0\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nmodule.exports = require('./lib/index.js');\n","'use strict';\n\nfunction getComponentName(component) {\n  return component.displayName || component.name || 'Component';\n}\nfunction getContainerName(Component) {\n  return 'Relay(' + getComponentName(Component) + ')';\n}\nmodule.exports = {\n  getComponentName: getComponentName,\n  getContainerName: getContainerName\n};","'use strict';\n\nvar React = require('react');\nvar _require = require('relay-runtime'),\n  createRelayContext = _require.__internal.createRelayContext;\nmodule.exports = createRelayContext(React);","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _excluded = [\"componentRef\", \"__relayContext\", \"__rootIsQueryRenderer\"];\nvar buildReactRelayContainer = require('./buildReactRelayContainer');\nvar _require = require('./ReactRelayContainerUtils'),\n  getContainerName = _require.getContainerName;\nvar _require2 = require('./RelayContext'),\n  assertRelayContext = _require2.assertRelayContext;\nvar areEqual = require(\"fbjs/lib/areEqual\");\nvar React = require('react');\nvar _require3 = require('relay-runtime'),\n  createFragmentSpecResolver = _require3.createFragmentSpecResolver,\n  getDataIDsFromObject = _require3.getDataIDsFromObject,\n  isScalarAndEqual = _require3.isScalarAndEqual;\nfunction createContainerWithFragments(Component, fragments) {\n  var _class;\n  var containerName = getContainerName(Component);\n  return _class = /*#__PURE__*/function (_React$Component) {\n    (0, _inheritsLoose2[\"default\"])(_class, _React$Component);\n    function _class(props) {\n      var _props$__rootIsQueryR, _this;\n      _this = _React$Component.call(this, props) || this;\n      (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_handleFragmentDataUpdate\", function () {\n        var resolverFromThisUpdate = _this.state.resolver;\n        _this.setState(function (updatedState) {\n          return resolverFromThisUpdate === updatedState.resolver ? {\n            data: updatedState.resolver.resolve(),\n            relayProp: getRelayProp(updatedState.relayProp.environment)\n          } : null;\n        });\n      });\n      var relayContext = assertRelayContext(props.__relayContext);\n      var rootIsQueryRenderer = (_props$__rootIsQueryR = props.__rootIsQueryRenderer) !== null && _props$__rootIsQueryR !== void 0 ? _props$__rootIsQueryR : false;\n      var resolver = createFragmentSpecResolver(relayContext, containerName, fragments, props, rootIsQueryRenderer);\n      _this.state = {\n        data: resolver.resolve(),\n        prevProps: props,\n        prevPropsContext: relayContext,\n        relayProp: getRelayProp(relayContext.environment),\n        resolver: resolver\n      };\n      return _this;\n    }\n    _class.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n      var _nextProps$__rootIsQu;\n      var prevProps = prevState.prevProps;\n      var relayContext = assertRelayContext(nextProps.__relayContext);\n      var rootIsQueryRenderer = (_nextProps$__rootIsQu = nextProps.__rootIsQueryRenderer) !== null && _nextProps$__rootIsQu !== void 0 ? _nextProps$__rootIsQu : false;\n      var prevIDs = getDataIDsFromObject(fragments, prevProps);\n      var nextIDs = getDataIDsFromObject(fragments, nextProps);\n      var resolver = prevState.resolver;\n      if (prevState.prevPropsContext.environment !== relayContext.environment || !areEqual(prevIDs, nextIDs)) {\n        resolver = createFragmentSpecResolver(relayContext, containerName, fragments, nextProps, rootIsQueryRenderer);\n        return {\n          data: resolver.resolve(),\n          prevPropsContext: relayContext,\n          prevProps: nextProps,\n          relayProp: getRelayProp(relayContext.environment),\n          resolver: resolver\n        };\n      } else {\n        resolver.setProps(nextProps);\n        var data = resolver.resolve();\n        if (data !== prevState.data) {\n          return {\n            data: data,\n            prevProps: nextProps,\n            prevPropsContext: relayContext,\n            relayProp: getRelayProp(relayContext.environment)\n          };\n        }\n      }\n      return null;\n    };\n    var _proto = _class.prototype;\n    _proto.componentDidMount = function componentDidMount() {\n      this._subscribeToNewResolverAndRerenderIfStoreHasChanged();\n    };\n    _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n      if (this.state.resolver !== prevState.resolver) {\n        prevState.resolver.dispose();\n        this._subscribeToNewResolverAndRerenderIfStoreHasChanged();\n      } else {\n        this._rerenderIfStoreHasChanged();\n      }\n    };\n    _proto.componentWillUnmount = function componentWillUnmount() {\n      this.state.resolver.dispose();\n    };\n    _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState) {\n      if (nextState.data !== this.state.data) {\n        return true;\n      }\n      var keys = Object.keys(nextProps);\n      for (var ii = 0; ii < keys.length; ii++) {\n        var key = keys[ii];\n        if (key === '__relayContext') {\n          if (nextState.prevPropsContext.environment !== this.state.prevPropsContext.environment) {\n            return true;\n          }\n        } else {\n          if (!fragments.hasOwnProperty(key) && !isScalarAndEqual(nextProps[key], this.props[key])) {\n            return true;\n          }\n        }\n      }\n      return false;\n    };\n    _proto._rerenderIfStoreHasChanged = function _rerenderIfStoreHasChanged() {\n      var _this$state = this.state,\n        data = _this$state.data,\n        resolver = _this$state.resolver;\n      var maybeNewData = resolver.resolve();\n      if (data !== maybeNewData) {\n        this.setState({\n          data: maybeNewData\n        });\n      }\n    };\n    _proto._subscribeToNewResolverAndRerenderIfStoreHasChanged = function _subscribeToNewResolverAndRerenderIfStoreHasChanged() {\n      var _this$state2 = this.state,\n        data = _this$state2.data,\n        resolver = _this$state2.resolver;\n      var maybeNewData = resolver.resolve();\n      resolver.setCallback(this.props, this._handleFragmentDataUpdate);\n      if (data !== maybeNewData) {\n        this.setState({\n          data: maybeNewData\n        });\n      }\n    };\n    _proto.render = function render() {\n      var _this$props = this.props,\n        componentRef = _this$props.componentRef,\n        __relayContext = _this$props.__relayContext,\n        __rootIsQueryRenderer = _this$props.__rootIsQueryRenderer,\n        props = (0, _objectWithoutPropertiesLoose2[\"default\"])(_this$props, _excluded);\n      return React.createElement(Component, (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, props), this.state.data), {}, {\n        ref: componentRef,\n        relay: this.state.relayProp\n      }));\n    };\n    return _class;\n  }(React.Component), (0, _defineProperty2[\"default\"])(_class, \"displayName\", containerName), _class;\n}\nfunction getRelayProp(environment) {\n  return {\n    environment: environment\n  };\n}\nfunction createContainer(Component, fragmentSpec) {\n  return buildReactRelayContainer(Component, fragmentSpec, createContainerWithFragments);\n}\nmodule.exports = {\n  createContainer: createContainer\n};","'use strict';\n\nvar ReactRelayContext = require('./ReactRelayContext');\nvar ReactRelayQueryRendererContext = require('./ReactRelayQueryRendererContext');\nvar areEqual = require(\"fbjs/lib/areEqual\");\nvar React = require('react');\nvar _require = require('relay-runtime'),\n  createOperationDescriptor = _require.createOperationDescriptor,\n  deepFreeze = _require.deepFreeze,\n  getRequest = _require.getRequest;\nvar useLayoutEffect = React.useLayoutEffect,\n  useState = React.useState,\n  useRef = React.useRef,\n  useMemo = React.useMemo;\nvar queryRendererContext = {\n  rootIsQueryRenderer: true\n};\nfunction useDeepCompare(value) {\n  var latestValue = React.useRef(value);\n  if (!areEqual(latestValue.current, value)) {\n    if (process.env.NODE_ENV !== \"production\") {\n      deepFreeze(value);\n    }\n    latestValue.current = value;\n  }\n  return latestValue.current;\n}\nfunction ReactRelayLocalQueryRenderer(props) {\n  var environment = props.environment,\n    query = props.query,\n    variables = props.variables,\n    render = props.render;\n  var latestVariables = useDeepCompare(variables);\n  var operation = useMemo(function () {\n    var request = getRequest(query);\n    return createOperationDescriptor(request, latestVariables);\n  }, [query, latestVariables]);\n  var relayContext = useMemo(function () {\n    return {\n      environment: environment\n    };\n  }, [environment]);\n  var dataRef = useRef(null);\n  var _useState = useState(null),\n    forceUpdate = _useState[1];\n  var cleanupFnRef = useRef(null);\n  var snapshot = useMemo(function () {\n    environment.check(operation);\n    var res = environment.lookup(operation.fragment);\n    dataRef.current = res.data;\n    var retainDisposable = environment.retain(operation);\n    var subscribeDisposable = environment.subscribe(res, function (newSnapshot) {\n      dataRef.current = newSnapshot.data;\n      forceUpdate(dataRef.current);\n    });\n    var disposed = false;\n    function nextCleanupFn() {\n      if (!disposed) {\n        disposed = true;\n        cleanupFnRef.current = null;\n        retainDisposable.dispose();\n        subscribeDisposable.dispose();\n      }\n    }\n    if (cleanupFnRef.current) {\n      cleanupFnRef.current();\n    }\n    cleanupFnRef.current = nextCleanupFn;\n    return res;\n  }, [environment, operation]);\n  useLayoutEffect(function () {\n    var cleanupFn = cleanupFnRef.current;\n    return function () {\n      cleanupFn && cleanupFn();\n    };\n  }, [snapshot]);\n  return /*#__PURE__*/React.createElement(ReactRelayContext.Provider, {\n    value: relayContext\n  }, /*#__PURE__*/React.createElement(ReactRelayQueryRendererContext.Provider, {\n    value: queryRendererContext\n  }, render({\n    props: dataRef.current\n  })));\n}\nmodule.exports = ReactRelayLocalQueryRenderer;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _objectSpread3 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _excluded = [\"componentRef\"],\n  _excluded2 = [\"componentRef\", \"__relayContext\", \"__rootIsQueryRenderer\"],\n  _excluded3 = [\"componentRef\", \"__relayContext\", \"__rootIsQueryRenderer\"];\nvar buildReactRelayContainer = require('./buildReactRelayContainer');\nvar getRootVariablesForFragments = require('./getRootVariablesForFragments');\nvar _require = require('./ReactRelayContainerUtils'),\n  getComponentName = _require.getComponentName,\n  getContainerName = _require.getContainerName;\nvar ReactRelayContext = require('./ReactRelayContext');\nvar ReactRelayQueryFetcher = require('./ReactRelayQueryFetcher');\nvar _require2 = require('./RelayContext'),\n  assertRelayContext = _require2.assertRelayContext;\nvar areEqual = require(\"fbjs/lib/areEqual\");\nvar invariant = require('invariant');\nvar React = require('react');\nvar _require3 = require('relay-runtime'),\n  ConnectionInterface = _require3.ConnectionInterface,\n  Observable = _require3.Observable,\n  RelayFeatureFlags = _require3.RelayFeatureFlags,\n  createFragmentSpecResolver = _require3.createFragmentSpecResolver,\n  createOperationDescriptor = _require3.createOperationDescriptor,\n  getDataIDsFromObject = _require3.getDataIDsFromObject,\n  getRequest = _require3.getRequest,\n  getVariablesFromObject = _require3.getVariablesFromObject,\n  isScalarAndEqual = _require3.isScalarAndEqual;\nvar warning = require(\"fbjs/lib/warning\");\nvar FORWARD = 'forward';\nfunction createGetConnectionFromProps(metadata) {\n  var path = metadata.path;\n  !path ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayPaginationContainer: Unable to synthesize a ' + 'getConnectionFromProps function.') : invariant(false) : void 0;\n  return function (props) {\n    var data = props[metadata.fragmentName];\n    for (var i = 0; i < path.length; i++) {\n      if (!data || typeof data !== 'object') {\n        return null;\n      }\n      data = data[path[i]];\n    }\n    return data;\n  };\n}\nfunction createGetFragmentVariables(metadata) {\n  var countVariable = metadata.count;\n  !countVariable ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayPaginationContainer: Unable to synthesize a ' + 'getFragmentVariables function.') : invariant(false) : void 0;\n  return function (prevVars, totalCount) {\n    return (0, _objectSpread3[\"default\"])((0, _objectSpread3[\"default\"])({}, prevVars), {}, (0, _defineProperty2[\"default\"])({}, countVariable, totalCount));\n  };\n}\nfunction findConnectionMetadata(fragments) {\n  var foundConnectionMetadata = null;\n  var isRelayModern = false;\n  for (var fragmentName in fragments) {\n    var fragment = fragments[fragmentName];\n    var connectionMetadata = fragment.metadata && fragment.metadata.connection;\n    if (fragment.metadata !== undefined) {\n      isRelayModern = true;\n    }\n    if (connectionMetadata) {\n      !(connectionMetadata.length === 1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayPaginationContainer: Only a single @connection is ' + 'supported, `%s` has %s.', fragmentName, connectionMetadata.length) : invariant(false) : void 0;\n      !!foundConnectionMetadata ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayPaginationContainer: Only a single fragment with ' + '@connection is supported.') : invariant(false) : void 0;\n      foundConnectionMetadata = (0, _objectSpread3[\"default\"])((0, _objectSpread3[\"default\"])({}, connectionMetadata[0]), {}, {\n        fragmentName: fragmentName\n      });\n    }\n  }\n  !(!isRelayModern || foundConnectionMetadata !== null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayPaginationContainer: A @connection directive must be present.') : invariant(false) : void 0;\n  return foundConnectionMetadata || {};\n}\nfunction toObserver(observerOrCallback) {\n  return typeof observerOrCallback === 'function' ? {\n    error: observerOrCallback,\n    complete: observerOrCallback,\n    unsubscribe: function unsubscribe(subscription) {\n      typeof observerOrCallback === 'function' && observerOrCallback();\n    }\n  } : observerOrCallback || {};\n}\nfunction createContainerWithFragments(Component, fragments, connectionConfig) {\n  var _class;\n  var componentName = getComponentName(Component);\n  var containerName = getContainerName(Component);\n  var metadata = findConnectionMetadata(fragments);\n  var getConnectionFromProps = connectionConfig.getConnectionFromProps || createGetConnectionFromProps(metadata);\n  var direction = connectionConfig.direction || metadata.direction;\n  !direction ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayPaginationContainer: Unable to infer direction of the ' + 'connection, possibly because both first and last are provided.') : invariant(false) : void 0;\n  var getFragmentVariables = connectionConfig.getFragmentVariables || createGetFragmentVariables(metadata);\n  return _class = /*#__PURE__*/function (_React$Component) {\n    (0, _inheritsLoose2[\"default\"])(_class, _React$Component);\n    function _class(props) {\n      var _props$__rootIsQueryR, _this;\n      _this = _React$Component.call(this, props) || this;\n      (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_handleFragmentDataUpdate\", function () {\n        _this.setState({\n          data: _this._resolver.resolve()\n        });\n      });\n      (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_hasMore\", function () {\n        var connectionData = _this._getConnectionData();\n        return !!(connectionData && connectionData.hasMore && connectionData.cursor);\n      });\n      (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_isLoading\", function () {\n        return !!_this._refetchSubscription;\n      });\n      (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_refetchConnection\", function (totalCount, observerOrCallback, refetchVariables) {\n        if (!_this._canFetchPage('refetchConnection')) {\n          return {\n            dispose: function dispose() {}\n          };\n        }\n        _this._refetchVariables = refetchVariables;\n        var paginatingVariables = {\n          count: totalCount,\n          cursor: null,\n          totalCount: totalCount\n        };\n        var fetch = _this._fetchPage(paginatingVariables, toObserver(observerOrCallback), {\n          force: true\n        });\n        return {\n          dispose: fetch.unsubscribe\n        };\n      });\n      (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_loadMore\", function (pageSize, observerOrCallback, options) {\n        if (!_this._canFetchPage('loadMore')) {\n          return {\n            dispose: function dispose() {}\n          };\n        }\n        var observer = toObserver(observerOrCallback);\n        var connectionData = _this._getConnectionData();\n        if (!connectionData) {\n          Observable.create(function (sink) {\n            return sink.complete();\n          }).subscribe(observer);\n          return null;\n        }\n        var totalCount = connectionData.edgeCount + pageSize;\n        if (options && options.force) {\n          return _this._refetchConnection(totalCount, observerOrCallback);\n        }\n        var _ConnectionInterface$ = ConnectionInterface.get(),\n          END_CURSOR = _ConnectionInterface$.END_CURSOR,\n          START_CURSOR = _ConnectionInterface$.START_CURSOR;\n        var cursor = connectionData.cursor;\n        process.env.NODE_ENV !== \"production\" ? warning(cursor != null && cursor !== '', 'ReactRelayPaginationContainer: Cannot `loadMore` without valid `%s` (got `%s`)', direction === FORWARD ? END_CURSOR : START_CURSOR, cursor) : void 0;\n        var paginatingVariables = {\n          count: pageSize,\n          cursor: cursor,\n          totalCount: totalCount\n        };\n        var fetch = _this._fetchPage(paginatingVariables, observer, options);\n        return {\n          dispose: fetch.unsubscribe\n        };\n      });\n      var relayContext = assertRelayContext(props.__relayContext);\n      var rootIsQueryRenderer = (_props$__rootIsQueryR = props.__rootIsQueryRenderer) !== null && _props$__rootIsQueryR !== void 0 ? _props$__rootIsQueryR : false;\n      _this._isARequestInFlight = false;\n      _this._refetchSubscription = null;\n      _this._refetchVariables = null;\n      if (RelayFeatureFlags.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT === true) {\n        _this._resolver = createFragmentSpecResolver(relayContext, containerName, fragments, props, rootIsQueryRenderer);\n      } else {\n        _this._resolver = createFragmentSpecResolver(relayContext, containerName, fragments, props, rootIsQueryRenderer, _this._handleFragmentDataUpdate);\n      }\n      _this.state = {\n        data: _this._resolver.resolve(),\n        prevContext: relayContext,\n        contextForChildren: relayContext,\n        relayProp: _this._buildRelayProp(relayContext),\n        resolverGeneration: 0\n      };\n      _this._isUnmounted = false;\n      _this._hasFetched = false;\n      return _this;\n    }\n    var _proto = _class.prototype;\n    _proto.componentDidMount = function componentDidMount() {\n      this._isUnmounted = false;\n      if (RelayFeatureFlags.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT === true) {\n        this._subscribeToNewResolverAndRerenderIfStoreHasChanged();\n      }\n    };\n    _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n      if (RelayFeatureFlags.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT === true) {\n        if (prevState.resolverGeneration !== this.state.resolverGeneration) {\n          this._subscribeToNewResolverAndRerenderIfStoreHasChanged();\n        } else {\n          this._rerenderIfStoreHasChanged();\n        }\n      }\n    };\n    _proto.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(nextProps) {\n      var _this2 = this;\n      var _nextProps$__rootIsQu;\n      var relayContext = assertRelayContext(nextProps.__relayContext);\n      var rootIsQueryRenderer = (_nextProps$__rootIsQu = nextProps.__rootIsQueryRenderer) !== null && _nextProps$__rootIsQu !== void 0 ? _nextProps$__rootIsQu : false;\n      var prevIDs = getDataIDsFromObject(fragments, this.props);\n      var nextIDs = getDataIDsFromObject(fragments, nextProps);\n      var prevRootVariables = getRootVariablesForFragments(fragments, this.props);\n      var nextRootVariables = getRootVariablesForFragments(fragments, nextProps);\n      if (relayContext.environment !== this.state.prevContext.environment || !areEqual(prevRootVariables, nextRootVariables) || !areEqual(prevIDs, nextIDs)) {\n        this._cleanup();\n        if (RelayFeatureFlags.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT === true) {\n          this._resolver = createFragmentSpecResolver(relayContext, containerName, fragments, nextProps, rootIsQueryRenderer);\n        } else {\n          this._resolver = createFragmentSpecResolver(relayContext, containerName, fragments, nextProps, rootIsQueryRenderer, this._handleFragmentDataUpdate);\n        }\n        this.setState(function (prevState) {\n          return {\n            prevContext: relayContext,\n            contextForChildren: relayContext,\n            relayProp: _this2._buildRelayProp(relayContext),\n            resolverGeneration: prevState.resolverGeneration + 1\n          };\n        });\n      } else if (!this._hasFetched) {\n        this._resolver.setProps(nextProps);\n      }\n      var data = this._resolver.resolve();\n      if (data !== this.state.data) {\n        this.setState({\n          data: data\n        });\n      }\n    };\n    _proto.componentWillUnmount = function componentWillUnmount() {\n      this._isUnmounted = true;\n      this._cleanup();\n    };\n    _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState) {\n      if (nextState.data !== this.state.data || nextState.relayProp !== this.state.relayProp || nextState.resolverGeneration !== this.state.resolverGeneration) {\n        return true;\n      }\n      var keys = Object.keys(nextProps);\n      for (var ii = 0; ii < keys.length; ii++) {\n        var key = keys[ii];\n        if (key === '__relayContext') {\n          if (nextState.prevContext.environment !== this.state.prevContext.environment) {\n            return true;\n          }\n        } else {\n          if (!fragments.hasOwnProperty(key) && !isScalarAndEqual(nextProps[key], this.props[key])) {\n            return true;\n          }\n        }\n      }\n      return false;\n    };\n    _proto._buildRelayProp = function _buildRelayProp(relayContext) {\n      return {\n        hasMore: this._hasMore,\n        isLoading: this._isLoading,\n        loadMore: this._loadMore,\n        refetchConnection: this._refetchConnection,\n        environment: relayContext.environment\n      };\n    };\n    _proto._rerenderIfStoreHasChanged = function _rerenderIfStoreHasChanged() {\n      var data = this.state.data;\n      var maybeNewData = this._resolver.resolve();\n      if (data !== maybeNewData) {\n        this.setState({\n          data: maybeNewData\n        });\n      }\n    };\n    _proto._subscribeToNewResolverAndRerenderIfStoreHasChanged = function _subscribeToNewResolverAndRerenderIfStoreHasChanged() {\n      var data = this.state.data;\n      var maybeNewData = this._resolver.resolve();\n      this._resolver.setCallback(this.props, this._handleFragmentDataUpdate);\n      if (data !== maybeNewData) {\n        this.setState({\n          data: maybeNewData\n        });\n      }\n    };\n    _proto._getConnectionData = function _getConnectionData() {\n      var _this$props = this.props,\n        _ = _this$props.componentRef,\n        restProps = (0, _objectWithoutPropertiesLoose2[\"default\"])(_this$props, _excluded);\n      var props = (0, _objectSpread3[\"default\"])((0, _objectSpread3[\"default\"])({}, restProps), this.state.data);\n      var connectionData = getConnectionFromProps(props);\n      if (connectionData == null) {\n        return null;\n      }\n      var _ConnectionInterface$2 = ConnectionInterface.get(),\n        EDGES = _ConnectionInterface$2.EDGES,\n        PAGE_INFO = _ConnectionInterface$2.PAGE_INFO,\n        HAS_NEXT_PAGE = _ConnectionInterface$2.HAS_NEXT_PAGE,\n        HAS_PREV_PAGE = _ConnectionInterface$2.HAS_PREV_PAGE,\n        END_CURSOR = _ConnectionInterface$2.END_CURSOR,\n        START_CURSOR = _ConnectionInterface$2.START_CURSOR;\n      !(typeof connectionData === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayPaginationContainer: Expected `getConnectionFromProps()` in `%s`' + 'to return `null` or a plain object with %s and %s properties, got `%s`.', componentName, EDGES, PAGE_INFO, connectionData) : invariant(false) : void 0;\n      var edges = connectionData[EDGES];\n      var pageInfo = connectionData[PAGE_INFO];\n      if (edges == null || pageInfo == null) {\n        return null;\n      }\n      !Array.isArray(edges) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayPaginationContainer: Expected `getConnectionFromProps()` in `%s`' + 'to return an object with %s: Array, got `%s`.', componentName, EDGES, edges) : invariant(false) : void 0;\n      !(typeof pageInfo === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayPaginationContainer: Expected `getConnectionFromProps()` in `%s`' + 'to return an object with %s: Object, got `%s`.', componentName, PAGE_INFO, pageInfo) : invariant(false) : void 0;\n      var hasMore = direction === FORWARD ? pageInfo[HAS_NEXT_PAGE] : pageInfo[HAS_PREV_PAGE];\n      var cursor = direction === FORWARD ? pageInfo[END_CURSOR] : pageInfo[START_CURSOR];\n      if (typeof hasMore !== 'boolean' || edges.length !== 0 && typeof cursor === 'undefined') {\n        process.env.NODE_ENV !== \"production\" ? warning(false, 'ReactRelayPaginationContainer: Cannot paginate without %s fields in `%s`. ' + 'Be sure to fetch %s (got `%s`) and %s (got `%s`).', PAGE_INFO, componentName, direction === FORWARD ? HAS_NEXT_PAGE : HAS_PREV_PAGE, hasMore, direction === FORWARD ? END_CURSOR : START_CURSOR, cursor) : void 0;\n        return null;\n      }\n      return {\n        cursor: cursor,\n        edgeCount: edges.length,\n        hasMore: hasMore\n      };\n    };\n    _proto._getQueryFetcher = function _getQueryFetcher() {\n      if (!this._queryFetcher) {\n        this._queryFetcher = new ReactRelayQueryFetcher();\n      }\n      return this._queryFetcher;\n    };\n    _proto._canFetchPage = function _canFetchPage(method) {\n      if (this._isUnmounted) {\n        process.env.NODE_ENV !== \"production\" ? warning(false, 'ReactRelayPaginationContainer: Unexpected call of `%s` ' + 'on unmounted container `%s`. It looks like some instances ' + 'of your container still trying to fetch data but they already ' + 'unmounted. Please make sure you clear all timers, intervals, async ' + 'calls, etc that may trigger `%s` call.', method, containerName, method) : void 0;\n        return false;\n      }\n      return true;\n    };\n    _proto._fetchPage = function _fetchPage(paginatingVariables, observer, options) {\n      var _this3 = this;\n      var _assertRelayContext = assertRelayContext(this.props.__relayContext),\n        environment = _assertRelayContext.environment;\n      var _this$props2 = this.props,\n        _ = _this$props2.componentRef,\n        __relayContext = _this$props2.__relayContext,\n        __rootIsQueryRenderer = _this$props2.__rootIsQueryRenderer,\n        restProps = (0, _objectWithoutPropertiesLoose2[\"default\"])(_this$props2, _excluded2);\n      var props = (0, _objectSpread3[\"default\"])((0, _objectSpread3[\"default\"])({}, restProps), this.state.data);\n      var fragmentVariables;\n      var rootVariables = getRootVariablesForFragments(fragments, restProps);\n      fragmentVariables = getVariablesFromObject(fragments, restProps);\n      fragmentVariables = (0, _objectSpread3[\"default\"])((0, _objectSpread3[\"default\"])((0, _objectSpread3[\"default\"])({}, rootVariables), fragmentVariables), this._refetchVariables);\n      var fetchVariables = connectionConfig.getVariables(props, {\n        count: paginatingVariables.count,\n        cursor: paginatingVariables.cursor\n      }, fragmentVariables);\n      !(typeof fetchVariables === 'object' && fetchVariables !== null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayPaginationContainer: Expected `getVariables()` to ' + 'return an object, got `%s` in `%s`.', fetchVariables, componentName) : invariant(false) : void 0;\n      fetchVariables = (0, _objectSpread3[\"default\"])((0, _objectSpread3[\"default\"])({}, fetchVariables), this._refetchVariables);\n      fragmentVariables = (0, _objectSpread3[\"default\"])((0, _objectSpread3[\"default\"])({}, fetchVariables), fragmentVariables);\n      var cacheConfig = options ? {\n        force: !!options.force\n      } : undefined;\n      if (cacheConfig != null && (options === null || options === void 0 ? void 0 : options.metadata) != null) {\n        cacheConfig.metadata = options === null || options === void 0 ? void 0 : options.metadata;\n      }\n      var request = getRequest(connectionConfig.query);\n      var operation = createOperationDescriptor(request, fetchVariables, cacheConfig);\n      var refetchSubscription = null;\n      if (this._refetchSubscription) {\n        this._refetchSubscription.unsubscribe();\n      }\n      this._hasFetched = true;\n      var onNext = function onNext(payload, complete) {\n        var prevData = _this3._resolver.resolve();\n        _this3._resolver.setVariables(getFragmentVariables(fragmentVariables, paginatingVariables.totalCount), operation.request.node);\n        var nextData = _this3._resolver.resolve();\n        if (!areEqual(prevData, nextData)) {\n          _this3.setState({\n            data: nextData,\n            contextForChildren: {\n              environment: _this3.props.__relayContext.environment\n            }\n          }, complete);\n        } else {\n          complete();\n        }\n      };\n      var cleanup = function cleanup() {\n        if (_this3._refetchSubscription === refetchSubscription) {\n          _this3._refetchSubscription = null;\n          _this3._isARequestInFlight = false;\n        }\n      };\n      this._isARequestInFlight = true;\n      refetchSubscription = this._getQueryFetcher().execute({\n        environment: environment,\n        operation: operation,\n        preservePreviousReferences: true\n      }).mergeMap(function (payload) {\n        return Observable.create(function (sink) {\n          onNext(payload, function () {\n            sink.next();\n            sink.complete();\n          });\n        });\n      })[\"do\"]({\n        error: cleanup,\n        complete: cleanup,\n        unsubscribe: cleanup\n      }).subscribe(observer || {});\n      this._refetchSubscription = this._isARequestInFlight ? refetchSubscription : null;\n      return refetchSubscription;\n    };\n    _proto._cleanup = function _cleanup() {\n      this._resolver.dispose();\n      this._refetchVariables = null;\n      this._hasFetched = false;\n      if (this._refetchSubscription) {\n        this._refetchSubscription.unsubscribe();\n        this._refetchSubscription = null;\n        this._isARequestInFlight = false;\n      }\n      if (this._queryFetcher) {\n        this._queryFetcher.dispose();\n      }\n    };\n    _proto.render = function render() {\n      var _this$props3 = this.props,\n        componentRef = _this$props3.componentRef,\n        __relayContext = _this$props3.__relayContext,\n        __rootIsQueryRenderer = _this$props3.__rootIsQueryRenderer,\n        props = (0, _objectWithoutPropertiesLoose2[\"default\"])(_this$props3, _excluded3);\n      return /*#__PURE__*/React.createElement(ReactRelayContext.Provider, {\n        value: this.state.contextForChildren\n      }, /*#__PURE__*/React.createElement(Component, (0, _extends2[\"default\"])({}, props, this.state.data, {\n        ref: componentRef,\n        relay: this.state.relayProp\n      })));\n    };\n    return _class;\n  }(React.Component), (0, _defineProperty2[\"default\"])(_class, \"displayName\", containerName), _class;\n}\nfunction createContainer(Component, fragmentSpec, connectionConfig) {\n  return buildReactRelayContainer(Component, fragmentSpec, function (ComponentClass, fragments) {\n    return createContainerWithFragments(ComponentClass, fragments, connectionConfig);\n  });\n}\nmodule.exports = {\n  createContainer: createContainer\n};","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar invariant = require('invariant');\nvar _require = require('relay-runtime'),\n  fetchQuery = _require.__internal.fetchQuery,\n  createOperationDescriptor = _require.createOperationDescriptor,\n  isRelayModernEnvironment = _require.isRelayModernEnvironment;\nvar ReactRelayQueryFetcher = /*#__PURE__*/function () {\n  function ReactRelayQueryFetcher(args) {\n    (0, _defineProperty2[\"default\"])(this, \"_selectionReferences\", []);\n    (0, _defineProperty2[\"default\"])(this, \"_didFetchFinish\", false);\n    if (args != null) {\n      this._cacheSelectionReference = args.cacheSelectionReference;\n      this._selectionReferences = args.selectionReferences;\n    }\n  }\n  var _proto = ReactRelayQueryFetcher.prototype;\n  _proto.getSelectionReferences = function getSelectionReferences() {\n    return {\n      cacheSelectionReference: this._cacheSelectionReference,\n      selectionReferences: this._selectionReferences\n    };\n  };\n  _proto.lookupInStore = function lookupInStore(environment, operation, fetchPolicy) {\n    if (fetchPolicy === 'store-and-network' || fetchPolicy === 'store-or-network') {\n      if (environment.check(operation).status === 'available') {\n        this._retainCachedOperation(environment, operation);\n        return environment.lookup(operation.fragment);\n      }\n    }\n    return null;\n  };\n  _proto.getFetchResult = function getFetchResult() {\n    if (this._didFetchFinish) {\n      if (this._error != null) {\n        return {\n          error: this._error\n        };\n      } else if (this._snapshot != null) {\n        return {\n          snapshot: this._snapshot\n        };\n      }\n    } else {\n      return null;\n    }\n  };\n  _proto.execute = function execute(_ref) {\n    var _this = this;\n    var environment = _ref.environment,\n      operation = _ref.operation,\n      _ref$preservePrevious = _ref.preservePreviousReferences,\n      preservePreviousReferences = _ref$preservePrevious === void 0 ? false : _ref$preservePrevious;\n    var reference = environment.retain(operation);\n    var error = function error() {\n      _this._selectionReferences = _this._selectionReferences.concat(reference);\n    };\n    var complete = function complete() {\n      if (!preservePreviousReferences) {\n        _this.disposeSelectionReferences();\n      }\n      _this._selectionReferences = _this._selectionReferences.concat(reference);\n    };\n    var unsubscribe = function unsubscribe() {\n      _this._selectionReferences = _this._selectionReferences.concat(reference);\n    };\n    if (!isRelayModernEnvironment(environment)) {\n      return environment.execute({\n        operation: operation\n      })[\"do\"]({\n        error: error,\n        complete: complete,\n        unsubscribe: unsubscribe\n      });\n    }\n    return fetchQuery(environment, operation)[\"do\"]({\n      error: error,\n      complete: complete,\n      unsubscribe: unsubscribe\n    });\n  };\n  _proto.setOnDataChange = function setOnDataChange(onDataChange) {\n    !this._fetchOptions ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayQueryFetcher: `setOnDataChange` should have been called after having called `fetch`') : invariant(false) : void 0;\n    if (typeof onDataChange === 'function') {\n      this._fetchOptions.onDataChangeCallbacks = this._fetchOptions.onDataChangeCallbacks || [];\n      this._fetchOptions.onDataChangeCallbacks.push(onDataChange);\n      if (this._didFetchFinish) {\n        if (this._error != null) {\n          onDataChange({\n            error: this._error\n          });\n        } else if (this._snapshot != null) {\n          onDataChange({\n            snapshot: this._snapshot\n          });\n        }\n      }\n    }\n  };\n  _proto.fetch = function fetch(fetchOptions, cacheConfigOverride) {\n    var _this2 = this;\n    var environment = fetchOptions.environment,\n      operation = fetchOptions.operation,\n      onDataChange = fetchOptions.onDataChange;\n    var fetchHasReturned = false;\n    var _error;\n    this.disposeRequest();\n    var oldOnDataChangeCallbacks = this._fetchOptions && this._fetchOptions.onDataChangeCallbacks;\n    this._fetchOptions = {\n      environment: environment,\n      onDataChangeCallbacks: oldOnDataChangeCallbacks || [],\n      operation: operation\n    };\n    if (onDataChange && this._fetchOptions.onDataChangeCallbacks.indexOf(onDataChange) === -1) {\n      this._fetchOptions.onDataChangeCallbacks.push(onDataChange);\n    }\n    var operationOverride = cacheConfigOverride ? createOperationDescriptor(operation.request.node, operation.request.variables, cacheConfigOverride) : operation;\n    var request = this.execute({\n      environment: environment,\n      operation: operationOverride\n    })[\"finally\"](function () {\n      _this2._pendingRequest = null;\n    }).subscribe({\n      next: function next() {\n        _this2._didFetchFinish = true;\n        _this2._error = null;\n        _this2._onQueryDataAvailable({\n          notifyFirstResult: fetchHasReturned\n        });\n      },\n      error: function error(err) {\n        _this2._didFetchFinish = true;\n        _this2._error = err;\n        _this2._snapshot = null;\n        var onDataChangeCallbacks = _this2._fetchOptions && _this2._fetchOptions.onDataChangeCallbacks;\n        if (fetchHasReturned) {\n          if (onDataChangeCallbacks) {\n            onDataChangeCallbacks.forEach(function (onDataChange) {\n              onDataChange({\n                error: err\n              });\n            });\n          }\n        } else {\n          _error = err;\n        }\n      }\n    });\n    this._pendingRequest = {\n      dispose: function dispose() {\n        request.unsubscribe();\n      }\n    };\n    fetchHasReturned = true;\n    if (_error) {\n      throw _error;\n    }\n    return this._snapshot;\n  };\n  _proto.retry = function retry(cacheConfigOverride) {\n    !this._fetchOptions ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayQueryFetcher: `retry` should be called after having called `fetch`') : invariant(false) : void 0;\n    return this.fetch({\n      environment: this._fetchOptions.environment,\n      operation: this._fetchOptions.operation,\n      onDataChange: null\n    }, cacheConfigOverride);\n  };\n  _proto.dispose = function dispose() {\n    this.disposeRequest();\n    this.disposeSelectionReferences();\n  };\n  _proto.disposeRequest = function disposeRequest() {\n    this._error = null;\n    this._snapshot = null;\n    if (this._pendingRequest) {\n      this._pendingRequest.dispose();\n    }\n    if (this._rootSubscription) {\n      this._rootSubscription.dispose();\n      this._rootSubscription = null;\n    }\n  };\n  _proto._retainCachedOperation = function _retainCachedOperation(environment, operation) {\n    this._disposeCacheSelectionReference();\n    this._cacheSelectionReference = environment.retain(operation);\n  };\n  _proto._disposeCacheSelectionReference = function _disposeCacheSelectionReference() {\n    this._cacheSelectionReference && this._cacheSelectionReference.dispose();\n    this._cacheSelectionReference = null;\n  };\n  _proto.disposeSelectionReferences = function disposeSelectionReferences() {\n    this._disposeCacheSelectionReference();\n    this._selectionReferences.forEach(function (r) {\n      return r.dispose();\n    });\n    this._selectionReferences = [];\n  };\n  _proto._onQueryDataAvailable = function _onQueryDataAvailable(_ref2) {\n    var _this3 = this;\n    var notifyFirstResult = _ref2.notifyFirstResult;\n    !this._fetchOptions ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayQueryFetcher: `_onQueryDataAvailable` should have been called after having called `fetch`') : invariant(false) : void 0;\n    var _this$_fetchOptions = this._fetchOptions,\n      environment = _this$_fetchOptions.environment,\n      onDataChangeCallbacks = _this$_fetchOptions.onDataChangeCallbacks,\n      operation = _this$_fetchOptions.operation;\n    if (this._snapshot) {\n      return;\n    }\n    this._snapshot = environment.lookup(operation.fragment);\n    this._rootSubscription = environment.subscribe(this._snapshot, function (snapshot) {\n      if (_this3._fetchOptions != null) {\n        var maybeNewOnDataChangeCallbacks = _this3._fetchOptions.onDataChangeCallbacks;\n        if (Array.isArray(maybeNewOnDataChangeCallbacks)) {\n          maybeNewOnDataChangeCallbacks.forEach(function (onDataChange) {\n            return onDataChange({\n              snapshot: snapshot\n            });\n          });\n        }\n      }\n    });\n    if (this._snapshot && notifyFirstResult && Array.isArray(onDataChangeCallbacks)) {\n      var snapshot = this._snapshot;\n      onDataChangeCallbacks.forEach(function (onDataChange) {\n        return onDataChange({\n          snapshot: snapshot\n        });\n      });\n    }\n  };\n  return ReactRelayQueryFetcher;\n}();\nmodule.exports = ReactRelayQueryFetcher;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar ReactRelayContext = require('./ReactRelayContext');\nvar ReactRelayQueryFetcher = require('./ReactRelayQueryFetcher');\nvar ReactRelayQueryRendererContext = require('./ReactRelayQueryRendererContext');\nvar areEqual = require(\"fbjs/lib/areEqual\");\nvar React = require('react');\nvar _require = require('relay-runtime'),\n  createOperationDescriptor = _require.createOperationDescriptor,\n  deepFreeze = _require.deepFreeze,\n  getRequest = _require.getRequest;\nvar requestCache = {};\nvar queryRendererContext = {\n  rootIsQueryRenderer: true\n};\nvar ReactRelayQueryRenderer = /*#__PURE__*/function (_React$Component) {\n  (0, _inheritsLoose2[\"default\"])(ReactRelayQueryRenderer, _React$Component);\n  function ReactRelayQueryRenderer(props) {\n    var _this;\n    _this = _React$Component.call(this, props) || this;\n    (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_handleDataChange\", function (params) {\n      var error = params.error == null ? null : params.error;\n      var snapshot = params.snapshot == null ? null : params.snapshot;\n      _this.setState(function (prevState) {\n        var prevRequestCacheKey = prevState.requestCacheKey;\n        if (prevRequestCacheKey) {\n          delete requestCache[prevRequestCacheKey];\n        }\n        if (snapshot === prevState.snapshot && error === prevState.error) {\n          return null;\n        }\n        return {\n          renderProps: getRenderProps(error, snapshot, prevState.queryFetcher, prevState.retryCallbacks),\n          snapshot: snapshot,\n          requestCacheKey: null\n        };\n      });\n    });\n    var retryCallbacks = {\n      handleDataChange: null,\n      handleRetryAfterError: null\n    };\n    var queryFetcher;\n    var requestCacheKey;\n    if (props.query) {\n      var query = props.query;\n      var request = getRequest(query);\n      requestCacheKey = getRequestCacheKey(request.params, props.variables);\n      queryFetcher = requestCache[requestCacheKey] ? requestCache[requestCacheKey].queryFetcher : new ReactRelayQueryFetcher();\n    } else {\n      queryFetcher = new ReactRelayQueryFetcher();\n    }\n    _this._maybeHiddenOrFastRefresh = false;\n    _this.state = (0, _objectSpread2[\"default\"])({\n      prevPropsEnvironment: props.environment,\n      prevPropsVariables: props.variables,\n      prevQuery: props.query,\n      queryFetcher: queryFetcher,\n      retryCallbacks: retryCallbacks\n    }, fetchQueryAndComputeStateFromProps(props, queryFetcher, retryCallbacks, requestCacheKey));\n    return _this;\n  }\n  ReactRelayQueryRenderer.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n    if (prevState.prevQuery !== nextProps.query || prevState.prevPropsEnvironment !== nextProps.environment || !areEqual(prevState.prevPropsVariables, nextProps.variables)) {\n      return resetQueryStateForUpdate(nextProps, prevState);\n    }\n    return null;\n  };\n  var _proto = ReactRelayQueryRenderer.prototype;\n  _proto.componentDidMount = function componentDidMount() {\n    var _this2 = this;\n    if (this._maybeHiddenOrFastRefresh === true) {\n      this._maybeHiddenOrFastRefresh = false;\n      this.setState(function (prevState) {\n        var newState = resetQueryStateForUpdate(_this2.props, prevState);\n        var requestCacheKey = newState.requestCacheKey,\n          queryFetcher = newState.queryFetcher;\n        if (requestCacheKey != null && requestCache[requestCacheKey] != null) {\n          queryFetcher.setOnDataChange(_this2._handleDataChange);\n        }\n        return newState;\n      });\n      return;\n    }\n    var _this$state = this.state,\n      retryCallbacks = _this$state.retryCallbacks,\n      queryFetcher = _this$state.queryFetcher,\n      requestCacheKey = _this$state.requestCacheKey;\n    if (requestCacheKey) {\n      delete requestCache[requestCacheKey];\n    }\n    retryCallbacks.handleDataChange = this._handleDataChange;\n    retryCallbacks.handleRetryAfterError = function (error) {\n      return _this2.setState(function (prevState) {\n        var prevRequestCacheKey = prevState.requestCacheKey;\n        if (prevRequestCacheKey) {\n          delete requestCache[prevRequestCacheKey];\n        }\n        return {\n          renderProps: getLoadingRenderProps(),\n          requestCacheKey: null\n        };\n      });\n    };\n    if (this.props.query) {\n      queryFetcher.setOnDataChange(this._handleDataChange);\n    }\n  };\n  _proto.componentDidUpdate = function componentDidUpdate(_prevProps, prevState) {\n    var _this$state2 = this.state,\n      queryFetcher = _this$state2.queryFetcher,\n      requestCacheKey = _this$state2.requestCacheKey;\n    if (requestCacheKey) {\n      delete requestCache[requestCacheKey];\n      delete this.state.requestCacheKey;\n    }\n    if (this.props.query && queryFetcher !== prevState.queryFetcher) {\n      queryFetcher.setOnDataChange(this._handleDataChange);\n    }\n  };\n  _proto.componentWillUnmount = function componentWillUnmount() {\n    this.state.queryFetcher.dispose();\n    this._maybeHiddenOrFastRefresh = true;\n  };\n  _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState) {\n    return nextProps.render !== this.props.render || nextState.renderProps !== this.state.renderProps;\n  };\n  _proto.render = function render() {\n    var _this$state3 = this.state,\n      renderProps = _this$state3.renderProps,\n      relayContext = _this$state3.relayContext;\n    if (process.env.NODE_ENV !== \"production\") {\n      deepFreeze(renderProps);\n    }\n    return /*#__PURE__*/React.createElement(ReactRelayContext.Provider, {\n      value: relayContext\n    }, /*#__PURE__*/React.createElement(ReactRelayQueryRendererContext.Provider, {\n      value: queryRendererContext\n    }, this.props.render(renderProps)));\n  };\n  return ReactRelayQueryRenderer;\n}(React.Component);\nfunction getLoadingRenderProps() {\n  return {\n    error: null,\n    props: null,\n    retry: null\n  };\n}\nfunction getEmptyRenderProps() {\n  return {\n    error: null,\n    props: {},\n    retry: null\n  };\n}\nfunction getRenderProps(error, snapshot, queryFetcher, retryCallbacks) {\n  return {\n    error: error ? error : null,\n    props: snapshot ? snapshot.data : null,\n    retry: function retry(cacheConfigOverride) {\n      var syncSnapshot = queryFetcher.retry(cacheConfigOverride);\n      if (syncSnapshot && typeof retryCallbacks.handleDataChange === 'function') {\n        retryCallbacks.handleDataChange({\n          snapshot: syncSnapshot\n        });\n      } else if (error && typeof retryCallbacks.handleRetryAfterError === 'function') {\n        retryCallbacks.handleRetryAfterError(error);\n      }\n    }\n  };\n}\nfunction getRequestCacheKey(request, variables) {\n  return JSON.stringify({\n    id: request.cacheID ? request.cacheID : request.id,\n    variables: variables\n  });\n}\nfunction resetQueryStateForUpdate(props, prevState) {\n  var query = props.query;\n  var prevSelectionReferences = prevState.queryFetcher.getSelectionReferences();\n  prevState.queryFetcher.disposeRequest();\n  var queryFetcher;\n  if (query) {\n    var request = getRequest(query);\n    var requestCacheKey = getRequestCacheKey(request.params, props.variables);\n    queryFetcher = requestCache[requestCacheKey] ? requestCache[requestCacheKey].queryFetcher : new ReactRelayQueryFetcher(prevSelectionReferences);\n  } else {\n    queryFetcher = new ReactRelayQueryFetcher(prevSelectionReferences);\n  }\n  return (0, _objectSpread2[\"default\"])({\n    prevQuery: props.query,\n    prevPropsEnvironment: props.environment,\n    prevPropsVariables: props.variables,\n    queryFetcher: queryFetcher\n  }, fetchQueryAndComputeStateFromProps(props, queryFetcher, prevState.retryCallbacks));\n}\nfunction fetchQueryAndComputeStateFromProps(props, queryFetcher, retryCallbacks, requestCacheKey) {\n  var environment = props.environment,\n    query = props.query,\n    variables = props.variables,\n    cacheConfig = props.cacheConfig;\n  var genericEnvironment = environment;\n  if (query) {\n    var request = getRequest(query);\n    var operation = createOperationDescriptor(request, variables, cacheConfig);\n    var relayContext = {\n      environment: genericEnvironment\n    };\n    if (typeof requestCacheKey === 'string' && requestCache[requestCacheKey]) {\n      var snapshot = requestCache[requestCacheKey].snapshot;\n      if (snapshot) {\n        return {\n          error: null,\n          relayContext: relayContext,\n          renderProps: getRenderProps(null, snapshot, queryFetcher, retryCallbacks),\n          snapshot: snapshot,\n          requestCacheKey: requestCacheKey\n        };\n      } else {\n        return {\n          error: null,\n          relayContext: relayContext,\n          renderProps: getLoadingRenderProps(),\n          snapshot: null,\n          requestCacheKey: requestCacheKey\n        };\n      }\n    }\n    try {\n      var storeSnapshot = queryFetcher.lookupInStore(genericEnvironment, operation, props.fetchPolicy);\n      var querySnapshot = queryFetcher.fetch({\n        environment: genericEnvironment,\n        onDataChange: null,\n        operation: operation\n      });\n      var _snapshot = querySnapshot || storeSnapshot;\n      requestCacheKey = requestCacheKey || getRequestCacheKey(request.params, props.variables);\n      requestCache[requestCacheKey] = {\n        queryFetcher: queryFetcher,\n        snapshot: _snapshot\n      };\n      if (!_snapshot) {\n        return {\n          error: null,\n          relayContext: relayContext,\n          renderProps: getLoadingRenderProps(),\n          snapshot: null,\n          requestCacheKey: requestCacheKey\n        };\n      }\n      return {\n        error: null,\n        relayContext: relayContext,\n        renderProps: getRenderProps(null, _snapshot, queryFetcher, retryCallbacks),\n        snapshot: _snapshot,\n        requestCacheKey: requestCacheKey\n      };\n    } catch (error) {\n      return {\n        error: error,\n        relayContext: relayContext,\n        renderProps: getRenderProps(error, null, queryFetcher, retryCallbacks),\n        snapshot: null,\n        requestCacheKey: requestCacheKey\n      };\n    }\n  } else {\n    queryFetcher.dispose();\n    var _relayContext = {\n      environment: genericEnvironment\n    };\n    return {\n      error: null,\n      relayContext: _relayContext,\n      renderProps: getEmptyRenderProps(),\n      requestCacheKey: null\n    };\n  }\n}\nmodule.exports = ReactRelayQueryRenderer;","'use strict';\n\nvar React = require('react');\nmodule.exports = React.createContext({\n  rootIsQueryRenderer: false\n});","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _excluded = [\"componentRef\", \"__relayContext\", \"__rootIsQueryRenderer\"];\nvar buildReactRelayContainer = require('./buildReactRelayContainer');\nvar getRootVariablesForFragments = require('./getRootVariablesForFragments');\nvar _require = require('./ReactRelayContainerUtils'),\n  getContainerName = _require.getContainerName;\nvar ReactRelayContext = require('./ReactRelayContext');\nvar ReactRelayQueryFetcher = require('./ReactRelayQueryFetcher');\nvar _require2 = require('./RelayContext'),\n  assertRelayContext = _require2.assertRelayContext;\nvar areEqual = require(\"fbjs/lib/areEqual\");\nvar React = require('react');\nvar _require3 = require('relay-runtime'),\n  Observable = _require3.Observable,\n  createFragmentSpecResolver = _require3.createFragmentSpecResolver,\n  createOperationDescriptor = _require3.createOperationDescriptor,\n  getDataIDsFromObject = _require3.getDataIDsFromObject,\n  getRequest = _require3.getRequest,\n  getVariablesFromObject = _require3.getVariablesFromObject,\n  isScalarAndEqual = _require3.isScalarAndEqual;\nvar warning = require(\"fbjs/lib/warning\");\nfunction createContainerWithFragments(Component, fragments, taggedNode) {\n  var _class;\n  var containerName = getContainerName(Component);\n  return _class = /*#__PURE__*/function (_React$Component) {\n    (0, _inheritsLoose2[\"default\"])(_class, _React$Component);\n    function _class(props) {\n      var _props$__rootIsQueryR, _this;\n      _this = _React$Component.call(this, props) || this;\n      (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_handleFragmentDataUpdate\", function () {\n        var resolverFromThisUpdate = _this.state.resolver;\n        _this.setState(function (updatedState) {\n          return resolverFromThisUpdate === updatedState.resolver ? {\n            data: updatedState.resolver.resolve()\n          } : null;\n        });\n      });\n      (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_refetch\", function (refetchVariables, renderVariables, observerOrCallback, options) {\n        if (_this._isUnmounted) {\n          process.env.NODE_ENV !== \"production\" ? warning(false, 'ReactRelayRefetchContainer: Unexpected call of `refetch` ' + 'on unmounted container `%s`. It looks like some instances ' + 'of your container still trying to refetch the data but they already ' + 'unmounted. Please make sure you clear all timers, intervals, async ' + 'calls, etc that may trigger `refetch`.', containerName) : void 0;\n          return {\n            dispose: function dispose() {}\n          };\n        }\n        var _assertRelayContext = assertRelayContext(_this.props.__relayContext),\n          environment = _assertRelayContext.environment;\n        var rootVariables = getRootVariablesForFragments(fragments, _this.props);\n        var fetchVariables = typeof refetchVariables === 'function' ? refetchVariables(_this._getFragmentVariables()) : refetchVariables;\n        fetchVariables = (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, rootVariables), fetchVariables);\n        var fragmentVariables = renderVariables ? (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, fetchVariables), renderVariables) : fetchVariables;\n        var cacheConfig = options ? {\n          force: !!options.force\n        } : undefined;\n        if (cacheConfig != null && (options === null || options === void 0 ? void 0 : options.metadata) != null) {\n          cacheConfig.metadata = options === null || options === void 0 ? void 0 : options.metadata;\n        }\n        var observer = typeof observerOrCallback === 'function' ? {\n          next: observerOrCallback,\n          error: observerOrCallback\n        } : observerOrCallback || {};\n        var query = getRequest(taggedNode);\n        var operation = createOperationDescriptor(query, fetchVariables, cacheConfig);\n        _this.state.localVariables = fetchVariables;\n        _this._refetchSubscription && _this._refetchSubscription.unsubscribe();\n        var refetchSubscription;\n        var storeSnapshot = _this._getQueryFetcher().lookupInStore(environment, operation, options === null || options === void 0 ? void 0 : options.fetchPolicy);\n        if (storeSnapshot != null) {\n          _this.state.resolver.setVariables(fragmentVariables, operation.request.node);\n          _this.setState(function (latestState) {\n            return {\n              data: latestState.resolver.resolve(),\n              contextForChildren: {\n                environment: _this.props.__relayContext.environment\n              }\n            };\n          }, function () {\n            observer.next && observer.next();\n            observer.complete && observer.complete();\n          });\n          return {\n            dispose: function dispose() {}\n          };\n        }\n        _this._getQueryFetcher().execute({\n          environment: environment,\n          operation: operation,\n          preservePreviousReferences: true\n        }).mergeMap(function (response) {\n          _this.state.resolver.setVariables(fragmentVariables, operation.request.node);\n          return Observable.create(function (sink) {\n            return _this.setState(function (latestState) {\n              return {\n                data: latestState.resolver.resolve(),\n                contextForChildren: {\n                  environment: _this.props.__relayContext.environment\n                }\n              };\n            }, function () {\n              sink.next();\n              sink.complete();\n            });\n          });\n        })[\"finally\"](function () {\n          if (_this._refetchSubscription === refetchSubscription) {\n            _this._refetchSubscription = null;\n          }\n        }).subscribe((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, observer), {}, {\n          start: function start(subscription) {\n            _this._refetchSubscription = refetchSubscription = subscription;\n            observer.start && observer.start(subscription);\n          }\n        }));\n        return {\n          dispose: function dispose() {\n            refetchSubscription && refetchSubscription.unsubscribe();\n          }\n        };\n      });\n      var relayContext = assertRelayContext(props.__relayContext);\n      var rootIsQueryRenderer = (_props$__rootIsQueryR = props.__rootIsQueryRenderer) !== null && _props$__rootIsQueryR !== void 0 ? _props$__rootIsQueryR : false;\n      _this._refetchSubscription = null;\n      var resolver = createFragmentSpecResolver(relayContext, containerName, fragments, props, rootIsQueryRenderer);\n      _this.state = {\n        data: resolver.resolve(),\n        localVariables: null,\n        prevProps: props,\n        prevPropsContext: relayContext,\n        contextForChildren: relayContext,\n        relayProp: getRelayProp(relayContext.environment, _this._refetch),\n        resolver: resolver\n      };\n      _this._isUnmounted = false;\n      return _this;\n    }\n    var _proto = _class.prototype;\n    _proto.componentDidMount = function componentDidMount() {\n      this._isUnmounted = false;\n      this._subscribeToNewResolverAndRerenderIfStoreHasChanged();\n    };\n    _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n      if (this.state.resolver !== prevState.resolver) {\n        prevState.resolver.dispose();\n        this._queryFetcher && this._queryFetcher.dispose();\n        this._refetchSubscription && this._refetchSubscription.unsubscribe();\n        this._subscribeToNewResolverAndRerenderIfStoreHasChanged();\n      } else {\n        this._rerenderIfStoreHasChanged();\n      }\n    };\n    _class.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n      var _nextProps$__rootIsQu;\n      var prevProps = prevState.prevProps;\n      var relayContext = assertRelayContext(nextProps.__relayContext);\n      var rootIsQueryRenderer = (_nextProps$__rootIsQu = nextProps.__rootIsQueryRenderer) !== null && _nextProps$__rootIsQu !== void 0 ? _nextProps$__rootIsQu : false;\n      var prevIDs = getDataIDsFromObject(fragments, prevProps);\n      var nextIDs = getDataIDsFromObject(fragments, nextProps);\n      var prevRootVariables = getRootVariablesForFragments(fragments, prevProps);\n      var nextRootVariables = getRootVariablesForFragments(fragments, nextProps);\n      var resolver = prevState.resolver;\n      if (prevState.prevPropsContext.environment !== relayContext.environment || !areEqual(prevRootVariables, nextRootVariables) || !areEqual(prevIDs, nextIDs)) {\n        resolver = createFragmentSpecResolver(relayContext, containerName, fragments, nextProps, rootIsQueryRenderer);\n        return {\n          data: resolver.resolve(),\n          localVariables: null,\n          prevProps: nextProps,\n          prevPropsContext: relayContext,\n          contextForChildren: relayContext,\n          relayProp: getRelayProp(relayContext.environment, prevState.relayProp.refetch),\n          resolver: resolver\n        };\n      } else if (!prevState.localVariables) {\n        resolver.setProps(nextProps);\n      }\n      var data = resolver.resolve();\n      if (data !== prevState.data) {\n        return {\n          data: data,\n          prevProps: nextProps\n        };\n      }\n      return null;\n    };\n    _proto.componentWillUnmount = function componentWillUnmount() {\n      this._isUnmounted = true;\n      this.state.resolver.dispose();\n      this._queryFetcher && this._queryFetcher.dispose();\n      this._refetchSubscription && this._refetchSubscription.unsubscribe();\n    };\n    _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState) {\n      if (nextState.data !== this.state.data || nextState.relayProp !== this.state.relayProp) {\n        return true;\n      }\n      var keys = Object.keys(nextProps);\n      for (var ii = 0; ii < keys.length; ii++) {\n        var key = keys[ii];\n        if (key === '__relayContext') {\n          if (this.state.prevPropsContext.environment !== nextState.prevPropsContext.environment) {\n            return true;\n          }\n        } else {\n          if (!fragments.hasOwnProperty(key) && !isScalarAndEqual(nextProps[key], this.props[key])) {\n            return true;\n          }\n        }\n      }\n      return false;\n    };\n    _proto._rerenderIfStoreHasChanged = function _rerenderIfStoreHasChanged() {\n      var _this$state = this.state,\n        data = _this$state.data,\n        resolver = _this$state.resolver;\n      var maybeNewData = resolver.resolve();\n      if (data !== maybeNewData) {\n        this.setState({\n          data: maybeNewData\n        });\n      }\n    };\n    _proto._subscribeToNewResolverAndRerenderIfStoreHasChanged = function _subscribeToNewResolverAndRerenderIfStoreHasChanged() {\n      var _this$state2 = this.state,\n        data = _this$state2.data,\n        resolver = _this$state2.resolver;\n      var maybeNewData = resolver.resolve();\n      resolver.setCallback(this.props, this._handleFragmentDataUpdate);\n      if (data !== maybeNewData) {\n        this.setState({\n          data: maybeNewData\n        });\n      }\n    };\n    _proto._getFragmentVariables = function _getFragmentVariables() {\n      return getVariablesFromObject(fragments, this.props);\n    };\n    _proto._getQueryFetcher = function _getQueryFetcher() {\n      if (!this._queryFetcher) {\n        this._queryFetcher = new ReactRelayQueryFetcher();\n      }\n      return this._queryFetcher;\n    };\n    _proto.render = function render() {\n      var _this$props = this.props,\n        componentRef = _this$props.componentRef,\n        __relayContext = _this$props.__relayContext,\n        __rootIsQueryRenderer = _this$props.__rootIsQueryRenderer,\n        props = (0, _objectWithoutPropertiesLoose2[\"default\"])(_this$props, _excluded);\n      var _this$state3 = this.state,\n        relayProp = _this$state3.relayProp,\n        contextForChildren = _this$state3.contextForChildren;\n      return /*#__PURE__*/React.createElement(ReactRelayContext.Provider, {\n        value: contextForChildren\n      }, /*#__PURE__*/React.createElement(Component, (0, _extends2[\"default\"])({}, props, this.state.data, {\n        ref: componentRef,\n        relay: relayProp\n      })));\n    };\n    return _class;\n  }(React.Component), (0, _defineProperty2[\"default\"])(_class, \"displayName\", containerName), _class;\n}\nfunction getRelayProp(environment, refetch) {\n  return {\n    environment: environment,\n    refetch: refetch\n  };\n}\nfunction createContainer(Component, fragmentSpec, taggedNode) {\n  return buildReactRelayContainer(Component, fragmentSpec, function (ComponentClass, fragments) {\n    return createContainerWithFragments(ComponentClass, fragments, taggedNode);\n  });\n}\nmodule.exports = {\n  createContainer: createContainer\n};","'use strict';\n\nvar isRelayEnvironment = require('./isRelayEnvironment');\nvar invariant = require('invariant');\nfunction assertRelayContext(relay) {\n  !isRelayContext(relay) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayContext: Expected `context.relay` to be an object conforming to ' + 'the `RelayContext` interface, got `%s`.', relay) : invariant(false) : void 0;\n  return relay;\n}\nfunction isRelayContext(context) {\n  return typeof context === 'object' && context !== null && !Array.isArray(context) && isRelayEnvironment(context.environment);\n}\nmodule.exports = {\n  assertRelayContext: assertRelayContext,\n  isRelayContext: isRelayContext\n};","'use strict';\n\nvar invariant = require('invariant');\nfunction assertFragmentMap(componentName, fragmentSpec) {\n  !(fragmentSpec && typeof fragmentSpec === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not create Relay Container for `%s`. ' + 'Expected a set of GraphQL fragments, got `%s` instead.', componentName, fragmentSpec) : invariant(false) : void 0;\n  for (var key in fragmentSpec) {\n    if (fragmentSpec.hasOwnProperty(key)) {\n      var fragment = fragmentSpec[key];\n      !(fragment && (typeof fragment === 'object' || typeof fragment === 'function')) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not create Relay Container for `%s`. ' + 'The value of fragment `%s` was expected to be a fragment, got `%s` instead.', componentName, key, fragment) : invariant(false) : void 0;\n    }\n  }\n}\nmodule.exports = assertFragmentMap;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar assertFragmentMap = require('./assertFragmentMap');\nvar _require = require('./ReactRelayContainerUtils'),\n  getComponentName = _require.getComponentName,\n  getContainerName = _require.getContainerName;\nvar ReactRelayContext = require('./ReactRelayContext');\nvar ReactRelayQueryRendererContext = require('./ReactRelayQueryRendererContext');\nvar invariant = require('invariant');\nvar React = require('react');\nvar _require2 = require('relay-runtime'),\n  getFragment = _require2.getFragment;\nvar useContext = React.useContext;\nfunction buildReactRelayContainer(ComponentClass, fragmentSpec, createContainerWithFragments) {\n  var containerName = getContainerName(ComponentClass);\n  assertFragmentMap(getComponentName(ComponentClass), fragmentSpec);\n  var fragments = {};\n  for (var key in fragmentSpec) {\n    fragments[key] = getFragment(fragmentSpec[key]);\n  }\n  var Container = createContainerWithFragments(ComponentClass, fragments);\n  Container.displayName = containerName;\n  function forwardRef(props, ref) {\n    var _queryRendererContext;\n    var context = useContext(ReactRelayContext);\n    !(context != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, '`%s` tried to render a context that was not valid this means that ' + '`%s` was rendered outside of a query renderer.', containerName, containerName) : invariant(false) : void 0;\n    var queryRendererContext = useContext(ReactRelayQueryRendererContext);\n    return /*#__PURE__*/React.createElement(Container, (0, _extends2[\"default\"])({}, props, {\n      __relayContext: context,\n      __rootIsQueryRenderer: (_queryRendererContext = queryRendererContext === null || queryRendererContext === void 0 ? void 0 : queryRendererContext.rootIsQueryRenderer) !== null && _queryRendererContext !== void 0 ? _queryRendererContext : false,\n      componentRef: props.componentRef || ref\n    }));\n  }\n  forwardRef.displayName = containerName;\n  var ForwardContainer = React.forwardRef(forwardRef);\n  if (process.env.NODE_ENV !== \"production\") {\n    ForwardContainer.__ComponentClass = ComponentClass;\n    ForwardContainer.displayName = containerName;\n  }\n  return ForwardContainer;\n}\nmodule.exports = buildReactRelayContainer;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _require = require('relay-runtime'),\n  getSelector = _require.getSelector;\nfunction getRootVariablesForFragments(fragments, props) {\n  var rootVariables = {};\n  Object.keys(fragments).forEach(function (key) {\n    var _selector$selectors$, _selector$selectors$2, _selector$owner$varia;\n    var fragmentNode = fragments[key];\n    var fragmentRef = props[key];\n    var selector = getSelector(fragmentNode, fragmentRef);\n    var fragmentOwnerVariables = selector != null && selector.kind === 'PluralReaderSelector' ? (_selector$selectors$ = (_selector$selectors$2 = selector.selectors[0]) === null || _selector$selectors$2 === void 0 ? void 0 : _selector$selectors$2.owner.variables) !== null && _selector$selectors$ !== void 0 ? _selector$selectors$ : {} : (_selector$owner$varia = selector === null || selector === void 0 ? void 0 : selector.owner.variables) !== null && _selector$owner$varia !== void 0 ? _selector$owner$varia : {};\n    rootVariables = (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, rootVariables), fragmentOwnerVariables);\n  });\n  return rootVariables;\n}\nmodule.exports = getRootVariablesForFragments;","'use strict';\n\nvar EntryPointContainer = require('./relay-hooks/EntryPointContainer.react');\nvar loadEntryPoint = require('./relay-hooks/loadEntryPoint');\nvar _require = require('./relay-hooks/loadQuery'),\n  loadQuery = _require.loadQuery;\nvar ProfilerContext = require('./relay-hooks/ProfilerContext');\nvar RelayEnvironmentProvider = require('./relay-hooks/RelayEnvironmentProvider');\nvar useEntryPointLoader = require('./relay-hooks/useEntryPointLoader');\nvar useFragment = require('./relay-hooks/useFragment');\nvar useLazyLoadQuery = require('./relay-hooks/useLazyLoadQuery');\nvar useMutation = require('./relay-hooks/useMutation');\nvar usePaginationFragment = require('./relay-hooks/usePaginationFragment');\nvar usePreloadedQuery = require('./relay-hooks/usePreloadedQuery');\nvar useQueryLoader = require('./relay-hooks/useQueryLoader');\nvar useRefetchableFragment = require('./relay-hooks/useRefetchableFragment');\nvar useRelayEnvironment = require('./relay-hooks/useRelayEnvironment');\nvar useSubscribeToInvalidationState = require('./relay-hooks/useSubscribeToInvalidationState');\nvar useSubscription = require('./relay-hooks/useSubscription');\nvar RelayRuntime = require('relay-runtime');\nmodule.exports = {\n  ConnectionHandler: RelayRuntime.ConnectionHandler,\n  applyOptimisticMutation: RelayRuntime.applyOptimisticMutation,\n  commitLocalUpdate: RelayRuntime.commitLocalUpdate,\n  commitMutation: RelayRuntime.commitMutation,\n  graphql: RelayRuntime.graphql,\n  readInlineData: RelayRuntime.readInlineData,\n  requestSubscription: RelayRuntime.requestSubscription,\n  EntryPointContainer: EntryPointContainer,\n  RelayEnvironmentProvider: RelayEnvironmentProvider,\n  ProfilerContext: ProfilerContext,\n  fetchQuery: RelayRuntime.fetchQuery,\n  loadQuery: loadQuery,\n  loadEntryPoint: loadEntryPoint,\n  useFragment: useFragment,\n  useLazyLoadQuery: useLazyLoadQuery,\n  useEntryPointLoader: useEntryPointLoader,\n  useQueryLoader: useQueryLoader,\n  useMutation: useMutation,\n  usePaginationFragment: usePaginationFragment,\n  usePreloadedQuery: usePreloadedQuery,\n  useRefetchableFragment: useRefetchableFragment,\n  useRelayEnvironment: useRelayEnvironment,\n  useSubscribeToInvalidationState: useSubscribeToInvalidationState,\n  useSubscription: useSubscription\n};","'use strict';\n\nvar ReactRelayContext = require('./ReactRelayContext');\nvar ReactRelayFragmentContainer = require('./ReactRelayFragmentContainer');\nvar ReactRelayLocalQueryRenderer = require('./ReactRelayLocalQueryRenderer');\nvar ReactRelayPaginationContainer = require('./ReactRelayPaginationContainer');\nvar ReactRelayQueryRenderer = require('./ReactRelayQueryRenderer');\nvar ReactRelayRefetchContainer = require('./ReactRelayRefetchContainer');\nvar EntryPointContainer = require('./relay-hooks/EntryPointContainer.react');\nvar loadEntryPoint = require('./relay-hooks/loadEntryPoint');\nvar _require = require('./relay-hooks/loadQuery'),\n  loadQuery = _require.loadQuery;\nvar ProfilerContext = require('./relay-hooks/ProfilerContext');\nvar RelayEnvironmentProvider = require('./relay-hooks/RelayEnvironmentProvider');\nvar useClientQuery = require('./relay-hooks/useClientQuery');\nvar useEntryPointLoader = require('./relay-hooks/useEntryPointLoader');\nvar useFragment = require('./relay-hooks/useFragment');\nvar useLazyLoadQuery = require('./relay-hooks/useLazyLoadQuery');\nvar useMutation = require('./relay-hooks/useMutation');\nvar usePaginationFragment = require('./relay-hooks/usePaginationFragment');\nvar usePreloadedQuery = require('./relay-hooks/usePreloadedQuery');\nvar useQueryLoader = require('./relay-hooks/useQueryLoader');\nvar useRefetchableFragment = require('./relay-hooks/useRefetchableFragment');\nvar useRelayEnvironment = require('./relay-hooks/useRelayEnvironment');\nvar useSubscribeToInvalidationState = require('./relay-hooks/useSubscribeToInvalidationState');\nvar useSubscription = require('./relay-hooks/useSubscription');\nvar RelayRuntime = require('relay-runtime');\nmodule.exports = {\n  ConnectionHandler: RelayRuntime.ConnectionHandler,\n  QueryRenderer: ReactRelayQueryRenderer,\n  LocalQueryRenderer: ReactRelayLocalQueryRenderer,\n  MutationTypes: RelayRuntime.MutationTypes,\n  RangeOperations: RelayRuntime.RangeOperations,\n  ReactRelayContext: ReactRelayContext,\n  applyOptimisticMutation: RelayRuntime.applyOptimisticMutation,\n  commitLocalUpdate: RelayRuntime.commitLocalUpdate,\n  commitMutation: RelayRuntime.commitMutation,\n  createFragmentContainer: ReactRelayFragmentContainer.createContainer,\n  createPaginationContainer: ReactRelayPaginationContainer.createContainer,\n  createRefetchContainer: ReactRelayRefetchContainer.createContainer,\n  fetchQuery_DEPRECATED: RelayRuntime.fetchQuery_DEPRECATED,\n  graphql: RelayRuntime.graphql,\n  readInlineData: RelayRuntime.readInlineData,\n  requestSubscription: RelayRuntime.requestSubscription,\n  EntryPointContainer: EntryPointContainer,\n  RelayEnvironmentProvider: RelayEnvironmentProvider,\n  ProfilerContext: ProfilerContext,\n  fetchQuery: RelayRuntime.fetchQuery,\n  loadQuery: loadQuery,\n  loadEntryPoint: loadEntryPoint,\n  useClientQuery: useClientQuery,\n  useFragment: useFragment,\n  useLazyLoadQuery: useLazyLoadQuery,\n  useEntryPointLoader: useEntryPointLoader,\n  useQueryLoader: useQueryLoader,\n  useMutation: useMutation,\n  usePaginationFragment: usePaginationFragment,\n  usePreloadedQuery: usePreloadedQuery,\n  useRefetchableFragment: useRefetchableFragment,\n  useRelayEnvironment: useRelayEnvironment,\n  useSubscribeToInvalidationState: useSubscribeToInvalidationState,\n  useSubscription: useSubscription\n};","'use strict';\n\nfunction isRelayEnvironment(environment) {\n  return typeof environment === 'object' && environment !== null && typeof environment.check === 'function' && typeof environment.lookup === 'function' && typeof environment.retain === 'function' && typeof environment.execute === 'function' && typeof environment.subscribe === 'function';\n}\nmodule.exports = isRelayEnvironment;","'use strict';\n\nvar ProfilerContext = require('./ProfilerContext');\nvar useRelayEnvironment = require('./useRelayEnvironment');\nvar React = require('react');\nvar _require = require('react'),\n  useContext = _require.useContext,\n  useEffect = _require.useEffect;\nvar warning = require(\"fbjs/lib/warning\");\nfunction EntryPointContainer(_ref) {\n  var entryPointReference = _ref.entryPointReference,\n    props = _ref.props;\n  process.env.NODE_ENV !== \"production\" ? warning(entryPointReference.isDisposed === false, '<EntryPointContainer>: Expected entryPointReference to not be disposed ' + 'yet. This is because disposing the entrypoint marks it for future garbage ' + 'collection, and as such may no longer be present in the Relay store. ' + 'In the future, this will become a hard error.') : void 0;\n  var getComponent = entryPointReference.getComponent,\n    queries = entryPointReference.queries,\n    entryPoints = entryPointReference.entryPoints,\n    extraProps = entryPointReference.extraProps,\n    rootModuleID = entryPointReference.rootModuleID;\n  var Component = getComponent();\n  var profilerContext = useContext(ProfilerContext);\n  var environment = useRelayEnvironment();\n  useEffect(function () {\n    environment.__log({\n      name: 'entrypoint.root.consume',\n      profilerContext: profilerContext,\n      rootModuleID: rootModuleID\n    });\n  }, [environment, profilerContext, rootModuleID]);\n  return /*#__PURE__*/React.createElement(Component, {\n    entryPoints: entryPoints,\n    extraProps: extraProps,\n    props: props,\n    queries: queries\n  });\n}\nmodule.exports = EntryPointContainer;","'use strict';\n\nvar warning = require(\"fbjs/lib/warning\");\nvar implementation = null;\nfunction inject(impl) {\n  process.env.NODE_ENV !== \"production\" ? warning(implementation === null, 'Relay HooksImplementation was injected twice.') : void 0;\n  implementation = impl;\n}\nfunction get() {\n  return implementation;\n}\nmodule.exports = {\n  inject: inject,\n  get: get\n};","'use strict';\n\nvar invariant = require('invariant');\nvar LRUCache = /*#__PURE__*/function () {\n  function LRUCache(capacity) {\n    this._capacity = capacity;\n    !(this._capacity > 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'LRUCache: Unable to create instance of cache with zero or negative capacity.') : invariant(false) : void 0;\n    this._map = new Map();\n  }\n  var _proto = LRUCache.prototype;\n  _proto.set = function set(key, value) {\n    this._map[\"delete\"](key);\n    this._map.set(key, value);\n    if (this._map.size > this._capacity) {\n      var firstKey = this._map.keys().next();\n      if (!firstKey.done) {\n        this._map[\"delete\"](firstKey.value);\n      }\n    }\n  };\n  _proto.get = function get(key) {\n    var value = this._map.get(key);\n    if (value != null) {\n      this._map[\"delete\"](key);\n      this._map.set(key, value);\n    }\n    return value;\n  };\n  _proto.has = function has(key) {\n    return this._map.has(key);\n  };\n  _proto[\"delete\"] = function _delete(key) {\n    this._map[\"delete\"](key);\n  };\n  _proto.size = function size() {\n    return this._map.size;\n  };\n  _proto.capacity = function capacity() {\n    return this._capacity - this._map.size;\n  };\n  _proto.clear = function clear() {\n    this._map.clear();\n  };\n  return LRUCache;\n}();\nfunction create(capacity) {\n  return new LRUCache(capacity);\n}\nmodule.exports = {\n  create: create\n};","'use strict';\n\nvar React = require('react');\nvar ProfilerContext = React.createContext({\n  wrapPrepareQueryResource: function wrapPrepareQueryResource(cb) {\n    return cb();\n  }\n});\nmodule.exports = ProfilerContext;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar LRUCache = require('./LRUCache');\nvar SuspenseResource = require('./SuspenseResource');\nvar invariant = require('invariant');\nvar _require = require('relay-runtime'),\n  isPromise = _require.isPromise;\nvar warning = require(\"fbjs/lib/warning\");\nvar CACHE_CAPACITY = 1000;\nvar DEFAULT_FETCH_POLICY = 'store-or-network';\nvar DEFAULT_LIVE_FETCH_POLICY = 'store-and-network';\nvar WEAKMAP_SUPPORTED = typeof WeakMap === 'function';\nfunction operationIsLiveQuery(operation) {\n  return operation.request.node.params.metadata.live !== undefined;\n}\nfunction getQueryCacheIdentifier(environment, operation, maybeFetchPolicy, maybeRenderPolicy, cacheBreaker) {\n  var fetchPolicy = maybeFetchPolicy !== null && maybeFetchPolicy !== void 0 ? maybeFetchPolicy : operationIsLiveQuery(operation) ? DEFAULT_LIVE_FETCH_POLICY : DEFAULT_FETCH_POLICY;\n  var renderPolicy = maybeRenderPolicy !== null && maybeRenderPolicy !== void 0 ? maybeRenderPolicy : environment.UNSTABLE_getDefaultRenderPolicy();\n  var cacheIdentifier = \"\".concat(fetchPolicy, \"-\").concat(renderPolicy, \"-\").concat(operation.request.identifier);\n  if (cacheBreaker != null) {\n    return \"\".concat(cacheIdentifier, \"-\").concat(cacheBreaker);\n  }\n  return cacheIdentifier;\n}\nfunction getQueryResult(operation, cacheIdentifier) {\n  var rootFragmentRef = {\n    __id: operation.fragment.dataID,\n    __fragments: (0, _defineProperty2[\"default\"])({}, operation.fragment.node.name, operation.request.variables),\n    __fragmentOwner: operation.request\n  };\n  return {\n    cacheIdentifier: cacheIdentifier,\n    fragmentNode: operation.request.node.fragment,\n    fragmentRef: rootFragmentRef,\n    operation: operation\n  };\n}\nvar nextID = 200000;\nfunction createCacheEntry(cacheIdentifier, operation, operationAvailability, value, networkSubscription, onDispose) {\n  var isLiveQuery = operationIsLiveQuery(operation);\n  var currentValue = value;\n  var currentNetworkSubscription = networkSubscription;\n  var suspenseResource = new SuspenseResource(function (environment) {\n    var retention = environment.retain(operation);\n    return {\n      dispose: function dispose() {\n        if (isLiveQuery && currentNetworkSubscription != null) {\n          currentNetworkSubscription.unsubscribe();\n        }\n        retention.dispose();\n        onDispose(cacheEntry);\n      }\n    };\n  });\n  var cacheEntry = {\n    cacheIdentifier: cacheIdentifier,\n    id: nextID++,\n    processedPayloadsCount: 0,\n    operationAvailability: operationAvailability,\n    getValue: function getValue() {\n      return currentValue;\n    },\n    setValue: function setValue(val) {\n      currentValue = val;\n    },\n    setNetworkSubscription: function setNetworkSubscription(subscription) {\n      if (isLiveQuery && currentNetworkSubscription != null) {\n        currentNetworkSubscription.unsubscribe();\n      }\n      currentNetworkSubscription = subscription;\n    },\n    temporaryRetain: function temporaryRetain(environment) {\n      return suspenseResource.temporaryRetain(environment);\n    },\n    permanentRetain: function permanentRetain(environment) {\n      return suspenseResource.permanentRetain(environment);\n    },\n    releaseTemporaryRetain: function releaseTemporaryRetain() {\n      suspenseResource.releaseTemporaryRetain();\n    }\n  };\n  return cacheEntry;\n}\nvar QueryResourceImpl = /*#__PURE__*/function () {\n  function QueryResourceImpl(environment) {\n    var _this = this;\n    (0, _defineProperty2[\"default\"])(this, \"_clearCacheEntry\", function (cacheEntry) {\n      _this._cache[\"delete\"](cacheEntry.cacheIdentifier);\n    });\n    this._environment = environment;\n    this._cache = LRUCache.create(CACHE_CAPACITY);\n  }\n  var _proto = QueryResourceImpl.prototype;\n  _proto.prepare = function prepare(operation, fetchObservable, maybeFetchPolicy, maybeRenderPolicy, observer, cacheBreaker, profilerContext) {\n    var cacheIdentifier = getQueryCacheIdentifier(this._environment, operation, maybeFetchPolicy, maybeRenderPolicy, cacheBreaker);\n    return this.prepareWithIdentifier(cacheIdentifier, operation, fetchObservable, maybeFetchPolicy, maybeRenderPolicy, observer, profilerContext);\n  };\n  _proto.prepareWithIdentifier = function prepareWithIdentifier(cacheIdentifier, operation, fetchObservable, maybeFetchPolicy, maybeRenderPolicy, observer, profilerContext) {\n    var environment = this._environment;\n    var fetchPolicy = maybeFetchPolicy !== null && maybeFetchPolicy !== void 0 ? maybeFetchPolicy : operationIsLiveQuery(operation) ? DEFAULT_LIVE_FETCH_POLICY : DEFAULT_FETCH_POLICY;\n    var renderPolicy = maybeRenderPolicy !== null && maybeRenderPolicy !== void 0 ? maybeRenderPolicy : environment.UNSTABLE_getDefaultRenderPolicy();\n    var cacheEntry = this._cache.get(cacheIdentifier);\n    var temporaryRetainDisposable = null;\n    var entryWasCached = cacheEntry != null;\n    if (cacheEntry == null) {\n      cacheEntry = this._fetchAndSaveQuery(cacheIdentifier, operation, fetchObservable, fetchPolicy, renderPolicy, profilerContext, (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, observer), {}, {\n        unsubscribe: function unsubscribe(subscription) {\n          if (temporaryRetainDisposable != null) {\n            temporaryRetainDisposable.dispose();\n          }\n          var observerUnsubscribe = observer === null || observer === void 0 ? void 0 : observer.unsubscribe;\n          observerUnsubscribe && observerUnsubscribe(subscription);\n        }\n      }));\n    }\n    temporaryRetainDisposable = cacheEntry.temporaryRetain(environment);\n    var cachedValue = cacheEntry.getValue();\n    if (isPromise(cachedValue)) {\n      environment.__log({\n        name: 'suspense.query',\n        fetchPolicy: fetchPolicy,\n        isPromiseCached: entryWasCached,\n        operation: operation,\n        queryAvailability: cacheEntry.operationAvailability,\n        renderPolicy: renderPolicy\n      });\n      throw cachedValue;\n    }\n    if (cachedValue instanceof Error) {\n      throw cachedValue;\n    }\n    return cachedValue;\n  };\n  _proto.retain = function retain(queryResult, profilerContext) {\n    var environment = this._environment;\n    var cacheIdentifier = queryResult.cacheIdentifier,\n      operation = queryResult.operation;\n    var cacheEntry = this._getOrCreateCacheEntry(cacheIdentifier, operation, null, queryResult, null);\n    var disposable = cacheEntry.permanentRetain(environment);\n    environment.__log({\n      name: 'queryresource.retain',\n      profilerContext: profilerContext,\n      resourceID: cacheEntry.id\n    });\n    return {\n      dispose: function dispose() {\n        disposable.dispose();\n      }\n    };\n  };\n  _proto.releaseTemporaryRetain = function releaseTemporaryRetain(queryResult) {\n    var cacheEntry = this._cache.get(queryResult.cacheIdentifier);\n    if (cacheEntry != null) {\n      cacheEntry.releaseTemporaryRetain();\n    }\n  };\n  _proto.TESTS_ONLY__getCacheEntry = function TESTS_ONLY__getCacheEntry(operation, maybeFetchPolicy, maybeRenderPolicy, cacheBreaker) {\n    var environment = this._environment;\n    var cacheIdentifier = getQueryCacheIdentifier(environment, operation, maybeFetchPolicy, maybeRenderPolicy, cacheBreaker);\n    return this._cache.get(cacheIdentifier);\n  };\n  _proto._getOrCreateCacheEntry = function _getOrCreateCacheEntry(cacheIdentifier, operation, operationAvailability, value, networkSubscription) {\n    var cacheEntry = this._cache.get(cacheIdentifier);\n    if (cacheEntry == null) {\n      cacheEntry = createCacheEntry(cacheIdentifier, operation, operationAvailability, value, networkSubscription, this._clearCacheEntry);\n      this._cache.set(cacheIdentifier, cacheEntry);\n    }\n    return cacheEntry;\n  };\n  _proto._fetchAndSaveQuery = function _fetchAndSaveQuery(cacheIdentifier, operation, fetchObservable, fetchPolicy, renderPolicy, profilerContext, observer) {\n    var _this2 = this;\n    var environment = this._environment;\n    var queryAvailability = environment.check(operation);\n    var queryStatus = queryAvailability.status;\n    var hasFullQuery = queryStatus === 'available';\n    var canPartialRender = hasFullQuery || renderPolicy === 'partial' && queryStatus !== 'stale';\n    var shouldFetch;\n    var shouldAllowRender;\n    var resolveNetworkPromise = function resolveNetworkPromise() {};\n    switch (fetchPolicy) {\n      case 'store-only':\n        {\n          shouldFetch = false;\n          shouldAllowRender = true;\n          break;\n        }\n      case 'store-or-network':\n        {\n          shouldFetch = !hasFullQuery;\n          shouldAllowRender = canPartialRender;\n          break;\n        }\n      case 'store-and-network':\n        {\n          shouldFetch = true;\n          shouldAllowRender = canPartialRender;\n          break;\n        }\n      case 'network-only':\n      default:\n        {\n          shouldFetch = true;\n          shouldAllowRender = false;\n          break;\n        }\n    }\n    if (shouldAllowRender) {\n      var queryResult = getQueryResult(operation, cacheIdentifier);\n      var _cacheEntry = createCacheEntry(cacheIdentifier, operation, queryAvailability, queryResult, null, this._clearCacheEntry);\n      this._cache.set(cacheIdentifier, _cacheEntry);\n    }\n    if (shouldFetch) {\n      var _queryResult = getQueryResult(operation, cacheIdentifier);\n      var networkSubscription;\n      fetchObservable.subscribe({\n        start: function start(subscription) {\n          networkSubscription = subscription;\n          var cacheEntry = _this2._cache.get(cacheIdentifier);\n          if (cacheEntry) {\n            cacheEntry.setNetworkSubscription(networkSubscription);\n          }\n          var observerStart = observer === null || observer === void 0 ? void 0 : observer.start;\n          if (observerStart) {\n            var subscriptionWithConditionalCancelation = (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, subscription), {}, {\n              unsubscribe: function unsubscribe() {\n                if (operationIsLiveQuery(operation)) {\n                  subscription.unsubscribe();\n                }\n              }\n            });\n            observerStart(subscriptionWithConditionalCancelation);\n          }\n        },\n        next: function next() {\n          var cacheEntry = _this2._getOrCreateCacheEntry(cacheIdentifier, operation, queryAvailability, _queryResult, networkSubscription);\n          cacheEntry.processedPayloadsCount += 1;\n          cacheEntry.setValue(_queryResult);\n          resolveNetworkPromise();\n          var observerNext = observer === null || observer === void 0 ? void 0 : observer.next;\n          if (observerNext != null) {\n            var snapshot = environment.lookup(operation.fragment);\n            observerNext(snapshot);\n          }\n        },\n        error: function error(_error) {\n          var cacheEntry = _this2._getOrCreateCacheEntry(cacheIdentifier, operation, queryAvailability, _error, networkSubscription);\n          if (cacheEntry.processedPayloadsCount === 0) {\n            cacheEntry.setValue(_error);\n          } else {\n            process.env.NODE_ENV !== \"production\" ? warning(false, 'QueryResource: An incremental payload for query `%s` returned an error: `%s`.', operation.fragment.node.name, String(_error.message)) : void 0;\n          }\n          resolveNetworkPromise();\n          networkSubscription = null;\n          cacheEntry.setNetworkSubscription(null);\n          var observerError = observer === null || observer === void 0 ? void 0 : observer.error;\n          observerError && observerError(_error);\n        },\n        complete: function complete() {\n          resolveNetworkPromise();\n          networkSubscription = null;\n          var cacheEntry = _this2._cache.get(cacheIdentifier);\n          if (cacheEntry) {\n            cacheEntry.setNetworkSubscription(null);\n          }\n          var observerComplete = observer === null || observer === void 0 ? void 0 : observer.complete;\n          observerComplete && observerComplete();\n        },\n        unsubscribe: observer === null || observer === void 0 ? void 0 : observer.unsubscribe\n      });\n      var _cacheEntry2 = this._cache.get(cacheIdentifier);\n      if (!_cacheEntry2) {\n        var networkPromise = new Promise(function (resolve) {\n          resolveNetworkPromise = resolve;\n        });\n        networkPromise.displayName = 'Relay(' + operation.fragment.node.name + ')';\n        _cacheEntry2 = createCacheEntry(cacheIdentifier, operation, queryAvailability, networkPromise, networkSubscription, this._clearCacheEntry);\n        this._cache.set(cacheIdentifier, _cacheEntry2);\n      }\n    } else {\n      var observerComplete = observer === null || observer === void 0 ? void 0 : observer.complete;\n      observerComplete && observerComplete();\n    }\n    var cacheEntry = this._cache.get(cacheIdentifier);\n    !(cacheEntry != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected to have cached a result when attempting to fetch query.' + \"If you're seeing this, this is likely a bug in Relay.\") : invariant(false) : void 0;\n    environment.__log({\n      name: 'queryresource.fetch',\n      resourceID: cacheEntry.id,\n      operation: operation,\n      profilerContext: profilerContext,\n      fetchPolicy: fetchPolicy,\n      renderPolicy: renderPolicy,\n      queryAvailability: queryAvailability,\n      shouldFetch: shouldFetch\n    });\n    return cacheEntry;\n  };\n  return QueryResourceImpl;\n}();\nfunction createQueryResource(environment) {\n  return new QueryResourceImpl(environment);\n}\nvar dataResources = WEAKMAP_SUPPORTED ? new WeakMap() : new Map();\nfunction getQueryResourceForEnvironment(environment) {\n  var cached = dataResources.get(environment);\n  if (cached) {\n    return cached;\n  }\n  var newDataResource = createQueryResource(environment);\n  dataResources.set(environment, newDataResource);\n  return newDataResource;\n}\nmodule.exports = {\n  createQueryResource: createQueryResource,\n  getQueryResourceForEnvironment: getQueryResourceForEnvironment,\n  getQueryCacheIdentifier: getQueryCacheIdentifier\n};","'use strict';\n\nvar ReactRelayContext = require('./../ReactRelayContext');\nvar React = require('react');\nvar useMemo = React.useMemo;\nfunction RelayEnvironmentProvider(props) {\n  var children = props.children,\n    environment = props.environment,\n    getEnvironmentForActor = props.getEnvironmentForActor;\n  var context = useMemo(function () {\n    return {\n      environment: environment,\n      getEnvironmentForActor: getEnvironmentForActor\n    };\n  }, [environment, getEnvironmentForActor]);\n  return /*#__PURE__*/React.createElement(ReactRelayContext.Provider, {\n    value: context\n  }, children);\n}\nmodule.exports = RelayEnvironmentProvider;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar warning = require(\"fbjs/lib/warning\");\nvar TEMPORARY_RETAIN_DURATION_MS = 5 * 60 * 1000;\nvar SuspenseResource = /*#__PURE__*/function () {\n  function SuspenseResource(retain) {\n    var _this = this;\n    (0, _defineProperty2[\"default\"])(this, \"_retainCount\", 0);\n    (0, _defineProperty2[\"default\"])(this, \"_retainDisposable\", null);\n    (0, _defineProperty2[\"default\"])(this, \"_releaseTemporaryRetain\", null);\n    this._retain = function (environment) {\n      _this._retainCount++;\n      if (_this._retainCount === 1) {\n        _this._retainDisposable = retain(environment);\n      }\n      return {\n        dispose: function dispose() {\n          _this._retainCount = Math.max(0, _this._retainCount - 1);\n          if (_this._retainCount === 0) {\n            if (_this._retainDisposable != null) {\n              _this._retainDisposable.dispose();\n              _this._retainDisposable = null;\n            } else {\n              process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Expected disposable to release query to be defined.' + \"If you're seeing this, this is likely a bug in Relay.\") : void 0;\n            }\n          }\n        }\n      };\n    };\n  }\n  var _proto = SuspenseResource.prototype;\n  _proto.temporaryRetain = function temporaryRetain(environment) {\n    var _this2 = this;\n    var _this$_releaseTempora;\n    if (environment.isServer()) {\n      return {\n        dispose: function dispose() {}\n      };\n    }\n    var retention = this._retain(environment);\n    var releaseQueryTimeout = null;\n    var releaseTemporaryRetain = function releaseTemporaryRetain() {\n      clearTimeout(releaseQueryTimeout);\n      releaseQueryTimeout = null;\n      _this2._releaseTemporaryRetain = null;\n      retention.dispose();\n    };\n    releaseQueryTimeout = setTimeout(releaseTemporaryRetain, TEMPORARY_RETAIN_DURATION_MS);\n    (_this$_releaseTempora = this._releaseTemporaryRetain) === null || _this$_releaseTempora === void 0 ? void 0 : _this$_releaseTempora.call(this);\n    this._releaseTemporaryRetain = releaseTemporaryRetain;\n    return {\n      dispose: function dispose() {\n        var _this$_releaseTempora2;\n        (_this$_releaseTempora2 = _this2._releaseTemporaryRetain) === null || _this$_releaseTempora2 === void 0 ? void 0 : _this$_releaseTempora2.call(_this2);\n      }\n    };\n  };\n  _proto.permanentRetain = function permanentRetain(environment) {\n    var disposable = this._retain(environment);\n    this.releaseTemporaryRetain();\n    return disposable;\n  };\n  _proto.releaseTemporaryRetain = function releaseTemporaryRetain() {\n    var _this$_releaseTempora3;\n    (_this$_releaseTempora3 = this._releaseTemporaryRetain) === null || _this$_releaseTempora3 === void 0 ? void 0 : _this$_releaseTempora3.call(this);\n    this._releaseTemporaryRetain = null;\n  };\n  _proto.getRetainCount = function getRetainCount() {\n    return this._retainCount;\n  };\n  return SuspenseResource;\n}();\nmodule.exports = SuspenseResource;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\nvar LRUCache = require('../LRUCache');\nvar _require = require('../QueryResource'),\n  getQueryResourceForEnvironment = _require.getQueryResourceForEnvironment;\nvar SuspenseResource = require('../SuspenseResource');\nvar invariant = require('invariant');\nvar _require2 = require('relay-runtime'),\n  _require2$__internal = _require2.__internal,\n  fetchQuery = _require2$__internal.fetchQuery,\n  getPromiseForActiveRequest = _require2$__internal.getPromiseForActiveRequest,\n  RelayFeatureFlags = _require2.RelayFeatureFlags,\n  createOperationDescriptor = _require2.createOperationDescriptor,\n  getFragmentIdentifier = _require2.getFragmentIdentifier,\n  getPendingOperationsForFragment = _require2.getPendingOperationsForFragment,\n  getSelector = _require2.getSelector,\n  getVariablesFromFragment = _require2.getVariablesFromFragment,\n  handlePotentialSnapshotErrors = _require2.handlePotentialSnapshotErrors,\n  isPromise = _require2.isPromise,\n  recycleNodesInto = _require2.recycleNodesInto;\nvar WEAKMAP_SUPPORTED = typeof WeakMap === 'function';\nvar CACHE_CAPACITY = 1000000;\nvar CONSTANT_READONLY_EMPTY_ARRAY = Object.freeze([]);\nfunction isMissingData(snapshot) {\n  if (Array.isArray(snapshot)) {\n    return snapshot.some(function (s) {\n      return s.isMissingData;\n    });\n  }\n  return snapshot.isMissingData;\n}\nfunction hasMissingClientEdges(snapshot) {\n  var _snapshot$missingClie, _snapshot$missingClie2;\n  if (Array.isArray(snapshot)) {\n    return snapshot.some(function (s) {\n      var _s$missingClientEdges, _s$missingClientEdges2;\n      return ((_s$missingClientEdges = (_s$missingClientEdges2 = s.missingClientEdges) === null || _s$missingClientEdges2 === void 0 ? void 0 : _s$missingClientEdges2.length) !== null && _s$missingClientEdges !== void 0 ? _s$missingClientEdges : 0) > 0;\n    });\n  }\n  return ((_snapshot$missingClie = (_snapshot$missingClie2 = snapshot.missingClientEdges) === null || _snapshot$missingClie2 === void 0 ? void 0 : _snapshot$missingClie2.length) !== null && _snapshot$missingClie !== void 0 ? _snapshot$missingClie : 0) > 0;\n}\nfunction missingLiveResolverFields(snapshot) {\n  if (Array.isArray(snapshot)) {\n    return snapshot.map(function (s) {\n      return s.missingLiveResolverFields;\n    }).filter(Boolean).flat();\n  }\n  return snapshot.missingLiveResolverFields;\n}\nfunction singularOrPluralForEach(snapshot, f) {\n  if (Array.isArray(snapshot)) {\n    snapshot.forEach(f);\n  } else {\n    f(snapshot);\n  }\n}\nfunction getFragmentResult(cacheKey, snapshot, storeEpoch) {\n  if (Array.isArray(snapshot)) {\n    return {\n      cacheKey: cacheKey,\n      snapshot: snapshot,\n      data: snapshot.map(function (s) {\n        return s.data;\n      }),\n      isMissingData: isMissingData(snapshot),\n      storeEpoch: storeEpoch\n    };\n  }\n  return {\n    cacheKey: cacheKey,\n    snapshot: snapshot,\n    data: snapshot.data,\n    isMissingData: isMissingData(snapshot),\n    storeEpoch: storeEpoch\n  };\n}\nvar ClientEdgeQueryResultsCache = /*#__PURE__*/function () {\n  function ClientEdgeQueryResultsCache(environment) {\n    (0, _defineProperty2[\"default\"])(this, \"_cache\", new Map());\n    (0, _defineProperty2[\"default\"])(this, \"_retainCounts\", new Map());\n    this._environment = environment;\n  }\n  var _proto = ClientEdgeQueryResultsCache.prototype;\n  _proto.get = function get(fragmentIdentifier) {\n    var _this$_cache$get$, _this$_cache$get;\n    return (_this$_cache$get$ = (_this$_cache$get = this._cache.get(fragmentIdentifier)) === null || _this$_cache$get === void 0 ? void 0 : _this$_cache$get[0]) !== null && _this$_cache$get$ !== void 0 ? _this$_cache$get$ : undefined;\n  };\n  _proto.recordQueryResults = function recordQueryResults(fragmentIdentifier, value) {\n    var _this = this;\n    var existing = this._cache.get(fragmentIdentifier);\n    if (!existing) {\n      var suspenseResource = new SuspenseResource(function () {\n        return _this._retain(fragmentIdentifier);\n      });\n      this._cache.set(fragmentIdentifier, [value, suspenseResource]);\n      suspenseResource.temporaryRetain(this._environment);\n    } else {\n      var existingResults = existing[0],\n        _suspenseResource = existing[1];\n      value.forEach(function (queryResult) {\n        existingResults.push(queryResult);\n      });\n      _suspenseResource.temporaryRetain(this._environment);\n    }\n  };\n  _proto._retain = function _retain(id) {\n    var _this2 = this;\n    var _this$_retainCounts$g;\n    var retainCount = ((_this$_retainCounts$g = this._retainCounts.get(id)) !== null && _this$_retainCounts$g !== void 0 ? _this$_retainCounts$g : 0) + 1;\n    this._retainCounts.set(id, retainCount);\n    return {\n      dispose: function dispose() {\n        var _this$_retainCounts$g2;\n        var newRetainCount = ((_this$_retainCounts$g2 = _this2._retainCounts.get(id)) !== null && _this$_retainCounts$g2 !== void 0 ? _this$_retainCounts$g2 : 0) - 1;\n        if (newRetainCount > 0) {\n          _this2._retainCounts.set(id, newRetainCount);\n        } else {\n          _this2._retainCounts[\"delete\"](id);\n          _this2._cache[\"delete\"](id);\n        }\n      }\n    };\n  };\n  return ClientEdgeQueryResultsCache;\n}();\nvar FragmentResourceImpl = /*#__PURE__*/function () {\n  function FragmentResourceImpl(environment) {\n    this._environment = environment;\n    this._cache = LRUCache.create(CACHE_CAPACITY);\n    if (RelayFeatureFlags.ENABLE_CLIENT_EDGES) {\n      this._clientEdgeQueryResultsCache = new ClientEdgeQueryResultsCache(environment);\n    }\n  }\n  var _proto2 = FragmentResourceImpl.prototype;\n  _proto2.read = function read(fragmentNode, fragmentRef, componentDisplayName, fragmentKey) {\n    return this.readWithIdentifier(fragmentNode, fragmentRef, getFragmentIdentifier(fragmentNode, fragmentRef), componentDisplayName, fragmentKey);\n  };\n  _proto2.readWithIdentifier = function readWithIdentifier(fragmentNode, fragmentRef, fragmentIdentifier, componentDisplayName, fragmentKey) {\n    var _this3 = this;\n    var _fragmentNode$metadat, _fragmentNode$metadat2, _missingLiveResolverF2, _missingLiveResolverF3;\n    var environment = this._environment;\n    if (fragmentRef == null) {\n      return {\n        cacheKey: fragmentIdentifier,\n        data: null,\n        isMissingData: false,\n        snapshot: null,\n        storeEpoch: 0\n      };\n    }\n    var storeEpoch = environment.getStore().getEpoch();\n    if ((fragmentNode === null || fragmentNode === void 0 ? void 0 : (_fragmentNode$metadat = fragmentNode.metadata) === null || _fragmentNode$metadat === void 0 ? void 0 : _fragmentNode$metadat.plural) === true) {\n      !Array.isArray(fragmentRef) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected fragment pointer%s for fragment `%s` to be ' + 'an array, instead got `%s`. Remove `@relay(plural: true)` ' + 'from fragment `%s` to allow the prop to be an object.', fragmentKey != null ? \" for key `\".concat(fragmentKey, \"`\") : '', fragmentNode.name, typeof fragmentRef, fragmentNode.name) : invariant(false) : void 0;\n      if (fragmentRef.length === 0) {\n        return {\n          cacheKey: fragmentIdentifier,\n          data: CONSTANT_READONLY_EMPTY_ARRAY,\n          isMissingData: false,\n          snapshot: CONSTANT_READONLY_EMPTY_ARRAY,\n          storeEpoch: storeEpoch\n        };\n      }\n    }\n    var cachedValue = this._cache.get(fragmentIdentifier);\n    if (cachedValue != null) {\n      var _missingLiveResolverF;\n      if (cachedValue.kind === 'pending' && isPromise(cachedValue.promise)) {\n        environment.__log({\n          name: 'suspense.fragment',\n          data: cachedValue.result.data,\n          fragment: fragmentNode,\n          isRelayHooks: true,\n          isMissingData: cachedValue.result.isMissingData,\n          isPromiseCached: true,\n          pendingOperations: cachedValue.pendingOperations\n        });\n        throw cachedValue.promise;\n      }\n      if (cachedValue.kind === 'done' && cachedValue.result.snapshot && !((_missingLiveResolverF = missingLiveResolverFields(cachedValue.result.snapshot)) !== null && _missingLiveResolverF !== void 0 && _missingLiveResolverF.length)) {\n        this._throwOrLogErrorsInSnapshot(cachedValue.result.snapshot);\n        if (cachedValue.result.isMissingData) {\n          environment.__log({\n            name: 'fragmentresource.missing_data',\n            data: cachedValue.result.data,\n            fragment: fragmentNode,\n            isRelayHooks: true,\n            cached: true\n          });\n        }\n        return cachedValue.result;\n      }\n    }\n    var fragmentSelector = getSelector(fragmentNode, fragmentRef);\n    !(fragmentSelector != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected to receive an object where `...%s` was spread, ' + 'but the fragment reference was not found`. This is most ' + 'likely the result of:\\n' + \"- Forgetting to spread `%s` in `%s`'s parent's fragment.\\n\" + '- Conditionally fetching `%s` but unconditionally passing %s prop ' + 'to `%s`. If the parent fragment only fetches the fragment conditionally ' + '- with e.g. `@include`, `@skip`, or inside a `... on SomeType { }` ' + 'spread  - then the fragment reference will not exist. ' + 'In this case, pass `null` if the conditions for evaluating the ' + 'fragment are not met (e.g. if the `@include(if)` value is false.)', fragmentNode.name, fragmentNode.name, componentDisplayName, fragmentNode.name, fragmentKey == null ? 'a fragment reference' : \"the `\".concat(fragmentKey, \"`\"), componentDisplayName) : invariant(false) : void 0;\n    var fragmentResult = null;\n    var snapshot = null;\n    if (RelayFeatureFlags.ENABLE_RELAY_OPERATION_TRACKER_SUSPENSE && cachedValue != null && cachedValue.kind === 'missing') {\n      fragmentResult = cachedValue.result;\n      snapshot = cachedValue.snapshot;\n    } else {\n      snapshot = fragmentSelector.kind === 'PluralReaderSelector' ? fragmentSelector.selectors.map(function (s) {\n        return environment.lookup(s);\n      }) : environment.lookup(fragmentSelector);\n      fragmentResult = getFragmentResult(fragmentIdentifier, snapshot, storeEpoch);\n    }\n    if (!fragmentResult.isMissingData) {\n      this._throwOrLogErrorsInSnapshot(snapshot);\n      this._cache.set(fragmentIdentifier, {\n        kind: 'done',\n        result: fragmentResult\n      });\n      return fragmentResult;\n    }\n    var clientEdgeRequests = null;\n    if (RelayFeatureFlags.ENABLE_CLIENT_EDGES && ((_fragmentNode$metadat2 = fragmentNode.metadata) === null || _fragmentNode$metadat2 === void 0 ? void 0 : _fragmentNode$metadat2.hasClientEdges) === true && hasMissingClientEdges(snapshot)) {\n      clientEdgeRequests = [];\n      var queryResource = getQueryResourceForEnvironment(this._environment);\n      var queryResults = [];\n      singularOrPluralForEach(snapshot, function (snap) {\n        var _snap$missingClientEd;\n        (_snap$missingClientEd = snap.missingClientEdges) === null || _snap$missingClientEd === void 0 ? void 0 : _snap$missingClientEd.forEach(function (_ref) {\n          var _clientEdgeRequests;\n          var request = _ref.request,\n            clientEdgeDestinationID = _ref.clientEdgeDestinationID;\n          var _this3$_performClient = _this3._performClientEdgeQuery(queryResource, fragmentNode, fragmentRef, request, clientEdgeDestinationID),\n            queryResult = _this3$_performClient.queryResult,\n            requestDescriptor = _this3$_performClient.requestDescriptor;\n          queryResults.push(queryResult);\n          (_clientEdgeRequests = clientEdgeRequests) === null || _clientEdgeRequests === void 0 ? void 0 : _clientEdgeRequests.push(requestDescriptor);\n        });\n      });\n      !(this._clientEdgeQueryResultsCache != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Client edge query result cache should exist when ENABLE_CLIENT_EDGES is on.') : invariant(false) : void 0;\n      this._clientEdgeQueryResultsCache.recordQueryResults(fragmentIdentifier, queryResults);\n    }\n    var clientEdgePromises = [];\n    if (RelayFeatureFlags.ENABLE_CLIENT_EDGES && clientEdgeRequests) {\n      clientEdgePromises = clientEdgeRequests.map(function (request) {\n        return getPromiseForActiveRequest(_this3._environment, request);\n      }).filter(Boolean);\n    }\n    var fragmentOwner = fragmentSelector.kind === 'PluralReaderSelector' ? fragmentSelector.selectors[0].owner : fragmentSelector.owner;\n    var parentQueryPromiseResult = this._getAndSavePromiseForFragmentRequestInFlight(fragmentIdentifier, fragmentNode, fragmentOwner, fragmentResult);\n    var parentQueryPromiseResultPromise = parentQueryPromiseResult === null || parentQueryPromiseResult === void 0 ? void 0 : parentQueryPromiseResult.promise;\n    var missingResolverFieldPromises = (_missingLiveResolverF2 = (_missingLiveResolverF3 = missingLiveResolverFields(snapshot)) === null || _missingLiveResolverF3 === void 0 ? void 0 : _missingLiveResolverF3.map(function (_ref2) {\n      var liveStateID = _ref2.liveStateID;\n      var store = environment.getStore();\n      return store.getLiveResolverPromise(liveStateID);\n    })) !== null && _missingLiveResolverF2 !== void 0 ? _missingLiveResolverF2 : [];\n    if (clientEdgePromises.length || missingResolverFieldPromises.length || isPromise(parentQueryPromiseResultPromise)) {\n      var _parentQueryPromiseRe, _clientEdgeRequests2;\n      environment.__log({\n        name: 'suspense.fragment',\n        data: fragmentResult.data,\n        fragment: fragmentNode,\n        isRelayHooks: true,\n        isPromiseCached: false,\n        isMissingData: fragmentResult.isMissingData,\n        pendingOperations: [].concat((0, _toConsumableArray2[\"default\"])((_parentQueryPromiseRe = parentQueryPromiseResult === null || parentQueryPromiseResult === void 0 ? void 0 : parentQueryPromiseResult.pendingOperations) !== null && _parentQueryPromiseRe !== void 0 ? _parentQueryPromiseRe : []), (0, _toConsumableArray2[\"default\"])((_clientEdgeRequests2 = clientEdgeRequests) !== null && _clientEdgeRequests2 !== void 0 ? _clientEdgeRequests2 : []))\n      });\n      var promises = [];\n      if (clientEdgePromises.length > 0) {\n        promises = promises.concat(clientEdgePromises);\n      }\n      if (missingResolverFieldPromises.length > 0) {\n        promises = promises.concat(missingResolverFieldPromises);\n      }\n      if (promises.length > 0) {\n        if (parentQueryPromiseResultPromise) {\n          promises.push(parentQueryPromiseResultPromise);\n        }\n        throw Promise.all(promises);\n      }\n      if (parentQueryPromiseResultPromise) {\n        throw parentQueryPromiseResultPromise;\n      }\n    }\n    if (RelayFeatureFlags.ENABLE_RELAY_OPERATION_TRACKER_SUSPENSE && fragmentResult.isMissingData) {\n      this._cache.set(fragmentIdentifier, {\n        kind: 'done',\n        result: fragmentResult\n      });\n    }\n    this._throwOrLogErrorsInSnapshot(snapshot);\n    environment.__log({\n      name: 'fragmentresource.missing_data',\n      data: fragmentResult.data,\n      fragment: fragmentNode,\n      isRelayHooks: true,\n      cached: false\n    });\n    return getFragmentResult(fragmentIdentifier, snapshot, storeEpoch);\n  };\n  _proto2._performClientEdgeQuery = function _performClientEdgeQuery(queryResource, fragmentNode, fragmentRef, request, clientEdgeDestinationID) {\n    var originalVariables = getVariablesFromFragment(fragmentNode, fragmentRef);\n    var variables = (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, originalVariables), {}, {\n      id: clientEdgeDestinationID\n    });\n    var operation = createOperationDescriptor(request, variables, {});\n    var fetchObservable = fetchQuery(this._environment, operation);\n    var queryResult = queryResource.prepare(operation, fetchObservable);\n    return {\n      requestDescriptor: operation.request,\n      queryResult: queryResult\n    };\n  };\n  _proto2._throwOrLogErrorsInSnapshot = function _throwOrLogErrorsInSnapshot(snapshot) {\n    var _this4 = this;\n    if (Array.isArray(snapshot)) {\n      snapshot.forEach(function (s) {\n        handlePotentialSnapshotErrors(_this4._environment, s.missingRequiredFields, s.relayResolverErrors, s.errorResponseFields);\n      });\n    } else {\n      handlePotentialSnapshotErrors(this._environment, snapshot.missingRequiredFields, snapshot.relayResolverErrors, snapshot.errorResponseFields);\n    }\n  };\n  _proto2.readSpec = function readSpec(fragmentNodes, fragmentRefs, componentDisplayName) {\n    var result = {};\n    for (var key in fragmentNodes) {\n      result[key] = this.read(fragmentNodes[key], fragmentRefs[key], componentDisplayName, key);\n    }\n    return result;\n  };\n  _proto2.subscribe = function subscribe(fragmentResult, callback) {\n    var _this5 = this;\n    var environment = this._environment;\n    var cacheKey = fragmentResult.cacheKey;\n    var renderedSnapshot = fragmentResult.snapshot;\n    if (!renderedSnapshot) {\n      return {\n        dispose: function dispose() {}\n      };\n    }\n    var _this$checkMissedUpda = this.checkMissedUpdates(fragmentResult),\n      didMissUpdates = _this$checkMissedUpda[0],\n      currentSnapshot = _this$checkMissedUpda[1];\n    if (didMissUpdates) {\n      callback();\n    }\n    var disposables = [];\n    if (Array.isArray(renderedSnapshot)) {\n      !Array.isArray(currentSnapshot) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected snapshots to be plural. ' + \"If you're seeing this, this is likely a bug in Relay.\") : invariant(false) : void 0;\n      currentSnapshot.forEach(function (snapshot, idx) {\n        disposables.push(environment.subscribe(snapshot, function (latestSnapshot) {\n          var storeEpoch = environment.getStore().getEpoch();\n          _this5._updatePluralSnapshot(cacheKey, currentSnapshot, latestSnapshot, idx, storeEpoch);\n          callback();\n        }));\n      });\n    } else {\n      !(currentSnapshot != null && !Array.isArray(currentSnapshot)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected snapshot to be singular. ' + \"If you're seeing this, this is likely a bug in Relay.\") : invariant(false) : void 0;\n      disposables.push(environment.subscribe(currentSnapshot, function (latestSnapshot) {\n        var storeEpoch = environment.getStore().getEpoch();\n        var result = getFragmentResult(cacheKey, latestSnapshot, storeEpoch);\n        if (RelayFeatureFlags.ENABLE_RELAY_OPERATION_TRACKER_SUSPENSE && result.isMissingData) {\n          _this5._cache.set(cacheKey, {\n            kind: 'missing',\n            result: result,\n            snapshot: latestSnapshot\n          });\n        } else {\n          _this5._cache.set(cacheKey, {\n            kind: 'done',\n            result: getFragmentResult(cacheKey, latestSnapshot, storeEpoch)\n          });\n        }\n        callback();\n      }));\n    }\n    if (RelayFeatureFlags.ENABLE_CLIENT_EDGES) {\n      var _this$_clientEdgeQuer, _this$_clientEdgeQuer2;\n      var clientEdgeQueryResults = (_this$_clientEdgeQuer = (_this$_clientEdgeQuer2 = this._clientEdgeQueryResultsCache) === null || _this$_clientEdgeQuer2 === void 0 ? void 0 : _this$_clientEdgeQuer2.get(cacheKey)) !== null && _this$_clientEdgeQuer !== void 0 ? _this$_clientEdgeQuer : undefined;\n      if (clientEdgeQueryResults !== null && clientEdgeQueryResults !== void 0 && clientEdgeQueryResults.length) {\n        var queryResource = getQueryResourceForEnvironment(this._environment);\n        clientEdgeQueryResults.forEach(function (queryResult) {\n          disposables.push(queryResource.retain(queryResult));\n        });\n      }\n    }\n    return {\n      dispose: function dispose() {\n        disposables.forEach(function (s) {\n          return s.dispose();\n        });\n        _this5._cache[\"delete\"](cacheKey);\n      }\n    };\n  };\n  _proto2.subscribeSpec = function subscribeSpec(fragmentResults, callback) {\n    var _this6 = this;\n    var disposables = Object.keys(fragmentResults).map(function (key) {\n      return _this6.subscribe(fragmentResults[key], callback);\n    });\n    return {\n      dispose: function dispose() {\n        disposables.forEach(function (disposable) {\n          disposable.dispose();\n        });\n      }\n    };\n  };\n  _proto2.checkMissedUpdates = function checkMissedUpdates(fragmentResult) {\n    var environment = this._environment;\n    var renderedSnapshot = fragmentResult.snapshot;\n    if (!renderedSnapshot) {\n      return [false, null];\n    }\n    var storeEpoch = null;\n    storeEpoch = environment.getStore().getEpoch();\n    if (fragmentResult.storeEpoch === storeEpoch) {\n      return [false, fragmentResult.snapshot];\n    }\n    var cacheKey = fragmentResult.cacheKey;\n    if (Array.isArray(renderedSnapshot)) {\n      var didMissUpdates = false;\n      var currentSnapshots = [];\n      renderedSnapshot.forEach(function (snapshot, idx) {\n        var currentSnapshot = environment.lookup(snapshot.selector);\n        var renderData = snapshot.data;\n        var currentData = currentSnapshot.data;\n        var updatedData = recycleNodesInto(renderData, currentData);\n        if (updatedData !== renderData) {\n          currentSnapshot = (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, currentSnapshot), {}, {\n            data: updatedData\n          });\n          didMissUpdates = true;\n        }\n        currentSnapshots[idx] = currentSnapshot;\n      });\n      if (didMissUpdates) {\n        var result = getFragmentResult(cacheKey, currentSnapshots, storeEpoch);\n        if (RelayFeatureFlags.ENABLE_RELAY_OPERATION_TRACKER_SUSPENSE && result.isMissingData) {\n          this._cache.set(cacheKey, {\n            kind: 'missing',\n            result: result,\n            snapshot: currentSnapshots\n          });\n        } else {\n          this._cache.set(cacheKey, {\n            kind: 'done',\n            result: result\n          });\n        }\n      }\n      return [didMissUpdates, currentSnapshots];\n    }\n    var currentSnapshot = environment.lookup(renderedSnapshot.selector);\n    var renderData = renderedSnapshot.data;\n    var currentData = currentSnapshot.data;\n    var updatedData = recycleNodesInto(renderData, currentData);\n    var updatedCurrentSnapshot = {\n      data: updatedData,\n      isMissingData: currentSnapshot.isMissingData,\n      missingClientEdges: currentSnapshot.missingClientEdges,\n      missingLiveResolverFields: currentSnapshot.missingLiveResolverFields,\n      seenRecords: currentSnapshot.seenRecords,\n      selector: currentSnapshot.selector,\n      missingRequiredFields: currentSnapshot.missingRequiredFields,\n      relayResolverErrors: currentSnapshot.relayResolverErrors,\n      errorResponseFields: currentSnapshot.errorResponseFields\n    };\n    if (updatedData !== renderData) {\n      var _result = getFragmentResult(cacheKey, updatedCurrentSnapshot, storeEpoch);\n      if (RelayFeatureFlags.ENABLE_RELAY_OPERATION_TRACKER_SUSPENSE && _result.isMissingData) {\n        this._cache.set(cacheKey, {\n          kind: 'missing',\n          result: _result,\n          snapshot: updatedCurrentSnapshot\n        });\n      } else {\n        this._cache.set(cacheKey, {\n          kind: 'done',\n          result: _result\n        });\n      }\n    }\n    return [updatedData !== renderData, updatedCurrentSnapshot];\n  };\n  _proto2.checkMissedUpdatesSpec = function checkMissedUpdatesSpec(fragmentResults) {\n    var _this7 = this;\n    return Object.keys(fragmentResults).some(function (key) {\n      return _this7.checkMissedUpdates(fragmentResults[key])[0];\n    });\n  };\n  _proto2._getAndSavePromiseForFragmentRequestInFlight = function _getAndSavePromiseForFragmentRequestInFlight(cacheKey, fragmentNode, fragmentOwner, fragmentResult) {\n    var _this8 = this;\n    var pendingOperationsResult = getPendingOperationsForFragment(this._environment, fragmentNode, fragmentOwner);\n    if (pendingOperationsResult == null) {\n      return null;\n    }\n    var networkPromise = pendingOperationsResult.promise;\n    var pendingOperations = pendingOperationsResult.pendingOperations;\n    var promise = networkPromise.then(function () {\n      _this8._cache[\"delete\"](cacheKey);\n    })[\"catch\"](function (error) {\n      _this8._cache[\"delete\"](cacheKey);\n    });\n    promise.displayName = networkPromise.displayName;\n    this._cache.set(cacheKey, {\n      kind: 'pending',\n      pendingOperations: pendingOperations,\n      promise: promise,\n      result: fragmentResult\n    });\n    return {\n      promise: promise,\n      pendingOperations: pendingOperations\n    };\n  };\n  _proto2._updatePluralSnapshot = function _updatePluralSnapshot(cacheKey, baseSnapshots, latestSnapshot, idx, storeEpoch) {\n    var _currentFragmentResul;\n    var currentFragmentResult = this._cache.get(cacheKey);\n    if (isPromise(currentFragmentResult)) {\n      reportInvalidCachedData(latestSnapshot.selector.node.name);\n      return;\n    }\n    var currentSnapshot = currentFragmentResult === null || currentFragmentResult === void 0 ? void 0 : (_currentFragmentResul = currentFragmentResult.result) === null || _currentFragmentResul === void 0 ? void 0 : _currentFragmentResul.snapshot;\n    if (currentSnapshot && !Array.isArray(currentSnapshot)) {\n      reportInvalidCachedData(latestSnapshot.selector.node.name);\n      return;\n    }\n    var nextSnapshots = currentSnapshot ? (0, _toConsumableArray2[\"default\"])(currentSnapshot) : (0, _toConsumableArray2[\"default\"])(baseSnapshots);\n    nextSnapshots[idx] = latestSnapshot;\n    var result = getFragmentResult(cacheKey, nextSnapshots, storeEpoch);\n    if (RelayFeatureFlags.ENABLE_RELAY_OPERATION_TRACKER_SUSPENSE && result.isMissingData) {\n      this._cache.set(cacheKey, {\n        kind: 'missing',\n        result: result,\n        snapshot: nextSnapshots\n      });\n    } else {\n      this._cache.set(cacheKey, {\n        kind: 'done',\n        result: result\n      });\n    }\n  };\n  return FragmentResourceImpl;\n}();\nfunction reportInvalidCachedData(nodeName) {\n  !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected to find cached data for plural fragment `%s` when ' + 'receiving a subscription. ' + \"If you're seeing this, this is likely a bug in Relay.\", nodeName) : invariant(false) : void 0;\n}\nfunction createFragmentResource(environment) {\n  return new FragmentResourceImpl(environment);\n}\nvar dataResources = WEAKMAP_SUPPORTED ? new WeakMap() : new Map();\nfunction getFragmentResourceForEnvironment(environment) {\n  var cached = dataResources.get(environment);\n  if (cached) {\n    return cached;\n  }\n  var newDataResource = createFragmentResource(environment);\n  dataResources.set(environment, newDataResource);\n  return newDataResource;\n}\nmodule.exports = {\n  createFragmentResource: createFragmentResource,\n  getFragmentResourceForEnvironment: getFragmentResourceForEnvironment\n};","'use strict';\n\nvar useRelayEnvironment = require('../useRelayEnvironment');\nvar useUnsafeRef_DEPRECATED = require('../useUnsafeRef_DEPRECATED');\nvar _require = require('./FragmentResource'),\n  getFragmentResourceForEnvironment = _require.getFragmentResourceForEnvironment;\nvar _require2 = require('react'),\n  useEffect = _require2.useEffect,\n  useState = _require2.useState;\nvar _require3 = require('relay-runtime'),\n  RelayFeatureFlags = _require3.RelayFeatureFlags,\n  getFragmentIdentifier = _require3.getFragmentIdentifier;\nvar warning = require(\"fbjs/lib/warning\");\nfunction useFragmentNode(fragmentNode, fragmentRef, componentDisplayName) {\n  var environment = useRelayEnvironment();\n  var FragmentResource = getFragmentResourceForEnvironment(environment);\n  var isMountedRef = useUnsafeRef_DEPRECATED(false);\n  var _useState = useState(0),\n    forceUpdate = _useState[1];\n  var fragmentIdentifier = getFragmentIdentifier(fragmentNode, fragmentRef);\n  var fragmentResult = FragmentResource.readWithIdentifier(fragmentNode, fragmentRef, fragmentIdentifier, componentDisplayName);\n  var isListeningForUpdatesRef = useUnsafeRef_DEPRECATED(true);\n  function enableStoreUpdates() {\n    isListeningForUpdatesRef.current = true;\n    var didMissUpdates = FragmentResource.checkMissedUpdates(fragmentResult)[0];\n    if (didMissUpdates) {\n      handleDataUpdate();\n    }\n  }\n  function disableStoreUpdates() {\n    isListeningForUpdatesRef.current = false;\n  }\n  function handleDataUpdate() {\n    if (isMountedRef.current === false || isListeningForUpdatesRef.current === false) {\n      return;\n    }\n    forceUpdate(function (count) {\n      return count + 1;\n    });\n  }\n  useEffect(function () {\n    isMountedRef.current = true;\n    var disposable = FragmentResource.subscribe(fragmentResult, handleDataUpdate);\n    return function () {\n      isMountedRef.current = false;\n      disposable.dispose();\n    };\n  }, [environment, fragmentIdentifier]);\n  if (RelayFeatureFlags.LOG_MISSING_RECORDS_IN_PROD || process.env.NODE_ENV !== \"production\") {\n    if (fragmentRef != null && (fragmentResult.data === undefined || Array.isArray(fragmentResult.data) && fragmentResult.data.length > 0 && fragmentResult.data.every(function (data) {\n      return data === undefined;\n    }))) {\n      process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Expected to have been able to read non-null data for ' + 'fragment `%s` declared in ' + '`%s`, since fragment reference was non-null. ' + \"Make sure that that `%s`'s parent isn't \" + 'holding on to and/or passing a fragment reference for data that ' + 'has been deleted.', fragmentNode.name, componentDisplayName, componentDisplayName) : void 0;\n    }\n  }\n  return {\n    data: fragmentResult.data,\n    disableStoreUpdates: disableStoreUpdates,\n    enableStoreUpdates: enableStoreUpdates\n  };\n}\nmodule.exports = useFragmentNode;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar ProfilerContext = require('../ProfilerContext');\nvar _require = require('../QueryResource'),\n  getQueryResourceForEnvironment = _require.getQueryResourceForEnvironment;\nvar useIsMountedRef = require('../useIsMountedRef');\nvar useQueryLoader = require('../useQueryLoader');\nvar useRelayEnvironment = require('../useRelayEnvironment');\nvar _require2 = require('./FragmentResource'),\n  getFragmentResourceForEnvironment = _require2.getFragmentResourceForEnvironment;\nvar useFragmentNode = require('./useFragmentNode');\nvar invariant = require('invariant');\nvar _require3 = require('react'),\n  useCallback = _require3.useCallback,\n  useContext = _require3.useContext,\n  useReducer = _require3.useReducer;\nvar _require4 = require('relay-runtime'),\n  fetchQuery = _require4.__internal.fetchQuery,\n  createOperationDescriptor = _require4.createOperationDescriptor,\n  getFragmentIdentifier = _require4.getFragmentIdentifier,\n  getRefetchMetadata = _require4.getRefetchMetadata,\n  getSelector = _require4.getSelector,\n  getValueAtPath = _require4.getValueAtPath;\nvar warning = require(\"fbjs/lib/warning\");\nfunction reducer(state, action) {\n  switch (action.type) {\n    case 'refetch':\n      {\n        var _action$refetchEnviro;\n        return (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, state), {}, {\n          fetchPolicy: action.fetchPolicy,\n          mirroredEnvironment: (_action$refetchEnviro = action.refetchEnvironment) !== null && _action$refetchEnviro !== void 0 ? _action$refetchEnviro : state.mirroredEnvironment,\n          onComplete: action.onComplete,\n          refetchEnvironment: action.refetchEnvironment,\n          refetchQuery: action.refetchQuery,\n          renderPolicy: action.renderPolicy\n        });\n      }\n    case 'reset':\n      {\n        return {\n          fetchPolicy: undefined,\n          mirroredEnvironment: action.environment,\n          mirroredFragmentIdentifier: action.fragmentIdentifier,\n          onComplete: undefined,\n          refetchQuery: null,\n          renderPolicy: undefined\n        };\n      }\n    default:\n      {\n        action.type;\n        throw new Error('useRefetchableFragmentNode: Unexpected action type');\n      }\n  }\n}\nfunction useRefetchableFragmentNode(fragmentNode, parentFragmentRef, componentDisplayName) {\n  var parentEnvironment = useRelayEnvironment();\n  var _getRefetchMetadata = getRefetchMetadata(fragmentNode, componentDisplayName),\n    refetchableRequest = _getRefetchMetadata.refetchableRequest,\n    fragmentRefPathInResponse = _getRefetchMetadata.fragmentRefPathInResponse;\n  var fragmentIdentifier = getFragmentIdentifier(fragmentNode, parentFragmentRef);\n  var _useReducer = useReducer(reducer, {\n      fetchPolicy: undefined,\n      mirroredEnvironment: parentEnvironment,\n      mirroredFragmentIdentifier: fragmentIdentifier,\n      onComplete: undefined,\n      refetchEnvironment: null,\n      refetchQuery: null,\n      renderPolicy: undefined\n    }),\n    refetchState = _useReducer[0],\n    dispatch = _useReducer[1];\n  var fetchPolicy = refetchState.fetchPolicy,\n    mirroredEnvironment = refetchState.mirroredEnvironment,\n    mirroredFragmentIdentifier = refetchState.mirroredFragmentIdentifier,\n    onComplete = refetchState.onComplete,\n    refetchEnvironment = refetchState.refetchEnvironment,\n    refetchQuery = refetchState.refetchQuery,\n    renderPolicy = refetchState.renderPolicy;\n  var environment = refetchEnvironment !== null && refetchEnvironment !== void 0 ? refetchEnvironment : parentEnvironment;\n  var QueryResource = getQueryResourceForEnvironment(environment);\n  var FragmentResource = getFragmentResourceForEnvironment(environment);\n  var profilerContext = useContext(ProfilerContext);\n  var shouldReset = environment !== mirroredEnvironment || fragmentIdentifier !== mirroredFragmentIdentifier;\n  var _useQueryLoader = useQueryLoader(refetchableRequest),\n    queryRef = _useQueryLoader[0],\n    loadQuery = _useQueryLoader[1],\n    disposeQuery = _useQueryLoader[2];\n  var fragmentRef = parentFragmentRef;\n  var _getRefetchMetadata2 = getRefetchMetadata(fragmentNode, componentDisplayName),\n    identifierInfo = _getRefetchMetadata2.identifierInfo;\n  if (shouldReset) {\n    dispatch({\n      type: 'reset',\n      environment: environment,\n      fragmentIdentifier: fragmentIdentifier\n    });\n    disposeQuery();\n  } else if (refetchQuery != null && queryRef != null) {\n    var debugPreviousIDAndTypename;\n    if (process.env.NODE_ENV !== \"production\") {\n      debugPreviousIDAndTypename = debugFunctions.getInitialIDAndType(refetchQuery.request.variables, fragmentRefPathInResponse, identifierInfo === null || identifierInfo === void 0 ? void 0 : identifierInfo.identifierQueryVariableName, environment);\n    }\n    var handleQueryCompleted = function handleQueryCompleted(maybeError) {\n      onComplete && onComplete(maybeError !== null && maybeError !== void 0 ? maybeError : null);\n    };\n    var fetchObservable = queryRef.source != null ? queryRef.source : fetchQuery(environment, refetchQuery);\n    var queryResult = profilerContext.wrapPrepareQueryResource(function () {\n      return QueryResource.prepare(refetchQuery, fetchObservable, fetchPolicy, renderPolicy, {\n        error: handleQueryCompleted,\n        complete: function complete() {\n          if (process.env.NODE_ENV !== \"production\") {\n            debugFunctions.checkSameTypeAfterRefetch(debugPreviousIDAndTypename, environment, fragmentNode, componentDisplayName);\n          }\n          handleQueryCompleted();\n        }\n      }, queryRef.fetchKey, profilerContext);\n    });\n    var queryData = FragmentResource.read(queryResult.fragmentNode, queryResult.fragmentRef, componentDisplayName).data;\n    !(queryData != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected to be able to read refetch query response. ' + \"If you're seeing this, this is likely a bug in Relay.\") : invariant(false) : void 0;\n    var refetchedFragmentRef = getValueAtPath(queryData, fragmentRefPathInResponse);\n    fragmentRef = refetchedFragmentRef;\n    if (process.env.NODE_ENV !== \"production\") {\n      debugFunctions.checkSameIDAfterRefetch(debugPreviousIDAndTypename, fragmentRef, fragmentNode, componentDisplayName);\n    }\n  }\n  var _useFragmentNode = useFragmentNode(fragmentNode, fragmentRef, componentDisplayName),\n    fragmentData = _useFragmentNode.data,\n    disableStoreUpdates = _useFragmentNode.disableStoreUpdates,\n    enableStoreUpdates = _useFragmentNode.enableStoreUpdates;\n  var refetch = useRefetchFunction(componentDisplayName, dispatch, disposeQuery, fragmentData, fragmentIdentifier, fragmentNode, fragmentRefPathInResponse, identifierInfo, loadQuery, parentFragmentRef, refetchableRequest);\n  return {\n    fragmentData: fragmentData,\n    fragmentRef: fragmentRef,\n    refetch: refetch,\n    disableStoreUpdates: disableStoreUpdates,\n    enableStoreUpdates: enableStoreUpdates\n  };\n}\nfunction useRefetchFunction(componentDisplayName, dispatch, disposeQuery, fragmentData, fragmentIdentifier, fragmentNode, fragmentRefPathInResponse, identifierInfo, loadQuery, parentFragmentRef, refetchableRequest) {\n  var isMountedRef = useIsMountedRef();\n  var identifierValue = (identifierInfo === null || identifierInfo === void 0 ? void 0 : identifierInfo.identifierField) != null && fragmentData != null && typeof fragmentData === 'object' ? fragmentData[identifierInfo.identifierField] : null;\n  return useCallback(function (providedRefetchVariables, options) {\n    if (isMountedRef.current !== true) {\n      process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Unexpected call to `refetch` on unmounted component for fragment ' + '`%s` in `%s`. It looks like some instances of your component are ' + 'still trying to fetch data but they already unmounted. ' + 'Please make sure you clear all timers, intervals, ' + 'async calls, etc that may trigger a fetch.', fragmentNode.name, componentDisplayName) : void 0;\n      return {\n        dispose: function dispose() {}\n      };\n    }\n    if (parentFragmentRef == null) {\n      process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Unexpected call to `refetch` while using a null fragment ref ' + 'for fragment `%s` in `%s`. When calling `refetch`, we expect ' + \"initial fragment data to be non-null. Please make sure you're \" + 'passing a valid fragment ref to `%s` before calling ' + '`refetch`, or make sure you pass all required variables to `refetch`.', fragmentNode.name, componentDisplayName, componentDisplayName) : void 0;\n    }\n    var refetchEnvironment = options === null || options === void 0 ? void 0 : options.__environment;\n    var fetchPolicy = options === null || options === void 0 ? void 0 : options.fetchPolicy;\n    var renderPolicy = options === null || options === void 0 ? void 0 : options.UNSTABLE_renderPolicy;\n    var onComplete = options === null || options === void 0 ? void 0 : options.onComplete;\n    var fragmentSelector = getSelector(fragmentNode, parentFragmentRef);\n    var parentVariables;\n    var fragmentVariables;\n    if (fragmentSelector == null) {\n      parentVariables = {};\n      fragmentVariables = {};\n    } else if (fragmentSelector.kind === 'PluralReaderSelector') {\n      var _fragmentSelector$sel, _fragmentSelector$sel2, _fragmentSelector$sel3, _fragmentSelector$sel4;\n      parentVariables = (_fragmentSelector$sel = (_fragmentSelector$sel2 = fragmentSelector.selectors[0]) === null || _fragmentSelector$sel2 === void 0 ? void 0 : _fragmentSelector$sel2.owner.variables) !== null && _fragmentSelector$sel !== void 0 ? _fragmentSelector$sel : {};\n      fragmentVariables = (_fragmentSelector$sel3 = (_fragmentSelector$sel4 = fragmentSelector.selectors[0]) === null || _fragmentSelector$sel4 === void 0 ? void 0 : _fragmentSelector$sel4.variables) !== null && _fragmentSelector$sel3 !== void 0 ? _fragmentSelector$sel3 : {};\n    } else {\n      parentVariables = fragmentSelector.owner.variables;\n      fragmentVariables = fragmentSelector.variables;\n    }\n    var refetchVariables = (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, parentVariables), fragmentVariables), providedRefetchVariables);\n    if (identifierInfo != null && !providedRefetchVariables.hasOwnProperty(identifierInfo.identifierQueryVariableName)) {\n      if (typeof identifierValue !== 'string') {\n        process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Expected result to have a string  ' + '`%s` in order to refetch, got `%s`.', identifierInfo.identifierField, identifierValue) : void 0;\n      }\n      refetchVariables[identifierInfo.identifierQueryVariableName] = identifierValue;\n    }\n    var refetchQuery = createOperationDescriptor(refetchableRequest, refetchVariables, {\n      force: true\n    });\n    loadQuery(refetchQuery.request.variables, {\n      fetchPolicy: fetchPolicy,\n      __environment: refetchEnvironment,\n      __nameForWarning: 'refetch'\n    });\n    dispatch({\n      type: 'refetch',\n      fetchPolicy: fetchPolicy,\n      onComplete: onComplete,\n      refetchEnvironment: refetchEnvironment,\n      refetchQuery: refetchQuery,\n      renderPolicy: renderPolicy\n    });\n    return {\n      dispose: disposeQuery\n    };\n  }, [fragmentIdentifier, dispatch, disposeQuery, identifierValue, loadQuery]);\n}\nvar debugFunctions;\nif (process.env.NODE_ENV !== \"production\") {\n  debugFunctions = {\n    getInitialIDAndType: function getInitialIDAndType(memoRefetchVariables, fragmentRefPathInResponse, identifierQueryVariableName, environment) {\n      var _require5 = require('relay-runtime'),\n        Record = _require5.Record;\n      var id = memoRefetchVariables === null || memoRefetchVariables === void 0 ? void 0 : memoRefetchVariables[identifierQueryVariableName !== null && identifierQueryVariableName !== void 0 ? identifierQueryVariableName : 'id'];\n      if (fragmentRefPathInResponse.length !== 1 || fragmentRefPathInResponse[0] !== 'node' || id == null) {\n        return null;\n      }\n      var recordSource = environment.getStore().getSource();\n      var record = recordSource.get(id);\n      var typename = record == null ? null : Record.getType(record);\n      if (typename == null) {\n        return null;\n      }\n      return {\n        id: id,\n        typename: typename\n      };\n    },\n    checkSameTypeAfterRefetch: function checkSameTypeAfterRefetch(previousIDAndType, environment, fragmentNode, componentDisplayName) {\n      var _require6 = require('relay-runtime'),\n        Record = _require6.Record;\n      if (!previousIDAndType) {\n        return;\n      }\n      var recordSource = environment.getStore().getSource();\n      var record = recordSource.get(previousIDAndType.id);\n      var typename = record && Record.getType(record);\n      if (typename !== previousIDAndType.typename) {\n        process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Call to `refetch` returned data with a different ' + '__typename: was `%s`, now `%s`, on `%s` in `%s`. ' + 'Please make sure the server correctly implements' + 'unique id requirement.', previousIDAndType.typename, typename, fragmentNode.name, componentDisplayName) : void 0;\n      }\n    },\n    checkSameIDAfterRefetch: function checkSameIDAfterRefetch(previousIDAndTypename, refetchedFragmentRef, fragmentNode, componentDisplayName) {\n      if (previousIDAndTypename == null) {\n        return;\n      }\n      var _require7 = require('relay-runtime'),\n        ID_KEY = _require7.ID_KEY;\n      var resultID = refetchedFragmentRef[ID_KEY];\n      if (resultID != null && resultID !== previousIDAndTypename.id) {\n        process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Call to `refetch` returned a different id, expected ' + '`%s`, got `%s`, on `%s` in `%s`. ' + 'Please make sure the server correctly implements ' + 'unique id requirement.', resultID, previousIDAndTypename.id, fragmentNode.name, componentDisplayName) : void 0;\n      }\n    }\n  };\n}\nmodule.exports = useRefetchableFragmentNode;","'use strict';\n\nvar _require = require('./loadQuery'),\n  loadQuery = _require.loadQuery;\nfunction loadEntryPoint(environmentProvider, entryPoint, entryPointParams) {\n  var loadingPromise = null;\n  if (entryPoint.root.getModuleIfRequired() == null) {\n    loadingPromise = entryPoint.root.load();\n  }\n  var preloadProps = entryPoint.getPreloadProps(entryPointParams);\n  var queries = preloadProps.queries,\n    entryPoints = preloadProps.entryPoints,\n    extraProps = preloadProps.extraProps;\n  var preloadedQueries = {};\n  var preloadedEntryPoints = {};\n  if (queries != null) {\n    var queriesPropNames = Object.keys(queries);\n    queriesPropNames.forEach(function (queryPropName) {\n      var _queries$queryPropNam = queries[queryPropName],\n        environmentProviderOptions = _queries$queryPropNam.environmentProviderOptions,\n        options = _queries$queryPropNam.options,\n        parameters = _queries$queryPropNam.parameters,\n        variables = _queries$queryPropNam.variables;\n      var environment = environmentProvider.getEnvironment(environmentProviderOptions);\n      preloadedQueries[queryPropName] = loadQuery(environment, parameters, variables, {\n        fetchPolicy: options === null || options === void 0 ? void 0 : options.fetchPolicy,\n        networkCacheConfig: options === null || options === void 0 ? void 0 : options.networkCacheConfig,\n        __nameForWarning: 'loadEntryPoint'\n      }, environmentProviderOptions);\n    });\n  }\n  if (entryPoints != null) {\n    var entryPointPropNames = Object.keys(entryPoints);\n    entryPointPropNames.forEach(function (entryPointPropName) {\n      var entryPointDescription = entryPoints[entryPointPropName];\n      if (entryPointDescription == null) {\n        return;\n      }\n      var nestedEntryPoint = entryPointDescription.entryPoint,\n        nestedParams = entryPointDescription.entryPointParams;\n      preloadedEntryPoints[entryPointPropName] = loadEntryPoint(environmentProvider, nestedEntryPoint, nestedParams);\n    });\n  }\n  var isDisposed = false;\n  return {\n    dispose: function dispose() {\n      if (isDisposed) {\n        return;\n      }\n      if (preloadedQueries != null) {\n        Object.values(preloadedQueries).forEach(function (_ref) {\n          var innerDispose = _ref.dispose;\n          innerDispose();\n        });\n      }\n      if (preloadedEntryPoints != null) {\n        Object.values(preloadedEntryPoints).forEach(function (_ref2) {\n          var innerDispose = _ref2.dispose;\n          innerDispose();\n        });\n      }\n      isDisposed = true;\n    },\n    entryPoints: preloadedEntryPoints,\n    extraProps: extraProps !== null && extraProps !== void 0 ? extraProps : null,\n    getComponent: function getComponent() {\n      var componentModule = entryPoint.root.getModuleIfRequired();\n      if (componentModule == null) {\n        var _loadingPromise;\n        loadingPromise = (_loadingPromise = loadingPromise) !== null && _loadingPromise !== void 0 ? _loadingPromise : entryPoint.root.load();\n        throw loadingPromise;\n      }\n      var component = componentModule[\"default\"] != null ? componentModule[\"default\"] : componentModule;\n      return component;\n    },\n    get isDisposed() {\n      return isDisposed;\n    },\n    queries: preloadedQueries,\n    rootModuleID: entryPoint.root.getModuleId()\n  };\n}\nmodule.exports = loadEntryPoint;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar invariant = require('invariant');\nvar React = require('react');\nvar _require = require('relay-runtime'),\n  fetchQueryDeduped = _require.__internal.fetchQueryDeduped,\n  Observable = _require.Observable,\n  PreloadableQueryRegistry = _require.PreloadableQueryRegistry,\n  RelayFeatureFlags = _require.RelayFeatureFlags,\n  ReplaySubject = _require.ReplaySubject,\n  createOperationDescriptor = _require.createOperationDescriptor,\n  getRequest = _require.getRequest,\n  getRequestIdentifier = _require.getRequestIdentifier;\nvar warning = require(\"fbjs/lib/warning\");\nvar RenderDispatcher = null;\nvar fetchKey = 100001;\nfunction useTrackLoadQueryInRender() {\n  if (RenderDispatcher === null) {\n    var _React$__SECRET_INTER, _React$__SECRET_INTER2;\n    RenderDispatcher = (_React$__SECRET_INTER = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === null || _React$__SECRET_INTER === void 0 ? void 0 : (_React$__SECRET_INTER2 = _React$__SECRET_INTER.ReactCurrentDispatcher) === null || _React$__SECRET_INTER2 === void 0 ? void 0 : _React$__SECRET_INTER2.current;\n  }\n}\nfunction loadQuery(environment, preloadableRequest, variables, options, environmentProviderOptions) {\n  var _React$__SECRET_INTER3, _React$__SECRET_INTER4, _options$__nameForWar, _options$fetchPolicy;\n  var CurrentDispatcher = (_React$__SECRET_INTER3 = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === null || _React$__SECRET_INTER3 === void 0 ? void 0 : (_React$__SECRET_INTER4 = _React$__SECRET_INTER3.ReactCurrentDispatcher) === null || _React$__SECRET_INTER4 === void 0 ? void 0 : _React$__SECRET_INTER4.current;\n  process.env.NODE_ENV !== \"production\" ? warning(RenderDispatcher == null || CurrentDispatcher !== RenderDispatcher, 'Relay: `%s` should not be called inside a React render function.', (_options$__nameForWar = options === null || options === void 0 ? void 0 : options.__nameForWarning) !== null && _options$__nameForWar !== void 0 ? _options$__nameForWar : 'loadQuery') : void 0;\n  fetchKey++;\n  var fetchPolicy = (_options$fetchPolicy = options === null || options === void 0 ? void 0 : options.fetchPolicy) !== null && _options$fetchPolicy !== void 0 ? _options$fetchPolicy : 'store-or-network';\n  var networkCacheConfig = (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, options === null || options === void 0 ? void 0 : options.networkCacheConfig), {}, {\n    force: true\n  });\n  var retainReference;\n  var didExecuteNetworkSource = false;\n  var executeWithNetworkSource = function executeWithNetworkSource(operation, networkObservable) {\n    didExecuteNetworkSource = true;\n    return environment.executeWithSource({\n      operation: operation,\n      source: networkObservable\n    });\n  };\n  var executionSubject = new ReplaySubject();\n  var returnedObservable = Observable.create(function (sink) {\n    return executionSubject.subscribe(sink);\n  });\n  var unsubscribeFromNetworkRequest;\n  var networkError = null;\n  var didMakeNetworkRequest = false;\n  var makeNetworkRequest = function makeNetworkRequest(params) {\n    didMakeNetworkRequest = true;\n    var observable;\n    var subject = new ReplaySubject();\n    if (RelayFeatureFlags.ENABLE_LOAD_QUERY_REQUEST_DEDUPING === true) {\n      var identifier = 'raw-network-request-' + getRequestIdentifier(params, variables);\n      observable = fetchQueryDeduped(environment, identifier, function () {\n        var network = environment.getNetwork();\n        return network.execute(params, variables, networkCacheConfig);\n      });\n    } else {\n      var network = environment.getNetwork();\n      observable = network.execute(params, variables, networkCacheConfig);\n    }\n    var _observable$subscribe = observable.subscribe({\n        error: function error(err) {\n          networkError = err;\n          subject.error(err);\n        },\n        next: function next(data) {\n          subject.next(data);\n        },\n        complete: function complete() {\n          subject.complete();\n        }\n      }),\n      unsubscribe = _observable$subscribe.unsubscribe;\n    unsubscribeFromNetworkRequest = unsubscribe;\n    return Observable.create(function (sink) {\n      var subjectSubscription = subject.subscribe(sink);\n      return function () {\n        subjectSubscription.unsubscribe();\n        unsubscribeFromNetworkRequest();\n      };\n    });\n  };\n  var unsubscribeFromExecution;\n  var executeDeduped = function executeDeduped(operation, fetchFn) {\n    if (RelayFeatureFlags.ENABLE_LOAD_QUERY_REQUEST_DEDUPING === true) {\n      didMakeNetworkRequest = true;\n    }\n    var _fetchQueryDeduped$su = fetchQueryDeduped(environment, operation.request.identifier, fetchFn).subscribe({\n      error: function error(err) {\n        executionSubject.error(err);\n      },\n      next: function next(data) {\n        executionSubject.next(data);\n      },\n      complete: function complete() {\n        executionSubject.complete();\n      }\n    });\n    unsubscribeFromExecution = _fetchQueryDeduped$su.unsubscribe;\n  };\n  var checkAvailabilityAndExecute = function checkAvailabilityAndExecute(concreteRequest) {\n    var operation = createOperationDescriptor(concreteRequest, variables, networkCacheConfig);\n    retainReference = environment.retain(operation);\n    if (fetchPolicy === 'store-only') {\n      return;\n    }\n    var shouldFetch = fetchPolicy !== 'store-or-network' || environment.check(operation).status !== 'available';\n    if (shouldFetch) {\n      executeDeduped(operation, function () {\n        var networkObservable = makeNetworkRequest(concreteRequest.params);\n        var executeObservable = executeWithNetworkSource(operation, networkObservable);\n        return executeObservable;\n      });\n    }\n  };\n  var params;\n  var cancelOnLoadCallback;\n  var queryId;\n  if (preloadableRequest.kind === 'PreloadableConcreteRequest') {\n    var preloadableConcreteRequest = preloadableRequest;\n    params = preloadableConcreteRequest.params;\n    var _params = params;\n    queryId = _params.id;\n    !(queryId !== null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: `loadQuery` requires that preloadable query `%s` has a persisted query id', params.name) : invariant(false) : void 0;\n    var _module = PreloadableQueryRegistry.get(queryId);\n    if (_module != null) {\n      checkAvailabilityAndExecute(_module);\n    } else {\n      var networkObservable = fetchPolicy === 'store-only' ? null : makeNetworkRequest(params);\n      var _PreloadableQueryRegi = PreloadableQueryRegistry.onLoad(queryId, function (preloadedModule) {\n        cancelOnLoadCallback();\n        var operation = createOperationDescriptor(preloadedModule, variables, networkCacheConfig);\n        retainReference = environment.retain(operation);\n        if (networkObservable != null) {\n          executeDeduped(operation, function () {\n            return executeWithNetworkSource(operation, networkObservable);\n          });\n        }\n      });\n      cancelOnLoadCallback = _PreloadableQueryRegi.dispose;\n    }\n  } else {\n    var graphQlTaggedNode = preloadableRequest;\n    var request = getRequest(graphQlTaggedNode);\n    params = request.params;\n    queryId = params.cacheID != null ? params.cacheID : params.id;\n    checkAvailabilityAndExecute(request);\n  }\n  var isDisposed = false;\n  var isReleased = false;\n  var isNetworkRequestCancelled = false;\n  var releaseQuery = function releaseQuery() {\n    if (isReleased) {\n      return;\n    }\n    retainReference && retainReference.dispose();\n    isReleased = true;\n  };\n  var cancelNetworkRequest = function cancelNetworkRequest() {\n    if (isNetworkRequestCancelled) {\n      return;\n    }\n    if (didExecuteNetworkSource) {\n      unsubscribeFromExecution && unsubscribeFromExecution();\n    } else {\n      unsubscribeFromNetworkRequest && unsubscribeFromNetworkRequest();\n    }\n    cancelOnLoadCallback && cancelOnLoadCallback();\n    isNetworkRequestCancelled = true;\n  };\n  return {\n    kind: 'PreloadedQuery',\n    environment: environment,\n    environmentProviderOptions: environmentProviderOptions,\n    dispose: function dispose() {\n      if (isDisposed) {\n        return;\n      }\n      releaseQuery();\n      cancelNetworkRequest();\n      isDisposed = true;\n    },\n    releaseQuery: releaseQuery,\n    cancelNetworkRequest: cancelNetworkRequest,\n    fetchKey: fetchKey,\n    id: queryId,\n    get isDisposed() {\n      return isDisposed || isReleased;\n    },\n    get networkError() {\n      return networkError;\n    },\n    name: params.name,\n    networkCacheConfig: networkCacheConfig,\n    fetchPolicy: fetchPolicy,\n    source: didMakeNetworkRequest ? returnedObservable : undefined,\n    variables: variables\n  };\n}\nmodule.exports = {\n  loadQuery: loadQuery,\n  useTrackLoadQueryInRender: useTrackLoadQueryInRender\n};","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar useLazyLoadQuery = require('./useLazyLoadQuery');\nfunction useClientQuery(gqlQuery, variables, options) {\n  var query = gqlQuery;\n  return useLazyLoadQuery(query, variables, (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, options), {}, {\n    fetchPolicy: 'store-only'\n  }));\n}\nmodule.exports = useClientQuery;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\nvar loadEntryPoint = require('./loadEntryPoint');\nvar _require = require('./loadQuery'),\n  useTrackLoadQueryInRender = _require.useTrackLoadQueryInRender;\nvar useIsMountedRef = require('./useIsMountedRef');\nvar _require2 = require('react'),\n  useCallback = _require2.useCallback,\n  useEffect = _require2.useEffect,\n  useRef = _require2.useRef,\n  useState = _require2.useState;\nvar initialNullEntryPointReferenceState = {\n  kind: 'NullEntryPointReference'\n};\nfunction useLoadEntryPoint(environmentProvider, entryPoint, options) {\n  var _options$TEST_ONLY__i, _options$TEST_ONLY__i2, _options$TEST_ONLY__i3, _options$TEST_ONLY__i4;\n  useTrackLoadQueryInRender();\n  var initialEntryPointReferenceInternal = (_options$TEST_ONLY__i = options === null || options === void 0 ? void 0 : (_options$TEST_ONLY__i2 = options.TEST_ONLY__initialEntryPointData) === null || _options$TEST_ONLY__i2 === void 0 ? void 0 : _options$TEST_ONLY__i2.entryPointReference) !== null && _options$TEST_ONLY__i !== void 0 ? _options$TEST_ONLY__i : initialNullEntryPointReferenceState;\n  var initialEntryPointParamsInternal = (_options$TEST_ONLY__i3 = options === null || options === void 0 ? void 0 : (_options$TEST_ONLY__i4 = options.TEST_ONLY__initialEntryPointData) === null || _options$TEST_ONLY__i4 === void 0 ? void 0 : _options$TEST_ONLY__i4.entryPointParams) !== null && _options$TEST_ONLY__i3 !== void 0 ? _options$TEST_ONLY__i3 : null;\n  var isMountedRef = useIsMountedRef();\n  var undisposedEntryPointReferencesRef = useRef(new Set([initialEntryPointReferenceInternal]));\n  var _useState = useState(initialEntryPointReferenceInternal),\n    entryPointReference = _useState[0],\n    setEntryPointReference = _useState[1];\n  var _useState2 = useState(initialEntryPointParamsInternal),\n    entryPointParams = _useState2[0],\n    setEntryPointParams = _useState2[1];\n  var disposeEntryPoint = useCallback(function () {\n    if (isMountedRef.current) {\n      var nullEntryPointReference = {\n        kind: 'NullEntryPointReference'\n      };\n      undisposedEntryPointReferencesRef.current.add(nullEntryPointReference);\n      setEntryPointReference(nullEntryPointReference);\n    }\n  }, [setEntryPointReference, isMountedRef]);\n  var entryPointLoaderCallback = useCallback(function (params) {\n    if (isMountedRef.current) {\n      var updatedEntryPointReference = loadEntryPoint(environmentProvider, entryPoint, params);\n      undisposedEntryPointReferencesRef.current.add(updatedEntryPointReference);\n      setEntryPointReference(updatedEntryPointReference);\n      setEntryPointParams(params);\n    }\n  }, [environmentProvider, entryPoint, setEntryPointReference, isMountedRef]);\n  var maybeHiddenOrFastRefresh = useRef(false);\n  useEffect(function () {\n    return function () {\n      maybeHiddenOrFastRefresh.current = true;\n    };\n  }, []);\n  useEffect(function () {\n    if (maybeHiddenOrFastRefresh.current === true) {\n      maybeHiddenOrFastRefresh.current = false;\n      if (entryPointReference.kind !== 'NullEntryPointReference' && entryPointParams != null) {\n        entryPointLoaderCallback(entryPointParams);\n      }\n      return;\n    }\n    var undisposedEntryPointReferences = undisposedEntryPointReferencesRef.current;\n    if (isMountedRef.current) {\n      var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(undisposedEntryPointReferences),\n        _step;\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var undisposedEntryPointReference = _step.value;\n          if (undisposedEntryPointReference === entryPointReference) {\n            break;\n          }\n          undisposedEntryPointReferences[\"delete\"](undisposedEntryPointReference);\n          if (undisposedEntryPointReference.kind !== 'NullEntryPointReference') {\n            undisposedEntryPointReference.dispose();\n          }\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n    }\n  }, [entryPointReference, entryPointParams, entryPointLoaderCallback, isMountedRef]);\n  useEffect(function () {\n    return function disposeAllRemainingEntryPointReferences() {\n      var _iterator2 = (0, _createForOfIteratorHelper2[\"default\"])(undisposedEntryPointReferencesRef.current),\n        _step2;\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var unhandledStateChange = _step2.value;\n          if (unhandledStateChange.kind !== 'NullEntryPointReference') {\n            unhandledStateChange.dispose();\n          }\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n    };\n  }, []);\n  return [entryPointReference.kind === 'NullEntryPointReference' ? null : entryPointReference, entryPointLoaderCallback, disposeEntryPoint];\n}\nmodule.exports = useLoadEntryPoint;","'use strict';\n\nvar useUnsafeRef_DEPRECATED = require('./useUnsafeRef_DEPRECATED');\nvar _require = require('react'),\n  useCallback = _require.useCallback,\n  useEffect = _require.useEffect;\nfunction useFetchTrackingRef() {\n  var subscriptionRef = useUnsafeRef_DEPRECATED(null);\n  var isFetchingRef = useUnsafeRef_DEPRECATED(false);\n  var disposeFetch = useCallback(function () {\n    if (subscriptionRef.current != null) {\n      subscriptionRef.current.unsubscribe();\n      subscriptionRef.current = null;\n    }\n    isFetchingRef.current = false;\n  }, []);\n  var startFetch = useCallback(function (subscription) {\n    subscriptionRef.current = subscription;\n    isFetchingRef.current = true;\n  }, []);\n  var completeFetch = useCallback(function () {\n    subscriptionRef.current = null;\n    isFetchingRef.current = false;\n  }, []);\n  useEffect(function () {\n    return disposeFetch;\n  }, [disposeFetch]);\n  return {\n    isFetchingRef: isFetchingRef,\n    startFetch: startFetch,\n    disposeFetch: disposeFetch,\n    completeFetch: completeFetch\n  };\n}\nmodule.exports = useFetchTrackingRef;","'use strict';\n\nvar HooksImplementation = require('./HooksImplementation');\nvar useFragmentNode = require('./legacy/useFragmentNode');\nvar _require = require('./loadQuery'),\n  useTrackLoadQueryInRender = _require.useTrackLoadQueryInRender;\nvar useStaticFragmentNodeWarning = require('./useStaticFragmentNodeWarning');\nvar _require2 = require('react'),\n  useDebugValue = _require2.useDebugValue;\nvar _require3 = require('relay-runtime'),\n  getFragment = _require3.getFragment;\nfunction useFragment_LEGACY(fragment, key) {\n  useTrackLoadQueryInRender();\n  var fragmentNode = getFragment(fragment);\n  useStaticFragmentNodeWarning(fragmentNode, 'first argument of useFragment()');\n  var _useFragmentNode = useFragmentNode(fragmentNode, key, 'useFragment()'),\n    data = _useFragmentNode.data;\n  if (process.env.NODE_ENV !== \"production\") {\n    useDebugValue({\n      fragment: fragmentNode.name,\n      data: data\n    });\n  }\n  return data;\n}\nfunction useFragment(fragment, key) {\n  var impl = HooksImplementation.get();\n  if (impl) {\n    return impl.useFragment(fragment, key);\n  } else {\n    return useFragment_LEGACY(fragment, key);\n  }\n}\nmodule.exports = useFragment;","'use strict';\n\nvar _require = require('react'),\n  useEffect = _require.useEffect,\n  useRef = _require.useRef;\nfunction useIsMountedRef() {\n  var isMountedRef = useRef(true);\n  useEffect(function () {\n    isMountedRef.current = true;\n    return function () {\n      isMountedRef.current = false;\n    };\n  }, []);\n  return isMountedRef;\n}\nmodule.exports = useIsMountedRef;","'use strict';\n\nvar useRelayEnvironment = require('./useRelayEnvironment');\nvar invariant = require('invariant');\nvar React = require('react');\nvar _require = require('relay-runtime'),\n  getObservableForActiveRequest = _require.__internal.getObservableForActiveRequest,\n  getSelector = _require.getSelector;\nvar useEffect = React.useEffect,\n  useState = React.useState,\n  useMemo = React.useMemo;\nfunction useIsOperationNodeActive(fragmentNode, fragmentRef) {\n  var environment = useRelayEnvironment();\n  var observable = useMemo(function () {\n    var selector = getSelector(fragmentNode, fragmentRef);\n    if (selector == null) {\n      return null;\n    }\n    !(selector.kind === 'SingularReaderSelector') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'useIsOperationNodeActive: Plural fragments are not supported.') : invariant(false) : void 0;\n    return getObservableForActiveRequest(environment, selector.owner);\n  }, [environment, fragmentNode, fragmentRef]);\n  var _useState = useState(observable != null),\n    isActive = _useState[0],\n    setIsActive = _useState[1];\n  useEffect(function () {\n    var subscription;\n    setIsActive(observable != null);\n    if (observable != null) {\n      var onCompleteOrError = function onCompleteOrError() {\n        setIsActive(false);\n      };\n      subscription = observable.subscribe({\n        complete: onCompleteOrError,\n        error: onCompleteOrError\n      });\n    }\n    return function () {\n      if (subscription) {\n        subscription.unsubscribe();\n      }\n    };\n  }, [observable]);\n  return isActive;\n}\nmodule.exports = useIsOperationNodeActive;","'use strict';\n\nvar _require = require('./loadQuery'),\n  useTrackLoadQueryInRender = _require.useTrackLoadQueryInRender;\nvar useLazyLoadQueryNode = require('./useLazyLoadQueryNode');\nvar useMemoOperationDescriptor = require('./useMemoOperationDescriptor');\nvar useRelayEnvironment = require('./useRelayEnvironment');\nvar _require2 = require('relay-runtime'),\n  fetchQuery = _require2.__internal.fetchQuery;\nfunction useLazyLoadQuery(gqlQuery, variables, options) {\n  useTrackLoadQueryInRender();\n  var environment = useRelayEnvironment();\n  var query = useMemoOperationDescriptor(gqlQuery, variables, options && options.networkCacheConfig ? options.networkCacheConfig : {\n    force: true\n  });\n  var data = useLazyLoadQueryNode({\n    componentDisplayName: 'useLazyLoadQuery()',\n    fetchKey: options === null || options === void 0 ? void 0 : options.fetchKey,\n    fetchObservable: fetchQuery(environment, query),\n    fetchPolicy: options === null || options === void 0 ? void 0 : options.fetchPolicy,\n    query: query,\n    renderPolicy: options === null || options === void 0 ? void 0 : options.UNSTABLE_renderPolicy\n  });\n  return data;\n}\nmodule.exports = useLazyLoadQuery;","'use strict';\n\nvar HooksImplementation = require('./HooksImplementation');\nvar useFragmentNode = require('./legacy/useFragmentNode');\nvar ProfilerContext = require('./ProfilerContext');\nvar _require = require('./QueryResource'),\n  getQueryCacheIdentifier = _require.getQueryCacheIdentifier,\n  getQueryResourceForEnvironment = _require.getQueryResourceForEnvironment;\nvar useFetchTrackingRef = require('./useFetchTrackingRef');\nvar useRelayEnvironment = require('./useRelayEnvironment');\nvar React = require('react');\nvar useContext = React.useContext,\n  useEffect = React.useEffect,\n  useState = React.useState,\n  useRef = React.useRef;\nfunction useLazyLoadQueryNode(_ref) {\n  var query = _ref.query,\n    componentDisplayName = _ref.componentDisplayName,\n    fetchObservable = _ref.fetchObservable,\n    fetchPolicy = _ref.fetchPolicy,\n    fetchKey = _ref.fetchKey,\n    renderPolicy = _ref.renderPolicy;\n  var environment = useRelayEnvironment();\n  var profilerContext = useContext(ProfilerContext);\n  var QueryResource = getQueryResourceForEnvironment(environment);\n  var _useState = useState(0),\n    forceUpdateKey = _useState[0],\n    forceUpdate = _useState[1];\n  var _useFetchTrackingRef = useFetchTrackingRef(),\n    startFetch = _useFetchTrackingRef.startFetch,\n    completeFetch = _useFetchTrackingRef.completeFetch;\n  var cacheBreaker = \"\".concat(forceUpdateKey, \"-\").concat(fetchKey !== null && fetchKey !== void 0 ? fetchKey : '');\n  var cacheIdentifier = getQueryCacheIdentifier(environment, query, fetchPolicy, renderPolicy, cacheBreaker);\n  var preparedQueryResult = profilerContext.wrapPrepareQueryResource(function () {\n    return QueryResource.prepareWithIdentifier(cacheIdentifier, query, fetchObservable, fetchPolicy, renderPolicy, {\n      start: startFetch,\n      complete: completeFetch,\n      error: completeFetch\n    }, profilerContext);\n  });\n  var maybeHiddenOrFastRefresh = useRef(false);\n  useEffect(function () {\n    return function () {\n      maybeHiddenOrFastRefresh.current = true;\n    };\n  }, []);\n  useEffect(function () {\n    if (maybeHiddenOrFastRefresh.current === true) {\n      maybeHiddenOrFastRefresh.current = false;\n      forceUpdate(function (n) {\n        return n + 1;\n      });\n      return;\n    }\n    var disposable = QueryResource.retain(preparedQueryResult, profilerContext);\n    return function () {\n      disposable.dispose();\n    };\n  }, [environment, cacheIdentifier]);\n  useEffect(function () {\n    QueryResource.releaseTemporaryRetain(preparedQueryResult);\n  });\n  var fragmentNode = preparedQueryResult.fragmentNode,\n    fragmentRef = preparedQueryResult.fragmentRef;\n  var data = useFragmentNodeImpl(fragmentNode, fragmentRef, componentDisplayName);\n  return data;\n}\nfunction useFragmentNodeImpl(fragment, key, componentDisplayName) {\n  var impl = HooksImplementation.get();\n  if (impl && impl.useFragment__internal) {\n    return impl.useFragment__internal(fragment, key, componentDisplayName);\n  } else {\n    var _useFragmentNode = useFragmentNode(fragment, key, componentDisplayName),\n      data = _useFragmentNode.data;\n    return data;\n  }\n}\nmodule.exports = useLazyLoadQueryNode;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar useFetchTrackingRef = require('./useFetchTrackingRef');\nvar useIsMountedRef = require('./useIsMountedRef');\nvar useIsOperationNodeActive = require('./useIsOperationNodeActive');\nvar useRelayEnvironment = require('./useRelayEnvironment');\nvar invariant = require('invariant');\nvar _require = require('react'),\n  useCallback = _require.useCallback,\n  useEffect = _require.useEffect,\n  useState = _require.useState;\nvar _require2 = require('relay-runtime'),\n  fetchQuery = _require2.__internal.fetchQuery,\n  ConnectionInterface = _require2.ConnectionInterface,\n  createOperationDescriptor = _require2.createOperationDescriptor,\n  getPaginationVariables = _require2.getPaginationVariables,\n  getRefetchMetadata = _require2.getRefetchMetadata,\n  getSelector = _require2.getSelector,\n  getValueAtPath = _require2.getValueAtPath;\nvar warning = require(\"fbjs/lib/warning\");\nfunction useLoadMoreFunction(args) {\n  var direction = args.direction,\n    fragmentNode = args.fragmentNode,\n    fragmentRef = args.fragmentRef,\n    fragmentIdentifier = args.fragmentIdentifier,\n    fragmentData = args.fragmentData,\n    connectionPathInFragmentData = args.connectionPathInFragmentData,\n    paginationRequest = args.paginationRequest,\n    paginationMetadata = args.paginationMetadata,\n    componentDisplayName = args.componentDisplayName,\n    observer = args.observer,\n    onReset = args.onReset;\n  var environment = useRelayEnvironment();\n  var _useFetchTrackingRef = useFetchTrackingRef(),\n    isFetchingRef = _useFetchTrackingRef.isFetchingRef,\n    startFetch = _useFetchTrackingRef.startFetch,\n    disposeFetch = _useFetchTrackingRef.disposeFetch,\n    completeFetch = _useFetchTrackingRef.completeFetch;\n  var _getRefetchMetadata = getRefetchMetadata(fragmentNode, componentDisplayName),\n    identifierInfo = _getRefetchMetadata.identifierInfo;\n  var identifierValue = (identifierInfo === null || identifierInfo === void 0 ? void 0 : identifierInfo.identifierField) != null && fragmentData != null && typeof fragmentData === 'object' ? fragmentData[identifierInfo.identifierField] : null;\n  var isMountedRef = useIsMountedRef();\n  var _useState = useState(environment),\n    mirroredEnvironment = _useState[0],\n    setMirroredEnvironment = _useState[1];\n  var _useState2 = useState(fragmentIdentifier),\n    mirroredFragmentIdentifier = _useState2[0],\n    setMirroredFragmentIdentifier = _useState2[1];\n  var isParentQueryActive = useIsOperationNodeActive(fragmentNode, fragmentRef);\n  var shouldReset = environment !== mirroredEnvironment || fragmentIdentifier !== mirroredFragmentIdentifier;\n  if (shouldReset) {\n    disposeFetch();\n    onReset();\n    setMirroredEnvironment(environment);\n    setMirroredFragmentIdentifier(fragmentIdentifier);\n  }\n  var _getConnectionState = getConnectionState(direction, fragmentNode, fragmentData, connectionPathInFragmentData),\n    cursor = _getConnectionState.cursor,\n    hasMore = _getConnectionState.hasMore;\n  useEffect(function () {\n    return function () {\n      disposeFetch();\n    };\n  }, [disposeFetch]);\n  var loadMore = useCallback(function (count, options) {\n    var onComplete = options === null || options === void 0 ? void 0 : options.onComplete;\n    if (isMountedRef.current !== true) {\n      process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Unexpected fetch on unmounted component for fragment ' + '`%s` in `%s`. It looks like some instances of your component are ' + 'still trying to fetch data but they already unmounted. ' + 'Please make sure you clear all timers, intervals, ' + 'async calls, etc that may trigger a fetch.', fragmentNode.name, componentDisplayName) : void 0;\n      return {\n        dispose: function dispose() {}\n      };\n    }\n    var fragmentSelector = getSelector(fragmentNode, fragmentRef);\n    if (isFetchingRef.current === true || fragmentData == null || isParentQueryActive) {\n      if (fragmentSelector == null) {\n        process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Unexpected fetch while using a null fragment ref ' + 'for fragment `%s` in `%s`. When fetching more items, we expect ' + \"initial fragment data to be non-null. Please make sure you're \" + 'passing a valid fragment ref to `%s` before paginating.', fragmentNode.name, componentDisplayName, componentDisplayName) : void 0;\n      }\n      if (onComplete) {\n        onComplete(null);\n      }\n      return {\n        dispose: function dispose() {}\n      };\n    }\n    !(fragmentSelector != null && fragmentSelector.kind !== 'PluralReaderSelector') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected to be able to find a non-plural fragment owner for ' + \"fragment `%s` when using `%s`. If you're seeing this, \" + 'this is likely a bug in Relay.', fragmentNode.name, componentDisplayName) : invariant(false) : void 0;\n    var parentVariables = fragmentSelector.owner.variables;\n    var fragmentVariables = fragmentSelector.variables;\n    var extraVariables = options === null || options === void 0 ? void 0 : options.UNSTABLE_extraVariables;\n    var baseVariables = (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, parentVariables), fragmentVariables);\n    var paginationVariables = getPaginationVariables(direction, count, cursor, baseVariables, (0, _objectSpread2[\"default\"])({}, extraVariables), paginationMetadata);\n    if (identifierInfo != null) {\n      if (typeof identifierValue !== 'string') {\n        process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Expected result to have a string  ' + '`%s` in order to refetch, got `%s`.', identifierInfo.identifierField, identifierValue) : void 0;\n      }\n      paginationVariables[identifierInfo.identifierQueryVariableName] = identifierValue;\n    }\n    var paginationQuery = createOperationDescriptor(paginationRequest, paginationVariables, {\n      force: true\n    });\n    fetchQuery(environment, paginationQuery).subscribe((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, observer), {}, {\n      start: function start(subscription) {\n        startFetch(subscription);\n        observer.start && observer.start(subscription);\n      },\n      complete: function complete() {\n        completeFetch();\n        observer.complete && observer.complete();\n        onComplete && onComplete(null);\n      },\n      error: function error(_error) {\n        completeFetch();\n        observer.error && observer.error(_error);\n        onComplete && onComplete(_error);\n      }\n    }));\n    return {\n      dispose: disposeFetch\n    };\n  }, [environment, identifierValue, direction, cursor, startFetch, disposeFetch, completeFetch, isFetchingRef, isParentQueryActive, fragmentData, fragmentNode.name, fragmentRef, componentDisplayName]);\n  return [loadMore, hasMore, disposeFetch];\n}\nfunction getConnectionState(direction, fragmentNode, fragmentData, connectionPathInFragmentData) {\n  var _pageInfo$END_CURSOR, _pageInfo$START_CURSO;\n  var _ConnectionInterface$ = ConnectionInterface.get(),\n    EDGES = _ConnectionInterface$.EDGES,\n    PAGE_INFO = _ConnectionInterface$.PAGE_INFO,\n    HAS_NEXT_PAGE = _ConnectionInterface$.HAS_NEXT_PAGE,\n    HAS_PREV_PAGE = _ConnectionInterface$.HAS_PREV_PAGE,\n    END_CURSOR = _ConnectionInterface$.END_CURSOR,\n    START_CURSOR = _ConnectionInterface$.START_CURSOR;\n  var connection = getValueAtPath(fragmentData, connectionPathInFragmentData);\n  if (connection == null) {\n    return {\n      cursor: null,\n      hasMore: false\n    };\n  }\n  !(typeof connection === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected connection in fragment `%s` to have been `null`, or ' + 'a plain object with %s and %s properties. Instead got `%s`.', fragmentNode.name, EDGES, PAGE_INFO, connection) : invariant(false) : void 0;\n  var edges = connection[EDGES];\n  var pageInfo = connection[PAGE_INFO];\n  if (edges == null || pageInfo == null) {\n    return {\n      cursor: null,\n      hasMore: false\n    };\n  }\n  !Array.isArray(edges) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected connection in fragment `%s` to have a plural `%s` field. ' + 'Instead got `%s`.', fragmentNode.name, EDGES, edges) : invariant(false) : void 0;\n  !(typeof pageInfo === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected connection in fragment `%s` to have a `%s` field. ' + 'Instead got `%s`.', fragmentNode.name, PAGE_INFO, pageInfo) : invariant(false) : void 0;\n  var cursor = direction === 'forward' ? (_pageInfo$END_CURSOR = pageInfo[END_CURSOR]) !== null && _pageInfo$END_CURSOR !== void 0 ? _pageInfo$END_CURSOR : null : (_pageInfo$START_CURSO = pageInfo[START_CURSOR]) !== null && _pageInfo$START_CURSO !== void 0 ? _pageInfo$START_CURSO : null;\n  !(cursor === null || typeof cursor === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected page info for connection in fragment `%s` to have a ' + 'valid `%s`. Instead got `%s`.', fragmentNode.name, START_CURSOR, cursor) : invariant(false) : void 0;\n  var hasMore;\n  if (direction === 'forward') {\n    hasMore = cursor != null && pageInfo[HAS_NEXT_PAGE] === true;\n  } else {\n    hasMore = cursor != null && pageInfo[HAS_PREV_PAGE] === true;\n  }\n  return {\n    cursor: cursor,\n    hasMore: hasMore\n  };\n}\nmodule.exports = useLoadMoreFunction;","'use strict';\n\nvar useMemoVariables = require('./useMemoVariables');\nvar React = require('react');\nvar _require = require('relay-runtime'),\n  createOperationDescriptor = _require.createOperationDescriptor,\n  getRequest = _require.getRequest;\nvar useMemo = React.useMemo;\nfunction useMemoOperationDescriptor(gqlQuery, variables, cacheConfig) {\n  var memoVariables = useMemoVariables(variables);\n  var memoCacheConfig = useMemoVariables(cacheConfig || {});\n  return useMemo(function () {\n    return createOperationDescriptor(getRequest(gqlQuery), memoVariables, memoCacheConfig);\n  }, [gqlQuery, memoVariables, memoCacheConfig]);\n}\nmodule.exports = useMemoOperationDescriptor;","'use strict';\n\nvar areEqual = require(\"fbjs/lib/areEqual\");\nvar _require = require('react'),\n  useState = _require.useState;\nfunction useMemoVariables(variables) {\n  var _useState = useState(variables),\n    mirroredVariables = _useState[0],\n    setMirroredVariables = _useState[1];\n  if (areEqual(variables, mirroredVariables)) {\n    return mirroredVariables;\n  } else {\n    setMirroredVariables(variables);\n    return variables;\n  }\n}\nmodule.exports = useMemoVariables;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar useIsMountedRef = require('./useIsMountedRef');\nvar useRelayEnvironment = require('./useRelayEnvironment');\nvar React = require('react');\nvar _require = require('relay-runtime'),\n  defaultCommitMutation = _require.commitMutation;\nvar useState = React.useState,\n  useEffect = React.useEffect,\n  useRef = React.useRef,\n  useCallback = React.useCallback;\nfunction useMutation(mutation) {\n  var commitMutationFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultCommitMutation;\n  var environment = useRelayEnvironment();\n  var isMountedRef = useIsMountedRef();\n  var environmentRef = useRef(environment);\n  var mutationRef = useRef(mutation);\n  var inFlightMutationsRef = useRef(new Set());\n  var _useState = useState(false),\n    isMutationInFlight = _useState[0],\n    setMutationInFlight = _useState[1];\n  var cleanup = useCallback(function (disposable) {\n    if (environmentRef.current === environment && mutationRef.current === mutation) {\n      inFlightMutationsRef.current[\"delete\"](disposable);\n      if (isMountedRef.current) {\n        setMutationInFlight(inFlightMutationsRef.current.size > 0);\n      }\n    }\n  }, [environment, isMountedRef, mutation]);\n  useEffect(function () {\n    if (environmentRef.current !== environment || mutationRef.current !== mutation) {\n      inFlightMutationsRef.current = new Set();\n      if (isMountedRef.current) {\n        setMutationInFlight(false);\n      }\n      environmentRef.current = environment;\n      mutationRef.current = mutation;\n    }\n  }, [environment, isMountedRef, mutation]);\n  var commit = useCallback(function (config) {\n    if (isMountedRef.current) {\n      setMutationInFlight(true);\n    }\n    var disposable = commitMutationFn(environment, (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, config), {}, {\n      mutation: mutation,\n      onCompleted: function onCompleted(response, errors) {\n        var _config$onCompleted;\n        cleanup(disposable);\n        (_config$onCompleted = config.onCompleted) === null || _config$onCompleted === void 0 ? void 0 : _config$onCompleted.call(config, response, errors);\n      },\n      onError: function onError(error) {\n        var _config$onError;\n        cleanup(disposable);\n        (_config$onError = config.onError) === null || _config$onError === void 0 ? void 0 : _config$onError.call(config, error);\n      },\n      onUnsubscribe: function onUnsubscribe() {\n        var _config$onUnsubscribe;\n        cleanup(disposable);\n        (_config$onUnsubscribe = config.onUnsubscribe) === null || _config$onUnsubscribe === void 0 ? void 0 : _config$onUnsubscribe.call(config);\n      },\n      onNext: function onNext() {\n        var _config$onNext;\n        (_config$onNext = config.onNext) === null || _config$onNext === void 0 ? void 0 : _config$onNext.call(config);\n      }\n    }));\n    inFlightMutationsRef.current.add(disposable);\n    return disposable;\n  }, [cleanup, commitMutationFn, environment, isMountedRef, mutation]);\n  return [commit, isMutationInFlight];\n}\nmodule.exports = useMutation;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar HooksImplementation = require('./HooksImplementation');\nvar useRefetchableFragmentNode = require('./legacy/useRefetchableFragmentNode');\nvar useLoadMoreFunction = require('./useLoadMoreFunction');\nvar useStaticFragmentNodeWarning = require('./useStaticFragmentNodeWarning');\nvar _require = require('react'),\n  useCallback = _require.useCallback,\n  useDebugValue = _require.useDebugValue,\n  useState = _require.useState;\nvar _require2 = require('relay-runtime'),\n  getFragment = _require2.getFragment,\n  getFragmentIdentifier = _require2.getFragmentIdentifier,\n  getPaginationMetadata = _require2.getPaginationMetadata;\nfunction usePaginationFragment_LEGACY(fragmentInput, parentFragmentRef) {\n  var fragmentNode = getFragment(fragmentInput);\n  useStaticFragmentNodeWarning(fragmentNode, 'first argument of usePaginationFragment()');\n  var componentDisplayName = 'usePaginationFragment()';\n  var _getPaginationMetadat = getPaginationMetadata(fragmentNode, componentDisplayName),\n    connectionPathInFragmentData = _getPaginationMetadat.connectionPathInFragmentData,\n    paginationRequest = _getPaginationMetadat.paginationRequest,\n    paginationMetadata = _getPaginationMetadat.paginationMetadata;\n  var _useRefetchableFragme = useRefetchableFragmentNode(fragmentNode, parentFragmentRef, componentDisplayName),\n    fragmentData = _useRefetchableFragme.fragmentData,\n    fragmentRef = _useRefetchableFragme.fragmentRef,\n    refetch = _useRefetchableFragme.refetch;\n  var fragmentIdentifier = getFragmentIdentifier(fragmentNode, fragmentRef);\n  var _useLoadMore = useLoadMore({\n      componentDisplayName: componentDisplayName,\n      connectionPathInFragmentData: connectionPathInFragmentData,\n      direction: 'backward',\n      fragmentData: fragmentData,\n      fragmentIdentifier: fragmentIdentifier,\n      fragmentNode: fragmentNode,\n      fragmentRef: fragmentRef,\n      paginationMetadata: paginationMetadata,\n      paginationRequest: paginationRequest\n    }),\n    loadPrevious = _useLoadMore[0],\n    hasPrevious = _useLoadMore[1],\n    isLoadingPrevious = _useLoadMore[2],\n    disposeFetchPrevious = _useLoadMore[3];\n  var _useLoadMore2 = useLoadMore({\n      componentDisplayName: componentDisplayName,\n      connectionPathInFragmentData: connectionPathInFragmentData,\n      direction: 'forward',\n      fragmentData: fragmentData,\n      fragmentIdentifier: fragmentIdentifier,\n      fragmentNode: fragmentNode,\n      fragmentRef: fragmentRef,\n      paginationMetadata: paginationMetadata,\n      paginationRequest: paginationRequest\n    }),\n    loadNext = _useLoadMore2[0],\n    hasNext = _useLoadMore2[1],\n    isLoadingNext = _useLoadMore2[2],\n    disposeFetchNext = _useLoadMore2[3];\n  var refetchPagination = useCallback(function (variables, options) {\n    disposeFetchNext();\n    disposeFetchPrevious();\n    return refetch(variables, (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, options), {}, {\n      __environment: undefined\n    }));\n  }, [disposeFetchNext, disposeFetchPrevious, refetch]);\n  if (process.env.NODE_ENV !== \"production\") {\n    useDebugValue({\n      fragment: fragmentNode.name,\n      data: fragmentData,\n      hasNext: hasNext,\n      isLoadingNext: isLoadingNext,\n      hasPrevious: hasPrevious,\n      isLoadingPrevious: isLoadingPrevious\n    });\n  }\n  return {\n    data: fragmentData,\n    loadNext: loadNext,\n    loadPrevious: loadPrevious,\n    hasNext: hasNext,\n    hasPrevious: hasPrevious,\n    isLoadingNext: isLoadingNext,\n    isLoadingPrevious: isLoadingPrevious,\n    refetch: refetchPagination\n  };\n}\nfunction useLoadMore(args) {\n  var _useState = useState(false),\n    isLoadingMore = _useState[0],\n    setIsLoadingMore = _useState[1];\n  var observer = {\n    start: function start() {\n      return setIsLoadingMore(true);\n    },\n    complete: function complete() {\n      return setIsLoadingMore(false);\n    },\n    error: function error() {\n      return setIsLoadingMore(false);\n    }\n  };\n  var handleReset = function handleReset() {\n    return setIsLoadingMore(false);\n  };\n  var _useLoadMoreFunction = useLoadMoreFunction((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, args), {}, {\n      observer: observer,\n      onReset: handleReset\n    })),\n    loadMore = _useLoadMoreFunction[0],\n    hasMore = _useLoadMoreFunction[1],\n    disposeFetch = _useLoadMoreFunction[2];\n  return [loadMore, hasMore, isLoadingMore, disposeFetch];\n}\nfunction usePaginationFragment(fragmentInput, parentFragmentRef) {\n  var impl = HooksImplementation.get();\n  if (impl) {\n    return impl.usePaginationFragment(fragmentInput, parentFragmentRef);\n  } else {\n    return usePaginationFragment_LEGACY(fragmentInput, parentFragmentRef);\n  }\n}\nmodule.exports = usePaginationFragment;","'use strict';\n\nvar _require = require('./loadQuery'),\n  useTrackLoadQueryInRender = _require.useTrackLoadQueryInRender;\nvar useLazyLoadQueryNode = require('./useLazyLoadQueryNode');\nvar useMemoOperationDescriptor = require('./useMemoOperationDescriptor');\nvar useRelayEnvironment = require('./useRelayEnvironment');\nvar invariant = require('invariant');\nvar _require2 = require('react'),\n  useDebugValue = _require2.useDebugValue;\nvar _require3 = require('relay-runtime'),\n  _require3$__internal = _require3.__internal,\n  fetchQueryDeduped = _require3$__internal.fetchQueryDeduped,\n  fetchQuery = _require3$__internal.fetchQuery;\nvar warning = require(\"fbjs/lib/warning\");\nfunction usePreloadedQuery(gqlQuery, preloadedQuery, options) {\n  useTrackLoadQueryInRender();\n  var environment = useRelayEnvironment();\n  var fetchKey = preloadedQuery.fetchKey,\n    fetchPolicy = preloadedQuery.fetchPolicy,\n    source = preloadedQuery.source,\n    variables = preloadedQuery.variables,\n    networkCacheConfig = preloadedQuery.networkCacheConfig;\n  var operation = useMemoOperationDescriptor(gqlQuery, variables, networkCacheConfig);\n  var useLazyLoadQueryNodeParams;\n  if (preloadedQuery.kind === 'PreloadedQuery_DEPRECATED') {\n    !(operation.request.node.params.name === preloadedQuery.name) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'usePreloadedQuery(): Expected data to be prefetched for query `%s`, ' + 'got prefetch results for query `%s`.', operation.request.node.params.name, preloadedQuery.name) : invariant(false) : void 0;\n    useLazyLoadQueryNodeParams = {\n      componentDisplayName: 'usePreloadedQuery()',\n      fetchKey: fetchKey,\n      fetchObservable: fetchQueryDeduped(environment, operation.request.identifier, function () {\n        if (environment === preloadedQuery.environment && source != null) {\n          return environment.executeWithSource({\n            operation: operation,\n            source: source\n          });\n        } else {\n          return environment.execute({\n            operation: operation\n          });\n        }\n      }),\n      fetchPolicy: fetchPolicy,\n      query: operation,\n      renderPolicy: options === null || options === void 0 ? void 0 : options.UNSTABLE_renderPolicy\n    };\n  } else {\n    process.env.NODE_ENV !== \"production\" ? warning(preloadedQuery.isDisposed === false, 'usePreloadedQuery(): Expected preloadedQuery to not be disposed yet. ' + 'This is because disposing the query marks it for future garbage ' + 'collection, and as such query results may no longer be present in the Relay ' + 'store. In the future, this will become a hard error.') : void 0;\n    var fallbackFetchObservable = fetchQuery(environment, operation);\n    var fetchObservable;\n    if (source != null && environment === preloadedQuery.environment) {\n      fetchObservable = source.ifEmpty(fallbackFetchObservable);\n    } else if (environment !== preloadedQuery.environment) {\n      process.env.NODE_ENV !== \"production\" ? warning(false, 'usePreloadedQuery(): usePreloadedQuery was passed a preloaded query ' + 'that was created with a different environment than the one that is currently ' + 'in context. In the future, this will become a hard error.') : void 0;\n      fetchObservable = fallbackFetchObservable;\n    } else {\n      fetchObservable = fallbackFetchObservable;\n    }\n    useLazyLoadQueryNodeParams = {\n      componentDisplayName: 'usePreloadedQuery()',\n      fetchObservable: fetchObservable,\n      fetchKey: fetchKey,\n      fetchPolicy: fetchPolicy,\n      query: operation,\n      renderPolicy: options === null || options === void 0 ? void 0 : options.UNSTABLE_renderPolicy\n    };\n  }\n  var data = useLazyLoadQueryNode(useLazyLoadQueryNodeParams);\n  if (process.env.NODE_ENV !== \"production\") {\n    useDebugValue({\n      query: preloadedQuery.name,\n      variables: preloadedQuery.variables,\n      data: data,\n      fetchKey: fetchKey,\n      fetchPolicy: fetchPolicy,\n      renderPolicy: options === null || options === void 0 ? void 0 : options.UNSTABLE_renderPolicy\n    });\n  }\n  return data;\n}\nmodule.exports = usePreloadedQuery;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\nvar _require = require('./loadQuery'),\n  loadQuery = _require.loadQuery,\n  useTrackLoadQueryInRender = _require.useTrackLoadQueryInRender;\nvar useIsMountedRef = require('./useIsMountedRef');\nvar useRelayEnvironment = require('./useRelayEnvironment');\nvar _require2 = require('react'),\n  useCallback = _require2.useCallback,\n  useEffect = _require2.useEffect,\n  useRef = _require2.useRef,\n  useState = _require2.useState;\nvar _require3 = require('relay-runtime'),\n  getRequest = _require3.getRequest;\nvar initialNullQueryReferenceState = {\n  kind: 'NullQueryReference'\n};\nfunction requestIsLiveQuery(preloadableRequest) {\n  if (preloadableRequest.kind === 'PreloadableConcreteRequest') {\n    return preloadableRequest.params.metadata.live !== undefined;\n  }\n  var request = getRequest(preloadableRequest);\n  return request.params.metadata.live !== undefined;\n}\nfunction useQueryLoader(preloadableRequest, initialQueryReference) {\n  var initialQueryReferenceInternal = initialQueryReference !== null && initialQueryReference !== void 0 ? initialQueryReference : initialNullQueryReferenceState;\n  var environment = useRelayEnvironment();\n  useTrackLoadQueryInRender();\n  var isMountedRef = useIsMountedRef();\n  var undisposedQueryReferencesRef = useRef(new Set([initialQueryReferenceInternal]));\n  var _useState = useState(function () {\n      return initialQueryReferenceInternal;\n    }),\n    queryReference = _useState[0],\n    setQueryReference = _useState[1];\n  var _useState2 = useState(function () {\n      return initialQueryReferenceInternal;\n    }),\n    previousInitialQueryReference = _useState2[0],\n    setPreviousInitialQueryReference = _useState2[1];\n  if (initialQueryReferenceInternal !== previousInitialQueryReference) {\n    undisposedQueryReferencesRef.current.add(initialQueryReferenceInternal);\n    setPreviousInitialQueryReference(initialQueryReferenceInternal);\n    setQueryReference(initialQueryReferenceInternal);\n  }\n  var disposeQuery = useCallback(function () {\n    if (isMountedRef.current) {\n      undisposedQueryReferencesRef.current.add(initialNullQueryReferenceState);\n      setQueryReference(initialNullQueryReferenceState);\n    }\n  }, [isMountedRef]);\n  var queryLoaderCallback = useCallback(function (variables, options) {\n    var mergedOptions = options != null && options.hasOwnProperty('__environment') ? {\n      fetchPolicy: options.fetchPolicy,\n      networkCacheConfig: options.networkCacheConfig,\n      __nameForWarning: options.__nameForWarning\n    } : options;\n    if (isMountedRef.current) {\n      var _options$__environmen;\n      var updatedQueryReference = loadQuery((_options$__environmen = options === null || options === void 0 ? void 0 : options.__environment) !== null && _options$__environmen !== void 0 ? _options$__environmen : environment, preloadableRequest, variables, mergedOptions);\n      undisposedQueryReferencesRef.current.add(updatedQueryReference);\n      setQueryReference(updatedQueryReference);\n    }\n  }, [environment, preloadableRequest, setQueryReference, isMountedRef]);\n  var maybeHiddenOrFastRefresh = useRef(false);\n  useEffect(function () {\n    return function () {\n      maybeHiddenOrFastRefresh.current = true;\n    };\n  }, []);\n  useEffect(function () {\n    if (maybeHiddenOrFastRefresh.current === true) {\n      maybeHiddenOrFastRefresh.current = false;\n      if (queryReference.kind !== 'NullQueryReference') {\n        queryLoaderCallback(queryReference.variables, {\n          fetchPolicy: queryReference.fetchPolicy,\n          networkCacheConfig: queryReference.networkCacheConfig\n        });\n      }\n      return;\n    }\n    var undisposedQueryReferences = undisposedQueryReferencesRef.current;\n    if (isMountedRef.current) {\n      var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(undisposedQueryReferences),\n        _step;\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var undisposedQueryReference = _step.value;\n          if (undisposedQueryReference === queryReference) {\n            break;\n          }\n          undisposedQueryReferences[\"delete\"](undisposedQueryReference);\n          if (undisposedQueryReference.kind !== 'NullQueryReference') {\n            if (requestIsLiveQuery(preloadableRequest)) {\n              undisposedQueryReference.dispose && undisposedQueryReference.dispose();\n            } else {\n              undisposedQueryReference.releaseQuery && undisposedQueryReference.releaseQuery();\n            }\n          }\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n    }\n  }, [queryReference, isMountedRef, queryLoaderCallback, preloadableRequest]);\n  useEffect(function () {\n    return function disposeAllRemainingQueryReferences() {\n      var _iterator2 = (0, _createForOfIteratorHelper2[\"default\"])(undisposedQueryReferencesRef.current),\n        _step2;\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var undisposedQueryReference = _step2.value;\n          if (undisposedQueryReference.kind !== 'NullQueryReference') {\n            if (requestIsLiveQuery(preloadableRequest)) {\n              undisposedQueryReference.dispose && undisposedQueryReference.dispose();\n            } else {\n              undisposedQueryReference.releaseQuery && undisposedQueryReference.releaseQuery();\n            }\n          }\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n    };\n  }, [preloadableRequest]);\n  return [queryReference.kind === 'NullQueryReference' ? null : queryReference, queryLoaderCallback, disposeQuery];\n}\nmodule.exports = useQueryLoader;","'use strict';\n\nvar HooksImplementation = require('./HooksImplementation');\nvar useRefetchableFragmentNode = require('./legacy/useRefetchableFragmentNode');\nvar useStaticFragmentNodeWarning = require('./useStaticFragmentNodeWarning');\nvar _require = require('react'),\n  useDebugValue = _require.useDebugValue;\nvar _require2 = require('relay-runtime'),\n  getFragment = _require2.getFragment;\nfunction useRefetchableFragment_LEGACY(fragmentInput, fragmentRef) {\n  var fragmentNode = getFragment(fragmentInput);\n  useStaticFragmentNodeWarning(fragmentNode, 'first argument of useRefetchableFragment()');\n  var _useRefetchableFragme = useRefetchableFragmentNode(fragmentNode, fragmentRef, 'useRefetchableFragment()'),\n    fragmentData = _useRefetchableFragme.fragmentData,\n    refetch = _useRefetchableFragme.refetch;\n  if (process.env.NODE_ENV !== \"production\") {\n    useDebugValue({\n      fragment: fragmentNode.name,\n      data: fragmentData\n    });\n  }\n  return [fragmentData, refetch];\n}\nfunction useRefetchableFragment(fragmentInput, parentFragmentRef) {\n  var impl = HooksImplementation.get();\n  if (impl) {\n    return impl.useRefetchableFragment(fragmentInput, parentFragmentRef);\n  } else {\n    return useRefetchableFragment_LEGACY(fragmentInput, parentFragmentRef);\n  }\n}\nmodule.exports = useRefetchableFragment;","'use strict';\n\nvar ReactRelayContext = require('./../ReactRelayContext');\nvar invariant = require('invariant');\nvar _require = require('react'),\n  useContext = _require.useContext;\nfunction useRelayEnvironment() {\n  var context = useContext(ReactRelayContext);\n  !(context != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'useRelayEnvironment: Expected to have found a Relay environment provided by ' + 'a `RelayEnvironmentProvider` component. ' + 'This usually means that useRelayEnvironment was used in a ' + 'component that is not a descendant of a `RelayEnvironmentProvider`. ' + 'Please make sure a `RelayEnvironmentProvider` has been rendered somewhere ' + 'as a parent or ancestor of your component.') : invariant(false) : void 0;\n  return context.environment;\n}\nmodule.exports = useRelayEnvironment;","'use strict';\n\nvar useUnsafeRef_DEPRECATED = require('./useUnsafeRef_DEPRECATED');\nvar warning = require(\"fbjs/lib/warning\");\nfunction useStaticFragmentNodeWarning(fragmentNode, warningContext) {\n  if (process.env.NODE_ENV !== \"production\") {\n    var initialPropRef = useUnsafeRef_DEPRECATED(fragmentNode.name);\n    process.env.NODE_ENV !== \"production\" ? warning(initialPropRef.current === fragmentNode.name, 'Relay: The %s has to remain the same over the lifetime of a component. ' + 'Changing it is not supported and will result in unexpected behavior.', warningContext) : void 0;\n  }\n}\nmodule.exports = useStaticFragmentNodeWarning;","'use strict';\n\nvar useRelayEnvironment = require('./useRelayEnvironment');\nvar _require = require('react'),\n  useEffect = _require.useEffect,\n  useRef = _require.useRef;\nfunction useSubscribeToInvalidationState(dataIDs, callback) {\n  var environment = useRelayEnvironment();\n  var disposableRef = useRef(null);\n  var stableDataIDs = Array.from(dataIDs).sort().join('');\n  useEffect(function () {\n    var store = environment.getStore();\n    var invalidationState = store.lookupInvalidationState(dataIDs);\n    var disposable = store.subscribeToInvalidationState(invalidationState, callback);\n    disposableRef.current = disposable;\n    return function () {\n      return disposable.dispose();\n    };\n  }, [stableDataIDs, callback, environment]);\n  return {\n    dispose: function dispose() {\n      if (disposableRef.current != null) {\n        disposableRef.current.dispose();\n      }\n    }\n  };\n}\nmodule.exports = useSubscribeToInvalidationState;","'use strict';\n\nvar useRelayEnvironment = require('./useRelayEnvironment');\nvar _require = require('react'),\n  useEffect = _require.useEffect;\nvar _require2 = require('relay-runtime'),\n  requestSubscription = _require2.requestSubscription;\nfunction useSubscription(config, requestSubscriptionFn) {\n  var actualRequestSubscription = requestSubscriptionFn !== null && requestSubscriptionFn !== void 0 ? requestSubscriptionFn : requestSubscription;\n  var environment = useRelayEnvironment();\n  useEffect(function () {\n    var _actualRequestSubscri = actualRequestSubscription(environment, config),\n      dispose = _actualRequestSubscri.dispose;\n    return dispose;\n  }, [environment, config, actualRequestSubscription]);\n}\nmodule.exports = useSubscription;","'use strict';\n\nvar _require = require('react'),\n  useMemo = _require.useMemo;\nfunction useUnsafeRef_DEPRECATED(init) {\n  return useMemo(function () {\n    return {\n      current: init\n    };\n  }, []);\n}\nmodule.exports = useUnsafeRef_DEPRECATED;","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n  for (var t = 0; t < r.length; t++) {\n    var o = r[t];\n    o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n  }\n}\nfunction _createClass(e, r, t) {\n  return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n    writable: !1\n  }), e;\n}\nexport { _createClass as default };","function _getPrototypeOf(t) {\n  return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n    return t.__proto__ || Object.getPrototypeOf(t);\n  }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _isNativeReflectConstruct() {\n  try {\n    var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n  } catch (t) {}\n  return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n    return !!t;\n  })();\n}\nexport { _isNativeReflectConstruct as default };","var safeIsNaN = Number.isNaN ||\n    function ponyfill(value) {\n        return typeof value === 'number' && value !== value;\n    };\nfunction isEqual(first, second) {\n    if (first === second) {\n        return true;\n    }\n    if (safeIsNaN(first) && safeIsNaN(second)) {\n        return true;\n    }\n    return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n    if (newInputs.length !== lastInputs.length) {\n        return false;\n    }\n    for (var i = 0; i < newInputs.length; i++) {\n        if (!isEqual(newInputs[i], lastInputs[i])) {\n            return false;\n        }\n    }\n    return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n    if (isEqual === void 0) { isEqual = areInputsEqual; }\n    var cache = null;\n    function memoized() {\n        var newArgs = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            newArgs[_i] = arguments[_i];\n        }\n        if (cache && cache.lastThis === this && isEqual(newArgs, cache.lastArgs)) {\n            return cache.lastResult;\n        }\n        var lastResult = resultFn.apply(this, newArgs);\n        cache = {\n            lastResult: lastResult,\n            lastArgs: newArgs,\n            lastThis: this,\n        };\n        return lastResult;\n    }\n    memoized.clear = function clear() {\n        cache = null;\n    };\n    return memoized;\n}\n\nexport { memoizeOne as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _createSuper from '@babel/runtime/helpers/esm/createSuper';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport * as React from 'react';\nimport { useMemo, Fragment, useRef, useCallback, useEffect, Component } from 'react';\nimport { r as removeProps, s as supportsPassiveEvents, a as clearIndicatorCSS, b as containerCSS, d as css$1, e as dropdownIndicatorCSS, g as groupCSS, f as groupHeadingCSS, i as indicatorsContainerCSS, h as indicatorSeparatorCSS, j as inputCSS, l as loadingIndicatorCSS, k as loadingMessageCSS, m as menuCSS, n as menuListCSS, o as menuPortalCSS, p as multiValueCSS, q as multiValueLabelCSS, t as multiValueRemoveCSS, u as noOptionsMessageCSS, v as optionCSS, w as placeholderCSS, x as css$2, y as valueContainerCSS, z as isTouchCapable, A as isMobileDevice, B as multiValueAsValue, C as singleValueAsValue, D as valueTernary, E as classNames, F as defaultComponents, G as isDocumentElement, H as cleanValue, I as scrollIntoView, J as noop, M as MenuPlacer, K as notNullish } from './index-a301f526.esm.js';\nimport { jsx, css } from '@emotion/react';\nimport memoizeOne from 'memoize-one';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__$2() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\n// Assistive text to describe visual elements. Hidden for sighted users.\nvar _ref = process.env.NODE_ENV === \"production\" ? {\n  name: \"7pg0cj-a11yText\",\n  styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap\"\n} : {\n  name: \"1f43avz-a11yText-A11yText\",\n  styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap;label:A11yText;\",\n  map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkExMXlUZXh0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNSSIsImZpbGUiOiJBMTF5VGV4dC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGpzeCBqc3ggKi9cbmltcG9ydCB7IGpzeCB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuLy8gQXNzaXN0aXZlIHRleHQgdG8gZGVzY3JpYmUgdmlzdWFsIGVsZW1lbnRzLiBIaWRkZW4gZm9yIHNpZ2h0ZWQgdXNlcnMuXG5jb25zdCBBMTF5VGV4dCA9IChwcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydzcGFuJ10pID0+IChcbiAgPHNwYW5cbiAgICBjc3M9e3tcbiAgICAgIGxhYmVsOiAnYTExeVRleHQnLFxuICAgICAgekluZGV4OiA5OTk5LFxuICAgICAgYm9yZGVyOiAwLFxuICAgICAgY2xpcDogJ3JlY3QoMXB4LCAxcHgsIDFweCwgMXB4KScsXG4gICAgICBoZWlnaHQ6IDEsXG4gICAgICB3aWR0aDogMSxcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgcGFkZGluZzogMCxcbiAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgIH19XG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgQTExeVRleHQ7XG4iXX0= */\",\n  toString: _EMOTION_STRINGIFIED_CSS_ERROR__$2\n};\nvar A11yText = function A11yText(props) {\n  return jsx(\"span\", _extends({\n    css: _ref\n  }, props));\n};\nvar A11yText$1 = A11yText;\n\nvar defaultAriaLiveMessages = {\n  guidance: function guidance(props) {\n    var isSearchable = props.isSearchable,\n      isMulti = props.isMulti,\n      tabSelectsValue = props.tabSelectsValue,\n      context = props.context,\n      isInitialFocus = props.isInitialFocus;\n    switch (context) {\n      case 'menu':\n        return \"Use Up and Down to choose options, press Enter to select the currently focused option, press Escape to exit the menu\".concat(tabSelectsValue ? ', press Tab to select the option and exit the menu' : '', \".\");\n      case 'input':\n        return isInitialFocus ? \"\".concat(props['aria-label'] || 'Select', \" is focused \").concat(isSearchable ? ',type to refine list' : '', \", press Down to open the menu, \").concat(isMulti ? ' press left to focus selected values' : '') : '';\n      case 'value':\n        return 'Use left and right to toggle between focused values, press Backspace to remove the currently focused value';\n      default:\n        return '';\n    }\n  },\n  onChange: function onChange(props) {\n    var action = props.action,\n      _props$label = props.label,\n      label = _props$label === void 0 ? '' : _props$label,\n      labels = props.labels,\n      isDisabled = props.isDisabled;\n    switch (action) {\n      case 'deselect-option':\n      case 'pop-value':\n      case 'remove-value':\n        return \"option \".concat(label, \", deselected.\");\n      case 'clear':\n        return 'All selected options have been cleared.';\n      case 'initial-input-focus':\n        return \"option\".concat(labels.length > 1 ? 's' : '', \" \").concat(labels.join(','), \", selected.\");\n      case 'select-option':\n        return isDisabled ? \"option \".concat(label, \" is disabled. Select another option.\") : \"option \".concat(label, \", selected.\");\n      default:\n        return '';\n    }\n  },\n  onFocus: function onFocus(props) {\n    var context = props.context,\n      focused = props.focused,\n      options = props.options,\n      _props$label2 = props.label,\n      label = _props$label2 === void 0 ? '' : _props$label2,\n      selectValue = props.selectValue,\n      isDisabled = props.isDisabled,\n      isSelected = props.isSelected,\n      isAppleDevice = props.isAppleDevice;\n    var getArrayIndex = function getArrayIndex(arr, item) {\n      return arr && arr.length ? \"\".concat(arr.indexOf(item) + 1, \" of \").concat(arr.length) : '';\n    };\n    if (context === 'value' && selectValue) {\n      return \"value \".concat(label, \" focused, \").concat(getArrayIndex(selectValue, focused), \".\");\n    }\n    if (context === 'menu' && isAppleDevice) {\n      var disabled = isDisabled ? ' disabled' : '';\n      var status = \"\".concat(isSelected ? ' selected' : '').concat(disabled);\n      return \"\".concat(label).concat(status, \", \").concat(getArrayIndex(options, focused), \".\");\n    }\n    return '';\n  },\n  onFilter: function onFilter(props) {\n    var inputValue = props.inputValue,\n      resultsMessage = props.resultsMessage;\n    return \"\".concat(resultsMessage).concat(inputValue ? ' for search term ' + inputValue : '', \".\");\n  }\n};\n\nvar LiveRegion = function LiveRegion(props) {\n  var ariaSelection = props.ariaSelection,\n    focusedOption = props.focusedOption,\n    focusedValue = props.focusedValue,\n    focusableOptions = props.focusableOptions,\n    isFocused = props.isFocused,\n    selectValue = props.selectValue,\n    selectProps = props.selectProps,\n    id = props.id,\n    isAppleDevice = props.isAppleDevice;\n  var ariaLiveMessages = selectProps.ariaLiveMessages,\n    getOptionLabel = selectProps.getOptionLabel,\n    inputValue = selectProps.inputValue,\n    isMulti = selectProps.isMulti,\n    isOptionDisabled = selectProps.isOptionDisabled,\n    isSearchable = selectProps.isSearchable,\n    menuIsOpen = selectProps.menuIsOpen,\n    options = selectProps.options,\n    screenReaderStatus = selectProps.screenReaderStatus,\n    tabSelectsValue = selectProps.tabSelectsValue,\n    isLoading = selectProps.isLoading;\n  var ariaLabel = selectProps['aria-label'];\n  var ariaLive = selectProps['aria-live'];\n\n  // Update aria live message configuration when prop changes\n  var messages = useMemo(function () {\n    return _objectSpread(_objectSpread({}, defaultAriaLiveMessages), ariaLiveMessages || {});\n  }, [ariaLiveMessages]);\n\n  // Update aria live selected option when prop changes\n  var ariaSelected = useMemo(function () {\n    var message = '';\n    if (ariaSelection && messages.onChange) {\n      var option = ariaSelection.option,\n        selectedOptions = ariaSelection.options,\n        removedValue = ariaSelection.removedValue,\n        removedValues = ariaSelection.removedValues,\n        value = ariaSelection.value;\n      // select-option when !isMulti does not return option so we assume selected option is value\n      var asOption = function asOption(val) {\n        return !Array.isArray(val) ? val : null;\n      };\n\n      // If there is just one item from the action then get its label\n      var selected = removedValue || option || asOption(value);\n      var label = selected ? getOptionLabel(selected) : '';\n\n      // If there are multiple items from the action then return an array of labels\n      var multiSelected = selectedOptions || removedValues || undefined;\n      var labels = multiSelected ? multiSelected.map(getOptionLabel) : [];\n      var onChangeProps = _objectSpread({\n        // multiSelected items are usually items that have already been selected\n        // or set by the user as a default value so we assume they are not disabled\n        isDisabled: selected && isOptionDisabled(selected, selectValue),\n        label: label,\n        labels: labels\n      }, ariaSelection);\n      message = messages.onChange(onChangeProps);\n    }\n    return message;\n  }, [ariaSelection, messages, isOptionDisabled, selectValue, getOptionLabel]);\n  var ariaFocused = useMemo(function () {\n    var focusMsg = '';\n    var focused = focusedOption || focusedValue;\n    var isSelected = !!(focusedOption && selectValue && selectValue.includes(focusedOption));\n    if (focused && messages.onFocus) {\n      var onFocusProps = {\n        focused: focused,\n        label: getOptionLabel(focused),\n        isDisabled: isOptionDisabled(focused, selectValue),\n        isSelected: isSelected,\n        options: focusableOptions,\n        context: focused === focusedOption ? 'menu' : 'value',\n        selectValue: selectValue,\n        isAppleDevice: isAppleDevice\n      };\n      focusMsg = messages.onFocus(onFocusProps);\n    }\n    return focusMsg;\n  }, [focusedOption, focusedValue, getOptionLabel, isOptionDisabled, messages, focusableOptions, selectValue, isAppleDevice]);\n  var ariaResults = useMemo(function () {\n    var resultsMsg = '';\n    if (menuIsOpen && options.length && !isLoading && messages.onFilter) {\n      var resultsMessage = screenReaderStatus({\n        count: focusableOptions.length\n      });\n      resultsMsg = messages.onFilter({\n        inputValue: inputValue,\n        resultsMessage: resultsMessage\n      });\n    }\n    return resultsMsg;\n  }, [focusableOptions, inputValue, menuIsOpen, messages, options, screenReaderStatus, isLoading]);\n  var isInitialFocus = (ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus';\n  var ariaGuidance = useMemo(function () {\n    var guidanceMsg = '';\n    if (messages.guidance) {\n      var context = focusedValue ? 'value' : menuIsOpen ? 'menu' : 'input';\n      guidanceMsg = messages.guidance({\n        'aria-label': ariaLabel,\n        context: context,\n        isDisabled: focusedOption && isOptionDisabled(focusedOption, selectValue),\n        isMulti: isMulti,\n        isSearchable: isSearchable,\n        tabSelectsValue: tabSelectsValue,\n        isInitialFocus: isInitialFocus\n      });\n    }\n    return guidanceMsg;\n  }, [ariaLabel, focusedOption, focusedValue, isMulti, isOptionDisabled, isSearchable, menuIsOpen, messages, selectValue, tabSelectsValue, isInitialFocus]);\n  var ScreenReaderText = jsx(Fragment, null, jsx(\"span\", {\n    id: \"aria-selection\"\n  }, ariaSelected), jsx(\"span\", {\n    id: \"aria-focused\"\n  }, ariaFocused), jsx(\"span\", {\n    id: \"aria-results\"\n  }, ariaResults), jsx(\"span\", {\n    id: \"aria-guidance\"\n  }, ariaGuidance));\n  return jsx(Fragment, null, jsx(A11yText$1, {\n    id: id\n  }, isInitialFocus && ScreenReaderText), jsx(A11yText$1, {\n    \"aria-live\": ariaLive,\n    \"aria-atomic\": \"false\",\n    \"aria-relevant\": \"additions text\",\n    role: \"log\"\n  }, isFocused && !isInitialFocus && ScreenReaderText));\n};\nvar LiveRegion$1 = LiveRegion;\n\nvar diacritics = [{\n  base: 'A',\n  letters: \"A\\u24B6\\uFF21\\xC0\\xC1\\xC2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\xC3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\xC4\\u01DE\\u1EA2\\xC5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F\"\n}, {\n  base: 'AA',\n  letters: \"\\uA732\"\n}, {\n  base: 'AE',\n  letters: \"\\xC6\\u01FC\\u01E2\"\n}, {\n  base: 'AO',\n  letters: \"\\uA734\"\n}, {\n  base: 'AU',\n  letters: \"\\uA736\"\n}, {\n  base: 'AV',\n  letters: \"\\uA738\\uA73A\"\n}, {\n  base: 'AY',\n  letters: \"\\uA73C\"\n}, {\n  base: 'B',\n  letters: \"B\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181\"\n}, {\n  base: 'C',\n  letters: \"C\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\xC7\\u1E08\\u0187\\u023B\\uA73E\"\n}, {\n  base: 'D',\n  letters: \"D\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779\"\n}, {\n  base: 'DZ',\n  letters: \"\\u01F1\\u01C4\"\n}, {\n  base: 'Dz',\n  letters: \"\\u01F2\\u01C5\"\n}, {\n  base: 'E',\n  letters: \"E\\u24BA\\uFF25\\xC8\\xC9\\xCA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\xCB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E\"\n}, {\n  base: 'F',\n  letters: \"F\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B\"\n}, {\n  base: 'G',\n  letters: \"G\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E\"\n}, {\n  base: 'H',\n  letters: \"H\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D\"\n}, {\n  base: 'I',\n  letters: \"I\\u24BE\\uFF29\\xCC\\xCD\\xCE\\u0128\\u012A\\u012C\\u0130\\xCF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197\"\n}, {\n  base: 'J',\n  letters: \"J\\u24BF\\uFF2A\\u0134\\u0248\"\n}, {\n  base: 'K',\n  letters: \"K\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2\"\n}, {\n  base: 'L',\n  letters: \"L\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780\"\n}, {\n  base: 'LJ',\n  letters: \"\\u01C7\"\n}, {\n  base: 'Lj',\n  letters: \"\\u01C8\"\n}, {\n  base: 'M',\n  letters: \"M\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C\"\n}, {\n  base: 'N',\n  letters: \"N\\u24C3\\uFF2E\\u01F8\\u0143\\xD1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4\"\n}, {\n  base: 'NJ',\n  letters: \"\\u01CA\"\n}, {\n  base: 'Nj',\n  letters: \"\\u01CB\"\n}, {\n  base: 'O',\n  letters: \"O\\u24C4\\uFF2F\\xD2\\xD3\\xD4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\xD5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\xD6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\xD8\\u01FE\\u0186\\u019F\\uA74A\\uA74C\"\n}, {\n  base: 'OI',\n  letters: \"\\u01A2\"\n}, {\n  base: 'OO',\n  letters: \"\\uA74E\"\n}, {\n  base: 'OU',\n  letters: \"\\u0222\"\n}, {\n  base: 'P',\n  letters: \"P\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754\"\n}, {\n  base: 'Q',\n  letters: \"Q\\u24C6\\uFF31\\uA756\\uA758\\u024A\"\n}, {\n  base: 'R',\n  letters: \"R\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782\"\n}, {\n  base: 'S',\n  letters: \"S\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784\"\n}, {\n  base: 'T',\n  letters: \"T\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786\"\n}, {\n  base: 'TZ',\n  letters: \"\\uA728\"\n}, {\n  base: 'U',\n  letters: \"U\\u24CA\\uFF35\\xD9\\xDA\\xDB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\xDC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244\"\n}, {\n  base: 'V',\n  letters: \"V\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245\"\n}, {\n  base: 'VY',\n  letters: \"\\uA760\"\n}, {\n  base: 'W',\n  letters: \"W\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72\"\n}, {\n  base: 'X',\n  letters: \"X\\u24CD\\uFF38\\u1E8A\\u1E8C\"\n}, {\n  base: 'Y',\n  letters: \"Y\\u24CE\\uFF39\\u1EF2\\xDD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE\"\n}, {\n  base: 'Z',\n  letters: \"Z\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762\"\n}, {\n  base: 'a',\n  letters: \"a\\u24D0\\uFF41\\u1E9A\\xE0\\xE1\\xE2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\xE3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\xE4\\u01DF\\u1EA3\\xE5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250\"\n}, {\n  base: 'aa',\n  letters: \"\\uA733\"\n}, {\n  base: 'ae',\n  letters: \"\\xE6\\u01FD\\u01E3\"\n}, {\n  base: 'ao',\n  letters: \"\\uA735\"\n}, {\n  base: 'au',\n  letters: \"\\uA737\"\n}, {\n  base: 'av',\n  letters: \"\\uA739\\uA73B\"\n}, {\n  base: 'ay',\n  letters: \"\\uA73D\"\n}, {\n  base: 'b',\n  letters: \"b\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253\"\n}, {\n  base: 'c',\n  letters: \"c\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\xE7\\u1E09\\u0188\\u023C\\uA73F\\u2184\"\n}, {\n  base: 'd',\n  letters: \"d\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A\"\n}, {\n  base: 'dz',\n  letters: \"\\u01F3\\u01C6\"\n}, {\n  base: 'e',\n  letters: \"e\\u24D4\\uFF45\\xE8\\xE9\\xEA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\xEB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD\"\n}, {\n  base: 'f',\n  letters: \"f\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C\"\n}, {\n  base: 'g',\n  letters: \"g\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F\"\n}, {\n  base: 'h',\n  letters: \"h\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265\"\n}, {\n  base: 'hv',\n  letters: \"\\u0195\"\n}, {\n  base: 'i',\n  letters: \"i\\u24D8\\uFF49\\xEC\\xED\\xEE\\u0129\\u012B\\u012D\\xEF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131\"\n}, {\n  base: 'j',\n  letters: \"j\\u24D9\\uFF4A\\u0135\\u01F0\\u0249\"\n}, {\n  base: 'k',\n  letters: \"k\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3\"\n}, {\n  base: 'l',\n  letters: \"l\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747\"\n}, {\n  base: 'lj',\n  letters: \"\\u01C9\"\n}, {\n  base: 'm',\n  letters: \"m\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F\"\n}, {\n  base: 'n',\n  letters: \"n\\u24DD\\uFF4E\\u01F9\\u0144\\xF1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5\"\n}, {\n  base: 'nj',\n  letters: \"\\u01CC\"\n}, {\n  base: 'o',\n  letters: \"o\\u24DE\\uFF4F\\xF2\\xF3\\xF4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\xF5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\xF6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\xF8\\u01FF\\u0254\\uA74B\\uA74D\\u0275\"\n}, {\n  base: 'oi',\n  letters: \"\\u01A3\"\n}, {\n  base: 'ou',\n  letters: \"\\u0223\"\n}, {\n  base: 'oo',\n  letters: \"\\uA74F\"\n}, {\n  base: 'p',\n  letters: \"p\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755\"\n}, {\n  base: 'q',\n  letters: \"q\\u24E0\\uFF51\\u024B\\uA757\\uA759\"\n}, {\n  base: 'r',\n  letters: \"r\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783\"\n}, {\n  base: 's',\n  letters: \"s\\u24E2\\uFF53\\xDF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B\"\n}, {\n  base: 't',\n  letters: \"t\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787\"\n}, {\n  base: 'tz',\n  letters: \"\\uA729\"\n}, {\n  base: 'u',\n  letters: \"u\\u24E4\\uFF55\\xF9\\xFA\\xFB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\xFC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289\"\n}, {\n  base: 'v',\n  letters: \"v\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C\"\n}, {\n  base: 'vy',\n  letters: \"\\uA761\"\n}, {\n  base: 'w',\n  letters: \"w\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73\"\n}, {\n  base: 'x',\n  letters: \"x\\u24E7\\uFF58\\u1E8B\\u1E8D\"\n}, {\n  base: 'y',\n  letters: \"y\\u24E8\\uFF59\\u1EF3\\xFD\\u0177\\u1EF9\\u0233\\u1E8F\\xFF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF\"\n}, {\n  base: 'z',\n  letters: \"z\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763\"\n}];\nvar anyDiacritic = new RegExp('[' + diacritics.map(function (d) {\n  return d.letters;\n}).join('') + ']', 'g');\nvar diacriticToBase = {};\nfor (var i = 0; i < diacritics.length; i++) {\n  var diacritic = diacritics[i];\n  for (var j = 0; j < diacritic.letters.length; j++) {\n    diacriticToBase[diacritic.letters[j]] = diacritic.base;\n  }\n}\nvar stripDiacritics = function stripDiacritics(str) {\n  return str.replace(anyDiacritic, function (match) {\n    return diacriticToBase[match];\n  });\n};\n\nvar memoizedStripDiacriticsForInput = memoizeOne(stripDiacritics);\nvar trimString = function trimString(str) {\n  return str.replace(/^\\s+|\\s+$/g, '');\n};\nvar defaultStringify = function defaultStringify(option) {\n  return \"\".concat(option.label, \" \").concat(option.value);\n};\nvar createFilter = function createFilter(config) {\n  return function (option, rawInput) {\n    // eslint-disable-next-line no-underscore-dangle\n    if (option.data.__isNew__) return true;\n    var _ignoreCase$ignoreAcc = _objectSpread({\n        ignoreCase: true,\n        ignoreAccents: true,\n        stringify: defaultStringify,\n        trim: true,\n        matchFrom: 'any'\n      }, config),\n      ignoreCase = _ignoreCase$ignoreAcc.ignoreCase,\n      ignoreAccents = _ignoreCase$ignoreAcc.ignoreAccents,\n      stringify = _ignoreCase$ignoreAcc.stringify,\n      trim = _ignoreCase$ignoreAcc.trim,\n      matchFrom = _ignoreCase$ignoreAcc.matchFrom;\n    var input = trim ? trimString(rawInput) : rawInput;\n    var candidate = trim ? trimString(stringify(option)) : stringify(option);\n    if (ignoreCase) {\n      input = input.toLowerCase();\n      candidate = candidate.toLowerCase();\n    }\n    if (ignoreAccents) {\n      input = memoizedStripDiacriticsForInput(input);\n      candidate = stripDiacritics(candidate);\n    }\n    return matchFrom === 'start' ? candidate.substr(0, input.length) === input : candidate.indexOf(input) > -1;\n  };\n};\n\nvar _excluded = [\"innerRef\"];\nfunction DummyInput(_ref) {\n  var innerRef = _ref.innerRef,\n    props = _objectWithoutProperties(_ref, _excluded);\n  // Remove animation props not meant for HTML elements\n  var filteredProps = removeProps(props, 'onExited', 'in', 'enter', 'exit', 'appear');\n  return jsx(\"input\", _extends({\n    ref: innerRef\n  }, filteredProps, {\n    css: /*#__PURE__*/css({\n      label: 'dummyInput',\n      // get rid of any default styles\n      background: 0,\n      border: 0,\n      // important! this hides the flashing cursor\n      caretColor: 'transparent',\n      fontSize: 'inherit',\n      gridArea: '1 / 1 / 2 / 3',\n      outline: 0,\n      padding: 0,\n      // important! without `width` browsers won't allow focus\n      width: 1,\n      // remove cursor on desktop\n      color: 'transparent',\n      // remove cursor on mobile whilst maintaining \"scroll into view\" behaviour\n      left: -100,\n      opacity: 0,\n      position: 'relative',\n      transform: 'scale(.01)'\n    }, process.env.NODE_ENV === \"production\" ? \"\" : \";label:DummyInput;\", process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkR1bW15SW5wdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlCTSIsImZpbGUiOiJEdW1teUlucHV0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgcmVtb3ZlUHJvcHMgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIER1bW15SW5wdXQoe1xuICBpbm5lclJlZixcbiAgLi4ucHJvcHNcbn06IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snaW5wdXQnXSAmIHtcbiAgcmVhZG9ubHkgaW5uZXJSZWY6IFJlZjxIVE1MSW5wdXRFbGVtZW50Pjtcbn0pIHtcbiAgLy8gUmVtb3ZlIGFuaW1hdGlvbiBwcm9wcyBub3QgbWVhbnQgZm9yIEhUTUwgZWxlbWVudHNcbiAgY29uc3QgZmlsdGVyZWRQcm9wcyA9IHJlbW92ZVByb3BzKFxuICAgIHByb3BzLFxuICAgICdvbkV4aXRlZCcsXG4gICAgJ2luJyxcbiAgICAnZW50ZXInLFxuICAgICdleGl0JyxcbiAgICAnYXBwZWFyJ1xuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGlucHV0XG4gICAgICByZWY9e2lubmVyUmVmfVxuICAgICAgey4uLmZpbHRlcmVkUHJvcHN9XG4gICAgICBjc3M9e3tcbiAgICAgICAgbGFiZWw6ICdkdW1teUlucHV0JyxcbiAgICAgICAgLy8gZ2V0IHJpZCBvZiBhbnkgZGVmYXVsdCBzdHlsZXNcbiAgICAgICAgYmFja2dyb3VuZDogMCxcbiAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICAvLyBpbXBvcnRhbnQhIHRoaXMgaGlkZXMgdGhlIGZsYXNoaW5nIGN1cnNvclxuICAgICAgICBjYXJldENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICBmb250U2l6ZTogJ2luaGVyaXQnLFxuICAgICAgICBncmlkQXJlYTogJzEgLyAxIC8gMiAvIDMnLFxuICAgICAgICBvdXRsaW5lOiAwLFxuICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAvLyBpbXBvcnRhbnQhIHdpdGhvdXQgYHdpZHRoYCBicm93c2VycyB3b24ndCBhbGxvdyBmb2N1c1xuICAgICAgICB3aWR0aDogMSxcblxuICAgICAgICAvLyByZW1vdmUgY3Vyc29yIG9uIGRlc2t0b3BcbiAgICAgICAgY29sb3I6ICd0cmFuc3BhcmVudCcsXG5cbiAgICAgICAgLy8gcmVtb3ZlIGN1cnNvciBvbiBtb2JpbGUgd2hpbHN0IG1haW50YWluaW5nIFwic2Nyb2xsIGludG8gdmlld1wiIGJlaGF2aW91clxuICAgICAgICBsZWZ0OiAtMTAwLFxuICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoLjAxKScsXG4gICAgICB9fVxuICAgIC8+XG4gICk7XG59XG4iXX0= */\")\n  }));\n}\n\nvar cancelScroll = function cancelScroll(event) {\n  if (event.cancelable) event.preventDefault();\n  event.stopPropagation();\n};\nfunction useScrollCapture(_ref) {\n  var isEnabled = _ref.isEnabled,\n    onBottomArrive = _ref.onBottomArrive,\n    onBottomLeave = _ref.onBottomLeave,\n    onTopArrive = _ref.onTopArrive,\n    onTopLeave = _ref.onTopLeave;\n  var isBottom = useRef(false);\n  var isTop = useRef(false);\n  var touchStart = useRef(0);\n  var scrollTarget = useRef(null);\n  var handleEventDelta = useCallback(function (event, delta) {\n    if (scrollTarget.current === null) return;\n    var _scrollTarget$current = scrollTarget.current,\n      scrollTop = _scrollTarget$current.scrollTop,\n      scrollHeight = _scrollTarget$current.scrollHeight,\n      clientHeight = _scrollTarget$current.clientHeight;\n    var target = scrollTarget.current;\n    var isDeltaPositive = delta > 0;\n    var availableScroll = scrollHeight - clientHeight - scrollTop;\n    var shouldCancelScroll = false;\n\n    // reset bottom/top flags\n    if (availableScroll > delta && isBottom.current) {\n      if (onBottomLeave) onBottomLeave(event);\n      isBottom.current = false;\n    }\n    if (isDeltaPositive && isTop.current) {\n      if (onTopLeave) onTopLeave(event);\n      isTop.current = false;\n    }\n\n    // bottom limit\n    if (isDeltaPositive && delta > availableScroll) {\n      if (onBottomArrive && !isBottom.current) {\n        onBottomArrive(event);\n      }\n      target.scrollTop = scrollHeight;\n      shouldCancelScroll = true;\n      isBottom.current = true;\n\n      // top limit\n    } else if (!isDeltaPositive && -delta > scrollTop) {\n      if (onTopArrive && !isTop.current) {\n        onTopArrive(event);\n      }\n      target.scrollTop = 0;\n      shouldCancelScroll = true;\n      isTop.current = true;\n    }\n\n    // cancel scroll\n    if (shouldCancelScroll) {\n      cancelScroll(event);\n    }\n  }, [onBottomArrive, onBottomLeave, onTopArrive, onTopLeave]);\n  var onWheel = useCallback(function (event) {\n    handleEventDelta(event, event.deltaY);\n  }, [handleEventDelta]);\n  var onTouchStart = useCallback(function (event) {\n    // set touch start so we can calculate touchmove delta\n    touchStart.current = event.changedTouches[0].clientY;\n  }, []);\n  var onTouchMove = useCallback(function (event) {\n    var deltaY = touchStart.current - event.changedTouches[0].clientY;\n    handleEventDelta(event, deltaY);\n  }, [handleEventDelta]);\n  var startListening = useCallback(function (el) {\n    // bail early if no element is available to attach to\n    if (!el) return;\n    var notPassive = supportsPassiveEvents ? {\n      passive: false\n    } : false;\n    el.addEventListener('wheel', onWheel, notPassive);\n    el.addEventListener('touchstart', onTouchStart, notPassive);\n    el.addEventListener('touchmove', onTouchMove, notPassive);\n  }, [onTouchMove, onTouchStart, onWheel]);\n  var stopListening = useCallback(function (el) {\n    // bail early if no element is available to detach from\n    if (!el) return;\n    el.removeEventListener('wheel', onWheel, false);\n    el.removeEventListener('touchstart', onTouchStart, false);\n    el.removeEventListener('touchmove', onTouchMove, false);\n  }, [onTouchMove, onTouchStart, onWheel]);\n  useEffect(function () {\n    if (!isEnabled) return;\n    var element = scrollTarget.current;\n    startListening(element);\n    return function () {\n      stopListening(element);\n    };\n  }, [isEnabled, startListening, stopListening]);\n  return function (element) {\n    scrollTarget.current = element;\n  };\n}\n\nvar STYLE_KEYS = ['boxSizing', 'height', 'overflow', 'paddingRight', 'position'];\nvar LOCK_STYLES = {\n  boxSizing: 'border-box',\n  // account for possible declaration `width: 100%;` on body\n  overflow: 'hidden',\n  position: 'relative',\n  height: '100%'\n};\nfunction preventTouchMove(e) {\n  e.preventDefault();\n}\nfunction allowTouchMove(e) {\n  e.stopPropagation();\n}\nfunction preventInertiaScroll() {\n  var top = this.scrollTop;\n  var totalScroll = this.scrollHeight;\n  var currentScroll = top + this.offsetHeight;\n  if (top === 0) {\n    this.scrollTop = 1;\n  } else if (currentScroll === totalScroll) {\n    this.scrollTop = top - 1;\n  }\n}\n\n// `ontouchstart` check works on most browsers\n// `maxTouchPoints` works on IE10/11 and Surface\nfunction isTouchDevice() {\n  return 'ontouchstart' in window || navigator.maxTouchPoints;\n}\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nvar activeScrollLocks = 0;\nvar listenerOptions = {\n  capture: false,\n  passive: false\n};\nfunction useScrollLock(_ref) {\n  var isEnabled = _ref.isEnabled,\n    _ref$accountForScroll = _ref.accountForScrollbars,\n    accountForScrollbars = _ref$accountForScroll === void 0 ? true : _ref$accountForScroll;\n  var originalStyles = useRef({});\n  var scrollTarget = useRef(null);\n  var addScrollLock = useCallback(function (touchScrollTarget) {\n    if (!canUseDOM) return;\n    var target = document.body;\n    var targetStyle = target && target.style;\n    if (accountForScrollbars) {\n      // store any styles already applied to the body\n      STYLE_KEYS.forEach(function (key) {\n        var val = targetStyle && targetStyle[key];\n        originalStyles.current[key] = val;\n      });\n    }\n\n    // apply the lock styles and padding if this is the first scroll lock\n    if (accountForScrollbars && activeScrollLocks < 1) {\n      var currentPadding = parseInt(originalStyles.current.paddingRight, 10) || 0;\n      var clientWidth = document.body ? document.body.clientWidth : 0;\n      var adjustedPadding = window.innerWidth - clientWidth + currentPadding || 0;\n      Object.keys(LOCK_STYLES).forEach(function (key) {\n        var val = LOCK_STYLES[key];\n        if (targetStyle) {\n          targetStyle[key] = val;\n        }\n      });\n      if (targetStyle) {\n        targetStyle.paddingRight = \"\".concat(adjustedPadding, \"px\");\n      }\n    }\n\n    // account for touch devices\n    if (target && isTouchDevice()) {\n      // Mobile Safari ignores { overflow: hidden } declaration on the body.\n      target.addEventListener('touchmove', preventTouchMove, listenerOptions);\n\n      // Allow scroll on provided target\n      if (touchScrollTarget) {\n        touchScrollTarget.addEventListener('touchstart', preventInertiaScroll, listenerOptions);\n        touchScrollTarget.addEventListener('touchmove', allowTouchMove, listenerOptions);\n      }\n    }\n\n    // increment active scroll locks\n    activeScrollLocks += 1;\n  }, [accountForScrollbars]);\n  var removeScrollLock = useCallback(function (touchScrollTarget) {\n    if (!canUseDOM) return;\n    var target = document.body;\n    var targetStyle = target && target.style;\n\n    // safely decrement active scroll locks\n    activeScrollLocks = Math.max(activeScrollLocks - 1, 0);\n\n    // reapply original body styles, if any\n    if (accountForScrollbars && activeScrollLocks < 1) {\n      STYLE_KEYS.forEach(function (key) {\n        var val = originalStyles.current[key];\n        if (targetStyle) {\n          targetStyle[key] = val;\n        }\n      });\n    }\n\n    // remove touch listeners\n    if (target && isTouchDevice()) {\n      target.removeEventListener('touchmove', preventTouchMove, listenerOptions);\n      if (touchScrollTarget) {\n        touchScrollTarget.removeEventListener('touchstart', preventInertiaScroll, listenerOptions);\n        touchScrollTarget.removeEventListener('touchmove', allowTouchMove, listenerOptions);\n      }\n    }\n  }, [accountForScrollbars]);\n  useEffect(function () {\n    if (!isEnabled) return;\n    var element = scrollTarget.current;\n    addScrollLock(element);\n    return function () {\n      removeScrollLock(element);\n    };\n  }, [isEnabled, addScrollLock, removeScrollLock]);\n  return function (element) {\n    scrollTarget.current = element;\n  };\n}\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__$1() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\nvar blurSelectInput = function blurSelectInput(event) {\n  var element = event.target;\n  return element.ownerDocument.activeElement && element.ownerDocument.activeElement.blur();\n};\nvar _ref2$1 = process.env.NODE_ENV === \"production\" ? {\n  name: \"1kfdb0e\",\n  styles: \"position:fixed;left:0;bottom:0;right:0;top:0\"\n} : {\n  name: \"bp8cua-ScrollManager\",\n  styles: \"position:fixed;left:0;bottom:0;right:0;top:0;label:ScrollManager;\",\n  map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNjcm9sbE1hbmFnZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9EVSIsImZpbGUiOiJTY3JvbGxNYW5hZ2VyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgRnJhZ21lbnQsIFJlYWN0RWxlbWVudCwgUmVmQ2FsbGJhY2ssIE1vdXNlRXZlbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlU2Nyb2xsQ2FwdHVyZSBmcm9tICcuL3VzZVNjcm9sbENhcHR1cmUnO1xuaW1wb3J0IHVzZVNjcm9sbExvY2sgZnJvbSAnLi91c2VTY3JvbGxMb2NrJztcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgcmVhZG9ubHkgY2hpbGRyZW46IChyZWY6IFJlZkNhbGxiYWNrPEhUTUxFbGVtZW50PikgPT4gUmVhY3RFbGVtZW50O1xuICByZWFkb25seSBsb2NrRW5hYmxlZDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgY2FwdHVyZUVuYWJsZWQ6IGJvb2xlYW47XG4gIHJlYWRvbmx5IG9uQm90dG9tQXJyaXZlPzogKGV2ZW50OiBXaGVlbEV2ZW50IHwgVG91Y2hFdmVudCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgb25Cb3R0b21MZWF2ZT86IChldmVudDogV2hlZWxFdmVudCB8IFRvdWNoRXZlbnQpID0+IHZvaWQ7XG4gIHJlYWRvbmx5IG9uVG9wQXJyaXZlPzogKGV2ZW50OiBXaGVlbEV2ZW50IHwgVG91Y2hFdmVudCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgb25Ub3BMZWF2ZT86IChldmVudDogV2hlZWxFdmVudCB8IFRvdWNoRXZlbnQpID0+IHZvaWQ7XG59XG5cbmNvbnN0IGJsdXJTZWxlY3RJbnB1dCA9IChldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgY29uc3QgZWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcbiAgcmV0dXJuIChcbiAgICBlbGVtZW50Lm93bmVyRG9jdW1lbnQuYWN0aXZlRWxlbWVudCAmJlxuICAgIChlbGVtZW50Lm93bmVyRG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuYmx1cigpXG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTY3JvbGxNYW5hZ2VyKHtcbiAgY2hpbGRyZW4sXG4gIGxvY2tFbmFibGVkLFxuICBjYXB0dXJlRW5hYmxlZCA9IHRydWUsXG4gIG9uQm90dG9tQXJyaXZlLFxuICBvbkJvdHRvbUxlYXZlLFxuICBvblRvcEFycml2ZSxcbiAgb25Ub3BMZWF2ZSxcbn06IFByb3BzKSB7XG4gIGNvbnN0IHNldFNjcm9sbENhcHR1cmVUYXJnZXQgPSB1c2VTY3JvbGxDYXB0dXJlKHtcbiAgICBpc0VuYWJsZWQ6IGNhcHR1cmVFbmFibGVkLFxuICAgIG9uQm90dG9tQXJyaXZlLFxuICAgIG9uQm90dG9tTGVhdmUsXG4gICAgb25Ub3BBcnJpdmUsXG4gICAgb25Ub3BMZWF2ZSxcbiAgfSk7XG4gIGNvbnN0IHNldFNjcm9sbExvY2tUYXJnZXQgPSB1c2VTY3JvbGxMb2NrKHsgaXNFbmFibGVkOiBsb2NrRW5hYmxlZCB9KTtcblxuICBjb25zdCB0YXJnZXRSZWY6IFJlZkNhbGxiYWNrPEhUTUxFbGVtZW50PiA9IChlbGVtZW50KSA9PiB7XG4gICAgc2V0U2Nyb2xsQ2FwdHVyZVRhcmdldChlbGVtZW50KTtcbiAgICBzZXRTY3JvbGxMb2NrVGFyZ2V0KGVsZW1lbnQpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPEZyYWdtZW50PlxuICAgICAge2xvY2tFbmFibGVkICYmIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIG9uQ2xpY2s9e2JsdXJTZWxlY3RJbnB1dH1cbiAgICAgICAgICBjc3M9e3sgcG9zaXRpb246ICdmaXhlZCcsIGxlZnQ6IDAsIGJvdHRvbTogMCwgcmlnaHQ6IDAsIHRvcDogMCB9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIHtjaGlsZHJlbih0YXJnZXRSZWYpfVxuICAgIDwvRnJhZ21lbnQ+XG4gICk7XG59XG4iXX0= */\",\n  toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1\n};\nfunction ScrollManager(_ref) {\n  var children = _ref.children,\n    lockEnabled = _ref.lockEnabled,\n    _ref$captureEnabled = _ref.captureEnabled,\n    captureEnabled = _ref$captureEnabled === void 0 ? true : _ref$captureEnabled,\n    onBottomArrive = _ref.onBottomArrive,\n    onBottomLeave = _ref.onBottomLeave,\n    onTopArrive = _ref.onTopArrive,\n    onTopLeave = _ref.onTopLeave;\n  var setScrollCaptureTarget = useScrollCapture({\n    isEnabled: captureEnabled,\n    onBottomArrive: onBottomArrive,\n    onBottomLeave: onBottomLeave,\n    onTopArrive: onTopArrive,\n    onTopLeave: onTopLeave\n  });\n  var setScrollLockTarget = useScrollLock({\n    isEnabled: lockEnabled\n  });\n  var targetRef = function targetRef(element) {\n    setScrollCaptureTarget(element);\n    setScrollLockTarget(element);\n  };\n  return jsx(Fragment, null, lockEnabled && jsx(\"div\", {\n    onClick: blurSelectInput,\n    css: _ref2$1\n  }), children(targetRef));\n}\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\nvar _ref2 = process.env.NODE_ENV === \"production\" ? {\n  name: \"1a0ro4n-requiredInput\",\n  styles: \"label:requiredInput;opacity:0;pointer-events:none;position:absolute;bottom:0;left:0;right:0;width:100%\"\n} : {\n  name: \"5kkxb2-requiredInput-RequiredInput\",\n  styles: \"label:requiredInput;opacity:0;pointer-events:none;position:absolute;bottom:0;left:0;right:0;width:100%;label:RequiredInput;\",\n  map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlJlcXVpcmVkSW5wdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNJIiwiZmlsZSI6IlJlcXVpcmVkSW5wdXQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyBGb2N1c0V2ZW50SGFuZGxlciwgRnVuY3Rpb25Db21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmNvbnN0IFJlcXVpcmVkSW5wdXQ6IEZ1bmN0aW9uQ29tcG9uZW50PHtcbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgb25Gb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD47XG59PiA9ICh7IG5hbWUsIG9uRm9jdXMgfSkgPT4gKFxuICA8aW5wdXRcbiAgICByZXF1aXJlZFxuICAgIG5hbWU9e25hbWV9XG4gICAgdGFiSW5kZXg9ey0xfVxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICBjc3M9e3tcbiAgICAgIGxhYmVsOiAncmVxdWlyZWRJbnB1dCcsXG4gICAgICBvcGFjaXR5OiAwLFxuICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICBib3R0b206IDAsXG4gICAgICBsZWZ0OiAwLFxuICAgICAgcmlnaHQ6IDAsXG4gICAgICB3aWR0aDogJzEwMCUnLFxuICAgIH19XG4gICAgLy8gUHJldmVudCBgU3dpdGNoaW5nIGZyb20gdW5jb250cm9sbGVkIHRvIGNvbnRyb2xsZWRgIGVycm9yXG4gICAgdmFsdWU9XCJcIlxuICAgIG9uQ2hhbmdlPXsoKSA9PiB7fX1cbiAgLz5cbik7XG5cbmV4cG9ydCBkZWZhdWx0IFJlcXVpcmVkSW5wdXQ7XG4iXX0= */\",\n  toString: _EMOTION_STRINGIFIED_CSS_ERROR__\n};\nvar RequiredInput = function RequiredInput(_ref) {\n  var name = _ref.name,\n    onFocus = _ref.onFocus;\n  return jsx(\"input\", {\n    required: true,\n    name: name,\n    tabIndex: -1,\n    \"aria-hidden\": \"true\",\n    onFocus: onFocus,\n    css: _ref2\n    // Prevent `Switching from uncontrolled to controlled` error\n    ,\n    value: \"\",\n    onChange: function onChange() {}\n  });\n};\nvar RequiredInput$1 = RequiredInput;\n\n/// <reference types=\"user-agent-data-types\" />\n\nfunction testPlatform(re) {\n  var _window$navigator$use;\n  return typeof window !== 'undefined' && window.navigator != null ? re.test(((_window$navigator$use = window.navigator['userAgentData']) === null || _window$navigator$use === void 0 ? void 0 : _window$navigator$use.platform) || window.navigator.platform) : false;\n}\nfunction isIPhone() {\n  return testPlatform(/^iPhone/i);\n}\nfunction isMac() {\n  return testPlatform(/^Mac/i);\n}\nfunction isIPad() {\n  return testPlatform(/^iPad/i) ||\n  // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n  isMac() && navigator.maxTouchPoints > 1;\n}\nfunction isIOS() {\n  return isIPhone() || isIPad();\n}\nfunction isAppleDevice() {\n  return isMac() || isIOS();\n}\n\nvar formatGroupLabel = function formatGroupLabel(group) {\n  return group.label;\n};\nvar getOptionLabel$1 = function getOptionLabel(option) {\n  return option.label;\n};\nvar getOptionValue$1 = function getOptionValue(option) {\n  return option.value;\n};\nvar isOptionDisabled = function isOptionDisabled(option) {\n  return !!option.isDisabled;\n};\n\nvar defaultStyles = {\n  clearIndicator: clearIndicatorCSS,\n  container: containerCSS,\n  control: css$1,\n  dropdownIndicator: dropdownIndicatorCSS,\n  group: groupCSS,\n  groupHeading: groupHeadingCSS,\n  indicatorsContainer: indicatorsContainerCSS,\n  indicatorSeparator: indicatorSeparatorCSS,\n  input: inputCSS,\n  loadingIndicator: loadingIndicatorCSS,\n  loadingMessage: loadingMessageCSS,\n  menu: menuCSS,\n  menuList: menuListCSS,\n  menuPortal: menuPortalCSS,\n  multiValue: multiValueCSS,\n  multiValueLabel: multiValueLabelCSS,\n  multiValueRemove: multiValueRemoveCSS,\n  noOptionsMessage: noOptionsMessageCSS,\n  option: optionCSS,\n  placeholder: placeholderCSS,\n  singleValue: css$2,\n  valueContainer: valueContainerCSS\n};\n// Merge Utility\n// Allows consumers to extend a base Select with additional styles\n\nfunction mergeStyles(source) {\n  var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  // initialize with source styles\n  var styles = _objectSpread({}, source);\n\n  // massage in target styles\n  Object.keys(target).forEach(function (keyAsString) {\n    var key = keyAsString;\n    if (source[key]) {\n      styles[key] = function (rsCss, props) {\n        return target[key](source[key](rsCss, props), props);\n      };\n    } else {\n      styles[key] = target[key];\n    }\n  });\n  return styles;\n}\n\nvar colors = {\n  primary: '#2684FF',\n  primary75: '#4C9AFF',\n  primary50: '#B2D4FF',\n  primary25: '#DEEBFF',\n  danger: '#DE350B',\n  dangerLight: '#FFBDAD',\n  neutral0: 'hsl(0, 0%, 100%)',\n  neutral5: 'hsl(0, 0%, 95%)',\n  neutral10: 'hsl(0, 0%, 90%)',\n  neutral20: 'hsl(0, 0%, 80%)',\n  neutral30: 'hsl(0, 0%, 70%)',\n  neutral40: 'hsl(0, 0%, 60%)',\n  neutral50: 'hsl(0, 0%, 50%)',\n  neutral60: 'hsl(0, 0%, 40%)',\n  neutral70: 'hsl(0, 0%, 30%)',\n  neutral80: 'hsl(0, 0%, 20%)',\n  neutral90: 'hsl(0, 0%, 10%)'\n};\nvar borderRadius = 4;\n// Used to calculate consistent margin/padding on elements\nvar baseUnit = 4;\n// The minimum height of the control\nvar controlHeight = 38;\n// The amount of space between the control and menu */\nvar menuGutter = baseUnit * 2;\nvar spacing = {\n  baseUnit: baseUnit,\n  controlHeight: controlHeight,\n  menuGutter: menuGutter\n};\nvar defaultTheme = {\n  borderRadius: borderRadius,\n  colors: colors,\n  spacing: spacing\n};\n\nvar defaultProps = {\n  'aria-live': 'polite',\n  backspaceRemovesValue: true,\n  blurInputOnSelect: isTouchCapable(),\n  captureMenuScroll: !isTouchCapable(),\n  classNames: {},\n  closeMenuOnSelect: true,\n  closeMenuOnScroll: false,\n  components: {},\n  controlShouldRenderValue: true,\n  escapeClearsValue: false,\n  filterOption: createFilter(),\n  formatGroupLabel: formatGroupLabel,\n  getOptionLabel: getOptionLabel$1,\n  getOptionValue: getOptionValue$1,\n  isDisabled: false,\n  isLoading: false,\n  isMulti: false,\n  isRtl: false,\n  isSearchable: true,\n  isOptionDisabled: isOptionDisabled,\n  loadingMessage: function loadingMessage() {\n    return 'Loading...';\n  },\n  maxMenuHeight: 300,\n  minMenuHeight: 140,\n  menuIsOpen: false,\n  menuPlacement: 'bottom',\n  menuPosition: 'absolute',\n  menuShouldBlockScroll: false,\n  menuShouldScrollIntoView: !isMobileDevice(),\n  noOptionsMessage: function noOptionsMessage() {\n    return 'No options';\n  },\n  openMenuOnFocus: false,\n  openMenuOnClick: true,\n  options: [],\n  pageSize: 5,\n  placeholder: 'Select...',\n  screenReaderStatus: function screenReaderStatus(_ref) {\n    var count = _ref.count;\n    return \"\".concat(count, \" result\").concat(count !== 1 ? 's' : '', \" available\");\n  },\n  styles: {},\n  tabIndex: 0,\n  tabSelectsValue: true,\n  unstyled: false\n};\nfunction toCategorizedOption(props, option, selectValue, index) {\n  var isDisabled = _isOptionDisabled(props, option, selectValue);\n  var isSelected = _isOptionSelected(props, option, selectValue);\n  var label = getOptionLabel(props, option);\n  var value = getOptionValue(props, option);\n  return {\n    type: 'option',\n    data: option,\n    isDisabled: isDisabled,\n    isSelected: isSelected,\n    label: label,\n    value: value,\n    index: index\n  };\n}\nfunction buildCategorizedOptions(props, selectValue) {\n  return props.options.map(function (groupOrOption, groupOrOptionIndex) {\n    if ('options' in groupOrOption) {\n      var categorizedOptions = groupOrOption.options.map(function (option, optionIndex) {\n        return toCategorizedOption(props, option, selectValue, optionIndex);\n      }).filter(function (categorizedOption) {\n        return isFocusable(props, categorizedOption);\n      });\n      return categorizedOptions.length > 0 ? {\n        type: 'group',\n        data: groupOrOption,\n        options: categorizedOptions,\n        index: groupOrOptionIndex\n      } : undefined;\n    }\n    var categorizedOption = toCategorizedOption(props, groupOrOption, selectValue, groupOrOptionIndex);\n    return isFocusable(props, categorizedOption) ? categorizedOption : undefined;\n  }).filter(notNullish);\n}\nfunction buildFocusableOptionsFromCategorizedOptions(categorizedOptions) {\n  return categorizedOptions.reduce(function (optionsAccumulator, categorizedOption) {\n    if (categorizedOption.type === 'group') {\n      optionsAccumulator.push.apply(optionsAccumulator, _toConsumableArray(categorizedOption.options.map(function (option) {\n        return option.data;\n      })));\n    } else {\n      optionsAccumulator.push(categorizedOption.data);\n    }\n    return optionsAccumulator;\n  }, []);\n}\nfunction buildFocusableOptionsWithIds(categorizedOptions, optionId) {\n  return categorizedOptions.reduce(function (optionsAccumulator, categorizedOption) {\n    if (categorizedOption.type === 'group') {\n      optionsAccumulator.push.apply(optionsAccumulator, _toConsumableArray(categorizedOption.options.map(function (option) {\n        return {\n          data: option.data,\n          id: \"\".concat(optionId, \"-\").concat(categorizedOption.index, \"-\").concat(option.index)\n        };\n      })));\n    } else {\n      optionsAccumulator.push({\n        data: categorizedOption.data,\n        id: \"\".concat(optionId, \"-\").concat(categorizedOption.index)\n      });\n    }\n    return optionsAccumulator;\n  }, []);\n}\nfunction buildFocusableOptions(props, selectValue) {\n  return buildFocusableOptionsFromCategorizedOptions(buildCategorizedOptions(props, selectValue));\n}\nfunction isFocusable(props, categorizedOption) {\n  var _props$inputValue = props.inputValue,\n    inputValue = _props$inputValue === void 0 ? '' : _props$inputValue;\n  var data = categorizedOption.data,\n    isSelected = categorizedOption.isSelected,\n    label = categorizedOption.label,\n    value = categorizedOption.value;\n  return (!shouldHideSelectedOptions(props) || !isSelected) && _filterOption(props, {\n    label: label,\n    value: value,\n    data: data\n  }, inputValue);\n}\nfunction getNextFocusedValue(state, nextSelectValue) {\n  var focusedValue = state.focusedValue,\n    lastSelectValue = state.selectValue;\n  var lastFocusedIndex = lastSelectValue.indexOf(focusedValue);\n  if (lastFocusedIndex > -1) {\n    var nextFocusedIndex = nextSelectValue.indexOf(focusedValue);\n    if (nextFocusedIndex > -1) {\n      // the focused value is still in the selectValue, return it\n      return focusedValue;\n    } else if (lastFocusedIndex < nextSelectValue.length) {\n      // the focusedValue is not present in the next selectValue array by\n      // reference, so return the new value at the same index\n      return nextSelectValue[lastFocusedIndex];\n    }\n  }\n  return null;\n}\nfunction getNextFocusedOption(state, options) {\n  var lastFocusedOption = state.focusedOption;\n  return lastFocusedOption && options.indexOf(lastFocusedOption) > -1 ? lastFocusedOption : options[0];\n}\nvar getFocusedOptionId = function getFocusedOptionId(focusableOptionsWithIds, focusedOption) {\n  var _focusableOptionsWith;\n  var focusedOptionId = (_focusableOptionsWith = focusableOptionsWithIds.find(function (option) {\n    return option.data === focusedOption;\n  })) === null || _focusableOptionsWith === void 0 ? void 0 : _focusableOptionsWith.id;\n  return focusedOptionId || null;\n};\nvar getOptionLabel = function getOptionLabel(props, data) {\n  return props.getOptionLabel(data);\n};\nvar getOptionValue = function getOptionValue(props, data) {\n  return props.getOptionValue(data);\n};\nfunction _isOptionDisabled(props, option, selectValue) {\n  return typeof props.isOptionDisabled === 'function' ? props.isOptionDisabled(option, selectValue) : false;\n}\nfunction _isOptionSelected(props, option, selectValue) {\n  if (selectValue.indexOf(option) > -1) return true;\n  if (typeof props.isOptionSelected === 'function') {\n    return props.isOptionSelected(option, selectValue);\n  }\n  var candidate = getOptionValue(props, option);\n  return selectValue.some(function (i) {\n    return getOptionValue(props, i) === candidate;\n  });\n}\nfunction _filterOption(props, option, inputValue) {\n  return props.filterOption ? props.filterOption(option, inputValue) : true;\n}\nvar shouldHideSelectedOptions = function shouldHideSelectedOptions(props) {\n  var hideSelectedOptions = props.hideSelectedOptions,\n    isMulti = props.isMulti;\n  if (hideSelectedOptions === undefined) return isMulti;\n  return hideSelectedOptions;\n};\nvar instanceId = 1;\nvar Select = /*#__PURE__*/function (_Component) {\n  _inherits(Select, _Component);\n  var _super = _createSuper(Select);\n  // Misc. Instance Properties\n  // ------------------------------\n\n  // TODO\n\n  // Refs\n  // ------------------------------\n\n  // Lifecycle\n  // ------------------------------\n\n  function Select(_props) {\n    var _this;\n    _classCallCheck(this, Select);\n    _this = _super.call(this, _props);\n    _this.state = {\n      ariaSelection: null,\n      focusedOption: null,\n      focusedOptionId: null,\n      focusableOptionsWithIds: [],\n      focusedValue: null,\n      inputIsHidden: false,\n      isFocused: false,\n      selectValue: [],\n      clearFocusValueOnUpdate: false,\n      prevWasFocused: false,\n      inputIsHiddenAfterUpdate: undefined,\n      prevProps: undefined,\n      instancePrefix: ''\n    };\n    _this.blockOptionHover = false;\n    _this.isComposing = false;\n    _this.commonProps = void 0;\n    _this.initialTouchX = 0;\n    _this.initialTouchY = 0;\n    _this.openAfterFocus = false;\n    _this.scrollToFocusedOptionOnUpdate = false;\n    _this.userIsDragging = void 0;\n    _this.isAppleDevice = isAppleDevice();\n    _this.controlRef = null;\n    _this.getControlRef = function (ref) {\n      _this.controlRef = ref;\n    };\n    _this.focusedOptionRef = null;\n    _this.getFocusedOptionRef = function (ref) {\n      _this.focusedOptionRef = ref;\n    };\n    _this.menuListRef = null;\n    _this.getMenuListRef = function (ref) {\n      _this.menuListRef = ref;\n    };\n    _this.inputRef = null;\n    _this.getInputRef = function (ref) {\n      _this.inputRef = ref;\n    };\n    _this.focus = _this.focusInput;\n    _this.blur = _this.blurInput;\n    _this.onChange = function (newValue, actionMeta) {\n      var _this$props = _this.props,\n        onChange = _this$props.onChange,\n        name = _this$props.name;\n      actionMeta.name = name;\n      _this.ariaOnChange(newValue, actionMeta);\n      onChange(newValue, actionMeta);\n    };\n    _this.setValue = function (newValue, action, option) {\n      var _this$props2 = _this.props,\n        closeMenuOnSelect = _this$props2.closeMenuOnSelect,\n        isMulti = _this$props2.isMulti,\n        inputValue = _this$props2.inputValue;\n      _this.onInputChange('', {\n        action: 'set-value',\n        prevInputValue: inputValue\n      });\n      if (closeMenuOnSelect) {\n        _this.setState({\n          inputIsHiddenAfterUpdate: !isMulti\n        });\n        _this.onMenuClose();\n      }\n      // when the select value should change, we should reset focusedValue\n      _this.setState({\n        clearFocusValueOnUpdate: true\n      });\n      _this.onChange(newValue, {\n        action: action,\n        option: option\n      });\n    };\n    _this.selectOption = function (newValue) {\n      var _this$props3 = _this.props,\n        blurInputOnSelect = _this$props3.blurInputOnSelect,\n        isMulti = _this$props3.isMulti,\n        name = _this$props3.name;\n      var selectValue = _this.state.selectValue;\n      var deselected = isMulti && _this.isOptionSelected(newValue, selectValue);\n      var isDisabled = _this.isOptionDisabled(newValue, selectValue);\n      if (deselected) {\n        var candidate = _this.getOptionValue(newValue);\n        _this.setValue(multiValueAsValue(selectValue.filter(function (i) {\n          return _this.getOptionValue(i) !== candidate;\n        })), 'deselect-option', newValue);\n      } else if (!isDisabled) {\n        // Select option if option is not disabled\n        if (isMulti) {\n          _this.setValue(multiValueAsValue([].concat(_toConsumableArray(selectValue), [newValue])), 'select-option', newValue);\n        } else {\n          _this.setValue(singleValueAsValue(newValue), 'select-option');\n        }\n      } else {\n        _this.ariaOnChange(singleValueAsValue(newValue), {\n          action: 'select-option',\n          option: newValue,\n          name: name\n        });\n        return;\n      }\n      if (blurInputOnSelect) {\n        _this.blurInput();\n      }\n    };\n    _this.removeValue = function (removedValue) {\n      var isMulti = _this.props.isMulti;\n      var selectValue = _this.state.selectValue;\n      var candidate = _this.getOptionValue(removedValue);\n      var newValueArray = selectValue.filter(function (i) {\n        return _this.getOptionValue(i) !== candidate;\n      });\n      var newValue = valueTernary(isMulti, newValueArray, newValueArray[0] || null);\n      _this.onChange(newValue, {\n        action: 'remove-value',\n        removedValue: removedValue\n      });\n      _this.focusInput();\n    };\n    _this.clearValue = function () {\n      var selectValue = _this.state.selectValue;\n      _this.onChange(valueTernary(_this.props.isMulti, [], null), {\n        action: 'clear',\n        removedValues: selectValue\n      });\n    };\n    _this.popValue = function () {\n      var isMulti = _this.props.isMulti;\n      var selectValue = _this.state.selectValue;\n      var lastSelectedValue = selectValue[selectValue.length - 1];\n      var newValueArray = selectValue.slice(0, selectValue.length - 1);\n      var newValue = valueTernary(isMulti, newValueArray, newValueArray[0] || null);\n      if (lastSelectedValue) {\n        _this.onChange(newValue, {\n          action: 'pop-value',\n          removedValue: lastSelectedValue\n        });\n      }\n    };\n    _this.getFocusedOptionId = function (focusedOption) {\n      return getFocusedOptionId(_this.state.focusableOptionsWithIds, focusedOption);\n    };\n    _this.getFocusableOptionsWithIds = function () {\n      return buildFocusableOptionsWithIds(buildCategorizedOptions(_this.props, _this.state.selectValue), _this.getElementId('option'));\n    };\n    _this.getValue = function () {\n      return _this.state.selectValue;\n    };\n    _this.cx = function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return classNames.apply(void 0, [_this.props.classNamePrefix].concat(args));\n    };\n    _this.getOptionLabel = function (data) {\n      return getOptionLabel(_this.props, data);\n    };\n    _this.getOptionValue = function (data) {\n      return getOptionValue(_this.props, data);\n    };\n    _this.getStyles = function (key, props) {\n      var unstyled = _this.props.unstyled;\n      var base = defaultStyles[key](props, unstyled);\n      base.boxSizing = 'border-box';\n      var custom = _this.props.styles[key];\n      return custom ? custom(base, props) : base;\n    };\n    _this.getClassNames = function (key, props) {\n      var _this$props$className, _this$props$className2;\n      return (_this$props$className = (_this$props$className2 = _this.props.classNames)[key]) === null || _this$props$className === void 0 ? void 0 : _this$props$className.call(_this$props$className2, props);\n    };\n    _this.getElementId = function (element) {\n      return \"\".concat(_this.state.instancePrefix, \"-\").concat(element);\n    };\n    _this.getComponents = function () {\n      return defaultComponents(_this.props);\n    };\n    _this.buildCategorizedOptions = function () {\n      return buildCategorizedOptions(_this.props, _this.state.selectValue);\n    };\n    _this.getCategorizedOptions = function () {\n      return _this.props.menuIsOpen ? _this.buildCategorizedOptions() : [];\n    };\n    _this.buildFocusableOptions = function () {\n      return buildFocusableOptionsFromCategorizedOptions(_this.buildCategorizedOptions());\n    };\n    _this.getFocusableOptions = function () {\n      return _this.props.menuIsOpen ? _this.buildFocusableOptions() : [];\n    };\n    _this.ariaOnChange = function (value, actionMeta) {\n      _this.setState({\n        ariaSelection: _objectSpread({\n          value: value\n        }, actionMeta)\n      });\n    };\n    _this.onMenuMouseDown = function (event) {\n      if (event.button !== 0) {\n        return;\n      }\n      event.stopPropagation();\n      event.preventDefault();\n      _this.focusInput();\n    };\n    _this.onMenuMouseMove = function (event) {\n      _this.blockOptionHover = false;\n    };\n    _this.onControlMouseDown = function (event) {\n      // Event captured by dropdown indicator\n      if (event.defaultPrevented) {\n        return;\n      }\n      var openMenuOnClick = _this.props.openMenuOnClick;\n      if (!_this.state.isFocused) {\n        if (openMenuOnClick) {\n          _this.openAfterFocus = true;\n        }\n        _this.focusInput();\n      } else if (!_this.props.menuIsOpen) {\n        if (openMenuOnClick) {\n          _this.openMenu('first');\n        }\n      } else {\n        if (event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n          _this.onMenuClose();\n        }\n      }\n      if (event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n        event.preventDefault();\n      }\n    };\n    _this.onDropdownIndicatorMouseDown = function (event) {\n      // ignore mouse events that weren't triggered by the primary button\n      if (event && event.type === 'mousedown' && event.button !== 0) {\n        return;\n      }\n      if (_this.props.isDisabled) return;\n      var _this$props4 = _this.props,\n        isMulti = _this$props4.isMulti,\n        menuIsOpen = _this$props4.menuIsOpen;\n      _this.focusInput();\n      if (menuIsOpen) {\n        _this.setState({\n          inputIsHiddenAfterUpdate: !isMulti\n        });\n        _this.onMenuClose();\n      } else {\n        _this.openMenu('first');\n      }\n      event.preventDefault();\n    };\n    _this.onClearIndicatorMouseDown = function (event) {\n      // ignore mouse events that weren't triggered by the primary button\n      if (event && event.type === 'mousedown' && event.button !== 0) {\n        return;\n      }\n      _this.clearValue();\n      event.preventDefault();\n      _this.openAfterFocus = false;\n      if (event.type === 'touchend') {\n        _this.focusInput();\n      } else {\n        setTimeout(function () {\n          return _this.focusInput();\n        });\n      }\n    };\n    _this.onScroll = function (event) {\n      if (typeof _this.props.closeMenuOnScroll === 'boolean') {\n        if (event.target instanceof HTMLElement && isDocumentElement(event.target)) {\n          _this.props.onMenuClose();\n        }\n      } else if (typeof _this.props.closeMenuOnScroll === 'function') {\n        if (_this.props.closeMenuOnScroll(event)) {\n          _this.props.onMenuClose();\n        }\n      }\n    };\n    _this.onCompositionStart = function () {\n      _this.isComposing = true;\n    };\n    _this.onCompositionEnd = function () {\n      _this.isComposing = false;\n    };\n    _this.onTouchStart = function (_ref2) {\n      var touches = _ref2.touches;\n      var touch = touches && touches.item(0);\n      if (!touch) {\n        return;\n      }\n      _this.initialTouchX = touch.clientX;\n      _this.initialTouchY = touch.clientY;\n      _this.userIsDragging = false;\n    };\n    _this.onTouchMove = function (_ref3) {\n      var touches = _ref3.touches;\n      var touch = touches && touches.item(0);\n      if (!touch) {\n        return;\n      }\n      var deltaX = Math.abs(touch.clientX - _this.initialTouchX);\n      var deltaY = Math.abs(touch.clientY - _this.initialTouchY);\n      var moveThreshold = 5;\n      _this.userIsDragging = deltaX > moveThreshold || deltaY > moveThreshold;\n    };\n    _this.onTouchEnd = function (event) {\n      if (_this.userIsDragging) return;\n\n      // close the menu if the user taps outside\n      // we're checking on event.target here instead of event.currentTarget, because we want to assert information\n      // on events on child elements, not the document (which we've attached this handler to).\n      if (_this.controlRef && !_this.controlRef.contains(event.target) && _this.menuListRef && !_this.menuListRef.contains(event.target)) {\n        _this.blurInput();\n      }\n\n      // reset move vars\n      _this.initialTouchX = 0;\n      _this.initialTouchY = 0;\n    };\n    _this.onControlTouchEnd = function (event) {\n      if (_this.userIsDragging) return;\n      _this.onControlMouseDown(event);\n    };\n    _this.onClearIndicatorTouchEnd = function (event) {\n      if (_this.userIsDragging) return;\n      _this.onClearIndicatorMouseDown(event);\n    };\n    _this.onDropdownIndicatorTouchEnd = function (event) {\n      if (_this.userIsDragging) return;\n      _this.onDropdownIndicatorMouseDown(event);\n    };\n    _this.handleInputChange = function (event) {\n      var prevInputValue = _this.props.inputValue;\n      var inputValue = event.currentTarget.value;\n      _this.setState({\n        inputIsHiddenAfterUpdate: false\n      });\n      _this.onInputChange(inputValue, {\n        action: 'input-change',\n        prevInputValue: prevInputValue\n      });\n      if (!_this.props.menuIsOpen) {\n        _this.onMenuOpen();\n      }\n    };\n    _this.onInputFocus = function (event) {\n      if (_this.props.onFocus) {\n        _this.props.onFocus(event);\n      }\n      _this.setState({\n        inputIsHiddenAfterUpdate: false,\n        isFocused: true\n      });\n      if (_this.openAfterFocus || _this.props.openMenuOnFocus) {\n        _this.openMenu('first');\n      }\n      _this.openAfterFocus = false;\n    };\n    _this.onInputBlur = function (event) {\n      var prevInputValue = _this.props.inputValue;\n      if (_this.menuListRef && _this.menuListRef.contains(document.activeElement)) {\n        _this.inputRef.focus();\n        return;\n      }\n      if (_this.props.onBlur) {\n        _this.props.onBlur(event);\n      }\n      _this.onInputChange('', {\n        action: 'input-blur',\n        prevInputValue: prevInputValue\n      });\n      _this.onMenuClose();\n      _this.setState({\n        focusedValue: null,\n        isFocused: false\n      });\n    };\n    _this.onOptionHover = function (focusedOption) {\n      if (_this.blockOptionHover || _this.state.focusedOption === focusedOption) {\n        return;\n      }\n      var options = _this.getFocusableOptions();\n      var focusedOptionIndex = options.indexOf(focusedOption);\n      _this.setState({\n        focusedOption: focusedOption,\n        focusedOptionId: focusedOptionIndex > -1 ? _this.getFocusedOptionId(focusedOption) : null\n      });\n    };\n    _this.shouldHideSelectedOptions = function () {\n      return shouldHideSelectedOptions(_this.props);\n    };\n    _this.onValueInputFocus = function (e) {\n      e.preventDefault();\n      e.stopPropagation();\n      _this.focus();\n    };\n    _this.onKeyDown = function (event) {\n      var _this$props5 = _this.props,\n        isMulti = _this$props5.isMulti,\n        backspaceRemovesValue = _this$props5.backspaceRemovesValue,\n        escapeClearsValue = _this$props5.escapeClearsValue,\n        inputValue = _this$props5.inputValue,\n        isClearable = _this$props5.isClearable,\n        isDisabled = _this$props5.isDisabled,\n        menuIsOpen = _this$props5.menuIsOpen,\n        onKeyDown = _this$props5.onKeyDown,\n        tabSelectsValue = _this$props5.tabSelectsValue,\n        openMenuOnFocus = _this$props5.openMenuOnFocus;\n      var _this$state = _this.state,\n        focusedOption = _this$state.focusedOption,\n        focusedValue = _this$state.focusedValue,\n        selectValue = _this$state.selectValue;\n      if (isDisabled) return;\n      if (typeof onKeyDown === 'function') {\n        onKeyDown(event);\n        if (event.defaultPrevented) {\n          return;\n        }\n      }\n\n      // Block option hover events when the user has just pressed a key\n      _this.blockOptionHover = true;\n      switch (event.key) {\n        case 'ArrowLeft':\n          if (!isMulti || inputValue) return;\n          _this.focusValue('previous');\n          break;\n        case 'ArrowRight':\n          if (!isMulti || inputValue) return;\n          _this.focusValue('next');\n          break;\n        case 'Delete':\n        case 'Backspace':\n          if (inputValue) return;\n          if (focusedValue) {\n            _this.removeValue(focusedValue);\n          } else {\n            if (!backspaceRemovesValue) return;\n            if (isMulti) {\n              _this.popValue();\n            } else if (isClearable) {\n              _this.clearValue();\n            }\n          }\n          break;\n        case 'Tab':\n          if (_this.isComposing) return;\n          if (event.shiftKey || !menuIsOpen || !tabSelectsValue || !focusedOption ||\n          // don't capture the event if the menu opens on focus and the focused\n          // option is already selected; it breaks the flow of navigation\n          openMenuOnFocus && _this.isOptionSelected(focusedOption, selectValue)) {\n            return;\n          }\n          _this.selectOption(focusedOption);\n          break;\n        case 'Enter':\n          if (event.keyCode === 229) {\n            // ignore the keydown event from an Input Method Editor(IME)\n            // ref. https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\n            break;\n          }\n          if (menuIsOpen) {\n            if (!focusedOption) return;\n            if (_this.isComposing) return;\n            _this.selectOption(focusedOption);\n            break;\n          }\n          return;\n        case 'Escape':\n          if (menuIsOpen) {\n            _this.setState({\n              inputIsHiddenAfterUpdate: false\n            });\n            _this.onInputChange('', {\n              action: 'menu-close',\n              prevInputValue: inputValue\n            });\n            _this.onMenuClose();\n          } else if (isClearable && escapeClearsValue) {\n            _this.clearValue();\n          }\n          break;\n        case ' ':\n          // space\n          if (inputValue) {\n            return;\n          }\n          if (!menuIsOpen) {\n            _this.openMenu('first');\n            break;\n          }\n          if (!focusedOption) return;\n          _this.selectOption(focusedOption);\n          break;\n        case 'ArrowUp':\n          if (menuIsOpen) {\n            _this.focusOption('up');\n          } else {\n            _this.openMenu('last');\n          }\n          break;\n        case 'ArrowDown':\n          if (menuIsOpen) {\n            _this.focusOption('down');\n          } else {\n            _this.openMenu('first');\n          }\n          break;\n        case 'PageUp':\n          if (!menuIsOpen) return;\n          _this.focusOption('pageup');\n          break;\n        case 'PageDown':\n          if (!menuIsOpen) return;\n          _this.focusOption('pagedown');\n          break;\n        case 'Home':\n          if (!menuIsOpen) return;\n          _this.focusOption('first');\n          break;\n        case 'End':\n          if (!menuIsOpen) return;\n          _this.focusOption('last');\n          break;\n        default:\n          return;\n      }\n      event.preventDefault();\n    };\n    _this.state.instancePrefix = 'react-select-' + (_this.props.instanceId || ++instanceId);\n    _this.state.selectValue = cleanValue(_props.value);\n    // Set focusedOption if menuIsOpen is set on init (e.g. defaultMenuIsOpen)\n    if (_props.menuIsOpen && _this.state.selectValue.length) {\n      var focusableOptionsWithIds = _this.getFocusableOptionsWithIds();\n      var focusableOptions = _this.buildFocusableOptions();\n      var optionIndex = focusableOptions.indexOf(_this.state.selectValue[0]);\n      _this.state.focusableOptionsWithIds = focusableOptionsWithIds;\n      _this.state.focusedOption = focusableOptions[optionIndex];\n      _this.state.focusedOptionId = getFocusedOptionId(focusableOptionsWithIds, focusableOptions[optionIndex]);\n    }\n    return _this;\n  }\n  _createClass(Select, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.startListeningComposition();\n      this.startListeningToTouch();\n      if (this.props.closeMenuOnScroll && document && document.addEventListener) {\n        // Listen to all scroll events, and filter them out inside of 'onScroll'\n        document.addEventListener('scroll', this.onScroll, true);\n      }\n      if (this.props.autoFocus) {\n        this.focusInput();\n      }\n\n      // Scroll focusedOption into view if menuIsOpen is set on mount (e.g. defaultMenuIsOpen)\n      if (this.props.menuIsOpen && this.state.focusedOption && this.menuListRef && this.focusedOptionRef) {\n        scrollIntoView(this.menuListRef, this.focusedOptionRef);\n      }\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var _this$props6 = this.props,\n        isDisabled = _this$props6.isDisabled,\n        menuIsOpen = _this$props6.menuIsOpen;\n      var isFocused = this.state.isFocused;\n      if (\n      // ensure focus is restored correctly when the control becomes enabled\n      isFocused && !isDisabled && prevProps.isDisabled ||\n      // ensure focus is on the Input when the menu opens\n      isFocused && menuIsOpen && !prevProps.menuIsOpen) {\n        this.focusInput();\n      }\n      if (isFocused && isDisabled && !prevProps.isDisabled) {\n        // ensure select state gets blurred in case Select is programmatically disabled while focused\n        // eslint-disable-next-line react/no-did-update-set-state\n        this.setState({\n          isFocused: false\n        }, this.onMenuClose);\n      } else if (!isFocused && !isDisabled && prevProps.isDisabled && this.inputRef === document.activeElement) {\n        // ensure select state gets focused in case Select is programatically re-enabled while focused (Firefox)\n        // eslint-disable-next-line react/no-did-update-set-state\n        this.setState({\n          isFocused: true\n        });\n      }\n\n      // scroll the focused option into view if necessary\n      if (this.menuListRef && this.focusedOptionRef && this.scrollToFocusedOptionOnUpdate) {\n        scrollIntoView(this.menuListRef, this.focusedOptionRef);\n        this.scrollToFocusedOptionOnUpdate = false;\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.stopListeningComposition();\n      this.stopListeningToTouch();\n      document.removeEventListener('scroll', this.onScroll, true);\n    }\n\n    // ==============================\n    // Consumer Handlers\n    // ==============================\n  }, {\n    key: \"onMenuOpen\",\n    value: function onMenuOpen() {\n      this.props.onMenuOpen();\n    }\n  }, {\n    key: \"onMenuClose\",\n    value: function onMenuClose() {\n      this.onInputChange('', {\n        action: 'menu-close',\n        prevInputValue: this.props.inputValue\n      });\n      this.props.onMenuClose();\n    }\n  }, {\n    key: \"onInputChange\",\n    value: function onInputChange(newValue, actionMeta) {\n      this.props.onInputChange(newValue, actionMeta);\n    }\n\n    // ==============================\n    // Methods\n    // ==============================\n  }, {\n    key: \"focusInput\",\n    value: function focusInput() {\n      if (!this.inputRef) return;\n      this.inputRef.focus();\n    }\n  }, {\n    key: \"blurInput\",\n    value: function blurInput() {\n      if (!this.inputRef) return;\n      this.inputRef.blur();\n    }\n\n    // aliased for consumers\n  }, {\n    key: \"openMenu\",\n    value: function openMenu(focusOption) {\n      var _this2 = this;\n      var _this$state2 = this.state,\n        selectValue = _this$state2.selectValue,\n        isFocused = _this$state2.isFocused;\n      var focusableOptions = this.buildFocusableOptions();\n      var openAtIndex = focusOption === 'first' ? 0 : focusableOptions.length - 1;\n      if (!this.props.isMulti) {\n        var selectedIndex = focusableOptions.indexOf(selectValue[0]);\n        if (selectedIndex > -1) {\n          openAtIndex = selectedIndex;\n        }\n      }\n\n      // only scroll if the menu isn't already open\n      this.scrollToFocusedOptionOnUpdate = !(isFocused && this.menuListRef);\n      this.setState({\n        inputIsHiddenAfterUpdate: false,\n        focusedValue: null,\n        focusedOption: focusableOptions[openAtIndex],\n        focusedOptionId: this.getFocusedOptionId(focusableOptions[openAtIndex])\n      }, function () {\n        return _this2.onMenuOpen();\n      });\n    }\n  }, {\n    key: \"focusValue\",\n    value: function focusValue(direction) {\n      var _this$state3 = this.state,\n        selectValue = _this$state3.selectValue,\n        focusedValue = _this$state3.focusedValue;\n\n      // Only multiselects support value focusing\n      if (!this.props.isMulti) return;\n      this.setState({\n        focusedOption: null\n      });\n      var focusedIndex = selectValue.indexOf(focusedValue);\n      if (!focusedValue) {\n        focusedIndex = -1;\n      }\n      var lastIndex = selectValue.length - 1;\n      var nextFocus = -1;\n      if (!selectValue.length) return;\n      switch (direction) {\n        case 'previous':\n          if (focusedIndex === 0) {\n            // don't cycle from the start to the end\n            nextFocus = 0;\n          } else if (focusedIndex === -1) {\n            // if nothing is focused, focus the last value first\n            nextFocus = lastIndex;\n          } else {\n            nextFocus = focusedIndex - 1;\n          }\n          break;\n        case 'next':\n          if (focusedIndex > -1 && focusedIndex < lastIndex) {\n            nextFocus = focusedIndex + 1;\n          }\n          break;\n      }\n      this.setState({\n        inputIsHidden: nextFocus !== -1,\n        focusedValue: selectValue[nextFocus]\n      });\n    }\n  }, {\n    key: \"focusOption\",\n    value: function focusOption() {\n      var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'first';\n      var pageSize = this.props.pageSize;\n      var focusedOption = this.state.focusedOption;\n      var options = this.getFocusableOptions();\n      if (!options.length) return;\n      var nextFocus = 0; // handles 'first'\n      var focusedIndex = options.indexOf(focusedOption);\n      if (!focusedOption) {\n        focusedIndex = -1;\n      }\n      if (direction === 'up') {\n        nextFocus = focusedIndex > 0 ? focusedIndex - 1 : options.length - 1;\n      } else if (direction === 'down') {\n        nextFocus = (focusedIndex + 1) % options.length;\n      } else if (direction === 'pageup') {\n        nextFocus = focusedIndex - pageSize;\n        if (nextFocus < 0) nextFocus = 0;\n      } else if (direction === 'pagedown') {\n        nextFocus = focusedIndex + pageSize;\n        if (nextFocus > options.length - 1) nextFocus = options.length - 1;\n      } else if (direction === 'last') {\n        nextFocus = options.length - 1;\n      }\n      this.scrollToFocusedOptionOnUpdate = true;\n      this.setState({\n        focusedOption: options[nextFocus],\n        focusedValue: null,\n        focusedOptionId: this.getFocusedOptionId(options[nextFocus])\n      });\n    }\n  }, {\n    key: \"getTheme\",\n    value:\n    // ==============================\n    // Getters\n    // ==============================\n\n    function getTheme() {\n      // Use the default theme if there are no customisations.\n      if (!this.props.theme) {\n        return defaultTheme;\n      }\n      // If the theme prop is a function, assume the function\n      // knows how to merge the passed-in default theme with\n      // its own modifications.\n      if (typeof this.props.theme === 'function') {\n        return this.props.theme(defaultTheme);\n      }\n      // Otherwise, if a plain theme object was passed in,\n      // overlay it with the default theme.\n      return _objectSpread(_objectSpread({}, defaultTheme), this.props.theme);\n    }\n  }, {\n    key: \"getCommonProps\",\n    value: function getCommonProps() {\n      var clearValue = this.clearValue,\n        cx = this.cx,\n        getStyles = this.getStyles,\n        getClassNames = this.getClassNames,\n        getValue = this.getValue,\n        selectOption = this.selectOption,\n        setValue = this.setValue,\n        props = this.props;\n      var isMulti = props.isMulti,\n        isRtl = props.isRtl,\n        options = props.options;\n      var hasValue = this.hasValue();\n      return {\n        clearValue: clearValue,\n        cx: cx,\n        getStyles: getStyles,\n        getClassNames: getClassNames,\n        getValue: getValue,\n        hasValue: hasValue,\n        isMulti: isMulti,\n        isRtl: isRtl,\n        options: options,\n        selectOption: selectOption,\n        selectProps: props,\n        setValue: setValue,\n        theme: this.getTheme()\n      };\n    }\n  }, {\n    key: \"hasValue\",\n    value: function hasValue() {\n      var selectValue = this.state.selectValue;\n      return selectValue.length > 0;\n    }\n  }, {\n    key: \"hasOptions\",\n    value: function hasOptions() {\n      return !!this.getFocusableOptions().length;\n    }\n  }, {\n    key: \"isClearable\",\n    value: function isClearable() {\n      var _this$props7 = this.props,\n        isClearable = _this$props7.isClearable,\n        isMulti = _this$props7.isMulti;\n\n      // single select, by default, IS NOT clearable\n      // multi select, by default, IS clearable\n      if (isClearable === undefined) return isMulti;\n      return isClearable;\n    }\n  }, {\n    key: \"isOptionDisabled\",\n    value: function isOptionDisabled(option, selectValue) {\n      return _isOptionDisabled(this.props, option, selectValue);\n    }\n  }, {\n    key: \"isOptionSelected\",\n    value: function isOptionSelected(option, selectValue) {\n      return _isOptionSelected(this.props, option, selectValue);\n    }\n  }, {\n    key: \"filterOption\",\n    value: function filterOption(option, inputValue) {\n      return _filterOption(this.props, option, inputValue);\n    }\n  }, {\n    key: \"formatOptionLabel\",\n    value: function formatOptionLabel(data, context) {\n      if (typeof this.props.formatOptionLabel === 'function') {\n        var _inputValue = this.props.inputValue;\n        var _selectValue = this.state.selectValue;\n        return this.props.formatOptionLabel(data, {\n          context: context,\n          inputValue: _inputValue,\n          selectValue: _selectValue\n        });\n      } else {\n        return this.getOptionLabel(data);\n      }\n    }\n  }, {\n    key: \"formatGroupLabel\",\n    value: function formatGroupLabel(data) {\n      return this.props.formatGroupLabel(data);\n    }\n\n    // ==============================\n    // Mouse Handlers\n    // ==============================\n  }, {\n    key: \"startListeningComposition\",\n    value:\n    // ==============================\n    // Composition Handlers\n    // ==============================\n\n    function startListeningComposition() {\n      if (document && document.addEventListener) {\n        document.addEventListener('compositionstart', this.onCompositionStart, false);\n        document.addEventListener('compositionend', this.onCompositionEnd, false);\n      }\n    }\n  }, {\n    key: \"stopListeningComposition\",\n    value: function stopListeningComposition() {\n      if (document && document.removeEventListener) {\n        document.removeEventListener('compositionstart', this.onCompositionStart);\n        document.removeEventListener('compositionend', this.onCompositionEnd);\n      }\n    }\n  }, {\n    key: \"startListeningToTouch\",\n    value:\n    // ==============================\n    // Touch Handlers\n    // ==============================\n\n    function startListeningToTouch() {\n      if (document && document.addEventListener) {\n        document.addEventListener('touchstart', this.onTouchStart, false);\n        document.addEventListener('touchmove', this.onTouchMove, false);\n        document.addEventListener('touchend', this.onTouchEnd, false);\n      }\n    }\n  }, {\n    key: \"stopListeningToTouch\",\n    value: function stopListeningToTouch() {\n      if (document && document.removeEventListener) {\n        document.removeEventListener('touchstart', this.onTouchStart);\n        document.removeEventListener('touchmove', this.onTouchMove);\n        document.removeEventListener('touchend', this.onTouchEnd);\n      }\n    }\n  }, {\n    key: \"renderInput\",\n    value:\n    // ==============================\n    // Renderers\n    // ==============================\n    function renderInput() {\n      var _this$props8 = this.props,\n        isDisabled = _this$props8.isDisabled,\n        isSearchable = _this$props8.isSearchable,\n        inputId = _this$props8.inputId,\n        inputValue = _this$props8.inputValue,\n        tabIndex = _this$props8.tabIndex,\n        form = _this$props8.form,\n        menuIsOpen = _this$props8.menuIsOpen,\n        required = _this$props8.required;\n      var _this$getComponents = this.getComponents(),\n        Input = _this$getComponents.Input;\n      var _this$state4 = this.state,\n        inputIsHidden = _this$state4.inputIsHidden,\n        ariaSelection = _this$state4.ariaSelection;\n      var commonProps = this.commonProps;\n      var id = inputId || this.getElementId('input');\n\n      // aria attributes makes the JSX \"noisy\", separated for clarity\n      var ariaAttributes = _objectSpread(_objectSpread(_objectSpread({\n        'aria-autocomplete': 'list',\n        'aria-expanded': menuIsOpen,\n        'aria-haspopup': true,\n        'aria-errormessage': this.props['aria-errormessage'],\n        'aria-invalid': this.props['aria-invalid'],\n        'aria-label': this.props['aria-label'],\n        'aria-labelledby': this.props['aria-labelledby'],\n        'aria-required': required,\n        role: 'combobox',\n        'aria-activedescendant': this.isAppleDevice ? undefined : this.state.focusedOptionId || ''\n      }, menuIsOpen && {\n        'aria-controls': this.getElementId('listbox')\n      }), !isSearchable && {\n        'aria-readonly': true\n      }), this.hasValue() ? (ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus' && {\n        'aria-describedby': this.getElementId('live-region')\n      } : {\n        'aria-describedby': this.getElementId('placeholder')\n      });\n      if (!isSearchable) {\n        // use a dummy input to maintain focus/blur functionality\n        return /*#__PURE__*/React.createElement(DummyInput, _extends({\n          id: id,\n          innerRef: this.getInputRef,\n          onBlur: this.onInputBlur,\n          onChange: noop,\n          onFocus: this.onInputFocus,\n          disabled: isDisabled,\n          tabIndex: tabIndex,\n          inputMode: \"none\",\n          form: form,\n          value: \"\"\n        }, ariaAttributes));\n      }\n      return /*#__PURE__*/React.createElement(Input, _extends({}, commonProps, {\n        autoCapitalize: \"none\",\n        autoComplete: \"off\",\n        autoCorrect: \"off\",\n        id: id,\n        innerRef: this.getInputRef,\n        isDisabled: isDisabled,\n        isHidden: inputIsHidden,\n        onBlur: this.onInputBlur,\n        onChange: this.handleInputChange,\n        onFocus: this.onInputFocus,\n        spellCheck: \"false\",\n        tabIndex: tabIndex,\n        form: form,\n        type: \"text\",\n        value: inputValue\n      }, ariaAttributes));\n    }\n  }, {\n    key: \"renderPlaceholderOrValue\",\n    value: function renderPlaceholderOrValue() {\n      var _this3 = this;\n      var _this$getComponents2 = this.getComponents(),\n        MultiValue = _this$getComponents2.MultiValue,\n        MultiValueContainer = _this$getComponents2.MultiValueContainer,\n        MultiValueLabel = _this$getComponents2.MultiValueLabel,\n        MultiValueRemove = _this$getComponents2.MultiValueRemove,\n        SingleValue = _this$getComponents2.SingleValue,\n        Placeholder = _this$getComponents2.Placeholder;\n      var commonProps = this.commonProps;\n      var _this$props9 = this.props,\n        controlShouldRenderValue = _this$props9.controlShouldRenderValue,\n        isDisabled = _this$props9.isDisabled,\n        isMulti = _this$props9.isMulti,\n        inputValue = _this$props9.inputValue,\n        placeholder = _this$props9.placeholder;\n      var _this$state5 = this.state,\n        selectValue = _this$state5.selectValue,\n        focusedValue = _this$state5.focusedValue,\n        isFocused = _this$state5.isFocused;\n      if (!this.hasValue() || !controlShouldRenderValue) {\n        return inputValue ? null : /*#__PURE__*/React.createElement(Placeholder, _extends({}, commonProps, {\n          key: \"placeholder\",\n          isDisabled: isDisabled,\n          isFocused: isFocused,\n          innerProps: {\n            id: this.getElementId('placeholder')\n          }\n        }), placeholder);\n      }\n      if (isMulti) {\n        return selectValue.map(function (opt, index) {\n          var isOptionFocused = opt === focusedValue;\n          var key = \"\".concat(_this3.getOptionLabel(opt), \"-\").concat(_this3.getOptionValue(opt));\n          return /*#__PURE__*/React.createElement(MultiValue, _extends({}, commonProps, {\n            components: {\n              Container: MultiValueContainer,\n              Label: MultiValueLabel,\n              Remove: MultiValueRemove\n            },\n            isFocused: isOptionFocused,\n            isDisabled: isDisabled,\n            key: key,\n            index: index,\n            removeProps: {\n              onClick: function onClick() {\n                return _this3.removeValue(opt);\n              },\n              onTouchEnd: function onTouchEnd() {\n                return _this3.removeValue(opt);\n              },\n              onMouseDown: function onMouseDown(e) {\n                e.preventDefault();\n              }\n            },\n            data: opt\n          }), _this3.formatOptionLabel(opt, 'value'));\n        });\n      }\n      if (inputValue) {\n        return null;\n      }\n      var singleValue = selectValue[0];\n      return /*#__PURE__*/React.createElement(SingleValue, _extends({}, commonProps, {\n        data: singleValue,\n        isDisabled: isDisabled\n      }), this.formatOptionLabel(singleValue, 'value'));\n    }\n  }, {\n    key: \"renderClearIndicator\",\n    value: function renderClearIndicator() {\n      var _this$getComponents3 = this.getComponents(),\n        ClearIndicator = _this$getComponents3.ClearIndicator;\n      var commonProps = this.commonProps;\n      var _this$props10 = this.props,\n        isDisabled = _this$props10.isDisabled,\n        isLoading = _this$props10.isLoading;\n      var isFocused = this.state.isFocused;\n      if (!this.isClearable() || !ClearIndicator || isDisabled || !this.hasValue() || isLoading) {\n        return null;\n      }\n      var innerProps = {\n        onMouseDown: this.onClearIndicatorMouseDown,\n        onTouchEnd: this.onClearIndicatorTouchEnd,\n        'aria-hidden': 'true'\n      };\n      return /*#__PURE__*/React.createElement(ClearIndicator, _extends({}, commonProps, {\n        innerProps: innerProps,\n        isFocused: isFocused\n      }));\n    }\n  }, {\n    key: \"renderLoadingIndicator\",\n    value: function renderLoadingIndicator() {\n      var _this$getComponents4 = this.getComponents(),\n        LoadingIndicator = _this$getComponents4.LoadingIndicator;\n      var commonProps = this.commonProps;\n      var _this$props11 = this.props,\n        isDisabled = _this$props11.isDisabled,\n        isLoading = _this$props11.isLoading;\n      var isFocused = this.state.isFocused;\n      if (!LoadingIndicator || !isLoading) return null;\n      var innerProps = {\n        'aria-hidden': 'true'\n      };\n      return /*#__PURE__*/React.createElement(LoadingIndicator, _extends({}, commonProps, {\n        innerProps: innerProps,\n        isDisabled: isDisabled,\n        isFocused: isFocused\n      }));\n    }\n  }, {\n    key: \"renderIndicatorSeparator\",\n    value: function renderIndicatorSeparator() {\n      var _this$getComponents5 = this.getComponents(),\n        DropdownIndicator = _this$getComponents5.DropdownIndicator,\n        IndicatorSeparator = _this$getComponents5.IndicatorSeparator;\n\n      // separator doesn't make sense without the dropdown indicator\n      if (!DropdownIndicator || !IndicatorSeparator) return null;\n      var commonProps = this.commonProps;\n      var isDisabled = this.props.isDisabled;\n      var isFocused = this.state.isFocused;\n      return /*#__PURE__*/React.createElement(IndicatorSeparator, _extends({}, commonProps, {\n        isDisabled: isDisabled,\n        isFocused: isFocused\n      }));\n    }\n  }, {\n    key: \"renderDropdownIndicator\",\n    value: function renderDropdownIndicator() {\n      var _this$getComponents6 = this.getComponents(),\n        DropdownIndicator = _this$getComponents6.DropdownIndicator;\n      if (!DropdownIndicator) return null;\n      var commonProps = this.commonProps;\n      var isDisabled = this.props.isDisabled;\n      var isFocused = this.state.isFocused;\n      var innerProps = {\n        onMouseDown: this.onDropdownIndicatorMouseDown,\n        onTouchEnd: this.onDropdownIndicatorTouchEnd,\n        'aria-hidden': 'true'\n      };\n      return /*#__PURE__*/React.createElement(DropdownIndicator, _extends({}, commonProps, {\n        innerProps: innerProps,\n        isDisabled: isDisabled,\n        isFocused: isFocused\n      }));\n    }\n  }, {\n    key: \"renderMenu\",\n    value: function renderMenu() {\n      var _this4 = this;\n      var _this$getComponents7 = this.getComponents(),\n        Group = _this$getComponents7.Group,\n        GroupHeading = _this$getComponents7.GroupHeading,\n        Menu = _this$getComponents7.Menu,\n        MenuList = _this$getComponents7.MenuList,\n        MenuPortal = _this$getComponents7.MenuPortal,\n        LoadingMessage = _this$getComponents7.LoadingMessage,\n        NoOptionsMessage = _this$getComponents7.NoOptionsMessage,\n        Option = _this$getComponents7.Option;\n      var commonProps = this.commonProps;\n      var focusedOption = this.state.focusedOption;\n      var _this$props12 = this.props,\n        captureMenuScroll = _this$props12.captureMenuScroll,\n        inputValue = _this$props12.inputValue,\n        isLoading = _this$props12.isLoading,\n        loadingMessage = _this$props12.loadingMessage,\n        minMenuHeight = _this$props12.minMenuHeight,\n        maxMenuHeight = _this$props12.maxMenuHeight,\n        menuIsOpen = _this$props12.menuIsOpen,\n        menuPlacement = _this$props12.menuPlacement,\n        menuPosition = _this$props12.menuPosition,\n        menuPortalTarget = _this$props12.menuPortalTarget,\n        menuShouldBlockScroll = _this$props12.menuShouldBlockScroll,\n        menuShouldScrollIntoView = _this$props12.menuShouldScrollIntoView,\n        noOptionsMessage = _this$props12.noOptionsMessage,\n        onMenuScrollToTop = _this$props12.onMenuScrollToTop,\n        onMenuScrollToBottom = _this$props12.onMenuScrollToBottom;\n      if (!menuIsOpen) return null;\n\n      // TODO: Internal Option Type here\n      var render = function render(props, id) {\n        var type = props.type,\n          data = props.data,\n          isDisabled = props.isDisabled,\n          isSelected = props.isSelected,\n          label = props.label,\n          value = props.value;\n        var isFocused = focusedOption === data;\n        var onHover = isDisabled ? undefined : function () {\n          return _this4.onOptionHover(data);\n        };\n        var onSelect = isDisabled ? undefined : function () {\n          return _this4.selectOption(data);\n        };\n        var optionId = \"\".concat(_this4.getElementId('option'), \"-\").concat(id);\n        var innerProps = {\n          id: optionId,\n          onClick: onSelect,\n          onMouseMove: onHover,\n          onMouseOver: onHover,\n          tabIndex: -1,\n          role: 'option',\n          'aria-selected': _this4.isAppleDevice ? undefined : isSelected // is not supported on Apple devices\n        };\n\n        return /*#__PURE__*/React.createElement(Option, _extends({}, commonProps, {\n          innerProps: innerProps,\n          data: data,\n          isDisabled: isDisabled,\n          isSelected: isSelected,\n          key: optionId,\n          label: label,\n          type: type,\n          value: value,\n          isFocused: isFocused,\n          innerRef: isFocused ? _this4.getFocusedOptionRef : undefined\n        }), _this4.formatOptionLabel(props.data, 'menu'));\n      };\n      var menuUI;\n      if (this.hasOptions()) {\n        menuUI = this.getCategorizedOptions().map(function (item) {\n          if (item.type === 'group') {\n            var _data = item.data,\n              options = item.options,\n              groupIndex = item.index;\n            var groupId = \"\".concat(_this4.getElementId('group'), \"-\").concat(groupIndex);\n            var headingId = \"\".concat(groupId, \"-heading\");\n            return /*#__PURE__*/React.createElement(Group, _extends({}, commonProps, {\n              key: groupId,\n              data: _data,\n              options: options,\n              Heading: GroupHeading,\n              headingProps: {\n                id: headingId,\n                data: item.data\n              },\n              label: _this4.formatGroupLabel(item.data)\n            }), item.options.map(function (option) {\n              return render(option, \"\".concat(groupIndex, \"-\").concat(option.index));\n            }));\n          } else if (item.type === 'option') {\n            return render(item, \"\".concat(item.index));\n          }\n        });\n      } else if (isLoading) {\n        var message = loadingMessage({\n          inputValue: inputValue\n        });\n        if (message === null) return null;\n        menuUI = /*#__PURE__*/React.createElement(LoadingMessage, commonProps, message);\n      } else {\n        var _message = noOptionsMessage({\n          inputValue: inputValue\n        });\n        if (_message === null) return null;\n        menuUI = /*#__PURE__*/React.createElement(NoOptionsMessage, commonProps, _message);\n      }\n      var menuPlacementProps = {\n        minMenuHeight: minMenuHeight,\n        maxMenuHeight: maxMenuHeight,\n        menuPlacement: menuPlacement,\n        menuPosition: menuPosition,\n        menuShouldScrollIntoView: menuShouldScrollIntoView\n      };\n      var menuElement = /*#__PURE__*/React.createElement(MenuPlacer, _extends({}, commonProps, menuPlacementProps), function (_ref4) {\n        var ref = _ref4.ref,\n          _ref4$placerProps = _ref4.placerProps,\n          placement = _ref4$placerProps.placement,\n          maxHeight = _ref4$placerProps.maxHeight;\n        return /*#__PURE__*/React.createElement(Menu, _extends({}, commonProps, menuPlacementProps, {\n          innerRef: ref,\n          innerProps: {\n            onMouseDown: _this4.onMenuMouseDown,\n            onMouseMove: _this4.onMenuMouseMove\n          },\n          isLoading: isLoading,\n          placement: placement\n        }), /*#__PURE__*/React.createElement(ScrollManager, {\n          captureEnabled: captureMenuScroll,\n          onTopArrive: onMenuScrollToTop,\n          onBottomArrive: onMenuScrollToBottom,\n          lockEnabled: menuShouldBlockScroll\n        }, function (scrollTargetRef) {\n          return /*#__PURE__*/React.createElement(MenuList, _extends({}, commonProps, {\n            innerRef: function innerRef(instance) {\n              _this4.getMenuListRef(instance);\n              scrollTargetRef(instance);\n            },\n            innerProps: {\n              role: 'listbox',\n              'aria-multiselectable': commonProps.isMulti,\n              id: _this4.getElementId('listbox')\n            },\n            isLoading: isLoading,\n            maxHeight: maxHeight,\n            focusedOption: focusedOption\n          }), menuUI);\n        }));\n      });\n\n      // positioning behaviour is almost identical for portalled and fixed,\n      // so we use the same component. the actual portalling logic is forked\n      // within the component based on `menuPosition`\n      return menuPortalTarget || menuPosition === 'fixed' ? /*#__PURE__*/React.createElement(MenuPortal, _extends({}, commonProps, {\n        appendTo: menuPortalTarget,\n        controlElement: this.controlRef,\n        menuPlacement: menuPlacement,\n        menuPosition: menuPosition\n      }), menuElement) : menuElement;\n    }\n  }, {\n    key: \"renderFormField\",\n    value: function renderFormField() {\n      var _this5 = this;\n      var _this$props13 = this.props,\n        delimiter = _this$props13.delimiter,\n        isDisabled = _this$props13.isDisabled,\n        isMulti = _this$props13.isMulti,\n        name = _this$props13.name,\n        required = _this$props13.required;\n      var selectValue = this.state.selectValue;\n      if (required && !this.hasValue() && !isDisabled) {\n        return /*#__PURE__*/React.createElement(RequiredInput$1, {\n          name: name,\n          onFocus: this.onValueInputFocus\n        });\n      }\n      if (!name || isDisabled) return;\n      if (isMulti) {\n        if (delimiter) {\n          var value = selectValue.map(function (opt) {\n            return _this5.getOptionValue(opt);\n          }).join(delimiter);\n          return /*#__PURE__*/React.createElement(\"input\", {\n            name: name,\n            type: \"hidden\",\n            value: value\n          });\n        } else {\n          var input = selectValue.length > 0 ? selectValue.map(function (opt, i) {\n            return /*#__PURE__*/React.createElement(\"input\", {\n              key: \"i-\".concat(i),\n              name: name,\n              type: \"hidden\",\n              value: _this5.getOptionValue(opt)\n            });\n          }) : /*#__PURE__*/React.createElement(\"input\", {\n            name: name,\n            type: \"hidden\",\n            value: \"\"\n          });\n          return /*#__PURE__*/React.createElement(\"div\", null, input);\n        }\n      } else {\n        var _value = selectValue[0] ? this.getOptionValue(selectValue[0]) : '';\n        return /*#__PURE__*/React.createElement(\"input\", {\n          name: name,\n          type: \"hidden\",\n          value: _value\n        });\n      }\n    }\n  }, {\n    key: \"renderLiveRegion\",\n    value: function renderLiveRegion() {\n      var commonProps = this.commonProps;\n      var _this$state6 = this.state,\n        ariaSelection = _this$state6.ariaSelection,\n        focusedOption = _this$state6.focusedOption,\n        focusedValue = _this$state6.focusedValue,\n        isFocused = _this$state6.isFocused,\n        selectValue = _this$state6.selectValue;\n      var focusableOptions = this.getFocusableOptions();\n      return /*#__PURE__*/React.createElement(LiveRegion$1, _extends({}, commonProps, {\n        id: this.getElementId('live-region'),\n        ariaSelection: ariaSelection,\n        focusedOption: focusedOption,\n        focusedValue: focusedValue,\n        isFocused: isFocused,\n        selectValue: selectValue,\n        focusableOptions: focusableOptions,\n        isAppleDevice: this.isAppleDevice\n      }));\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$getComponents8 = this.getComponents(),\n        Control = _this$getComponents8.Control,\n        IndicatorsContainer = _this$getComponents8.IndicatorsContainer,\n        SelectContainer = _this$getComponents8.SelectContainer,\n        ValueContainer = _this$getComponents8.ValueContainer;\n      var _this$props14 = this.props,\n        className = _this$props14.className,\n        id = _this$props14.id,\n        isDisabled = _this$props14.isDisabled,\n        menuIsOpen = _this$props14.menuIsOpen;\n      var isFocused = this.state.isFocused;\n      var commonProps = this.commonProps = this.getCommonProps();\n      return /*#__PURE__*/React.createElement(SelectContainer, _extends({}, commonProps, {\n        className: className,\n        innerProps: {\n          id: id,\n          onKeyDown: this.onKeyDown\n        },\n        isDisabled: isDisabled,\n        isFocused: isFocused\n      }), this.renderLiveRegion(), /*#__PURE__*/React.createElement(Control, _extends({}, commonProps, {\n        innerRef: this.getControlRef,\n        innerProps: {\n          onMouseDown: this.onControlMouseDown,\n          onTouchEnd: this.onControlTouchEnd\n        },\n        isDisabled: isDisabled,\n        isFocused: isFocused,\n        menuIsOpen: menuIsOpen\n      }), /*#__PURE__*/React.createElement(ValueContainer, _extends({}, commonProps, {\n        isDisabled: isDisabled\n      }), this.renderPlaceholderOrValue(), this.renderInput()), /*#__PURE__*/React.createElement(IndicatorsContainer, _extends({}, commonProps, {\n        isDisabled: isDisabled\n      }), this.renderClearIndicator(), this.renderLoadingIndicator(), this.renderIndicatorSeparator(), this.renderDropdownIndicator())), this.renderMenu(), this.renderFormField());\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(props, state) {\n      var prevProps = state.prevProps,\n        clearFocusValueOnUpdate = state.clearFocusValueOnUpdate,\n        inputIsHiddenAfterUpdate = state.inputIsHiddenAfterUpdate,\n        ariaSelection = state.ariaSelection,\n        isFocused = state.isFocused,\n        prevWasFocused = state.prevWasFocused,\n        instancePrefix = state.instancePrefix;\n      var options = props.options,\n        value = props.value,\n        menuIsOpen = props.menuIsOpen,\n        inputValue = props.inputValue,\n        isMulti = props.isMulti;\n      var selectValue = cleanValue(value);\n      var newMenuOptionsState = {};\n      if (prevProps && (value !== prevProps.value || options !== prevProps.options || menuIsOpen !== prevProps.menuIsOpen || inputValue !== prevProps.inputValue)) {\n        var focusableOptions = menuIsOpen ? buildFocusableOptions(props, selectValue) : [];\n        var focusableOptionsWithIds = menuIsOpen ? buildFocusableOptionsWithIds(buildCategorizedOptions(props, selectValue), \"\".concat(instancePrefix, \"-option\")) : [];\n        var focusedValue = clearFocusValueOnUpdate ? getNextFocusedValue(state, selectValue) : null;\n        var focusedOption = getNextFocusedOption(state, focusableOptions);\n        var focusedOptionId = getFocusedOptionId(focusableOptionsWithIds, focusedOption);\n        newMenuOptionsState = {\n          selectValue: selectValue,\n          focusedOption: focusedOption,\n          focusedOptionId: focusedOptionId,\n          focusableOptionsWithIds: focusableOptionsWithIds,\n          focusedValue: focusedValue,\n          clearFocusValueOnUpdate: false\n        };\n      }\n      // some updates should toggle the state of the input visibility\n      var newInputIsHiddenState = inputIsHiddenAfterUpdate != null && props !== prevProps ? {\n        inputIsHidden: inputIsHiddenAfterUpdate,\n        inputIsHiddenAfterUpdate: undefined\n      } : {};\n      var newAriaSelection = ariaSelection;\n      var hasKeptFocus = isFocused && prevWasFocused;\n      if (isFocused && !hasKeptFocus) {\n        // If `value` or `defaultValue` props are not empty then announce them\n        // when the Select is initially focused\n        newAriaSelection = {\n          value: valueTernary(isMulti, selectValue, selectValue[0] || null),\n          options: selectValue,\n          action: 'initial-input-focus'\n        };\n        hasKeptFocus = !prevWasFocused;\n      }\n\n      // If the 'initial-input-focus' action has been set already\n      // then reset the ariaSelection to null\n      if ((ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus') {\n        newAriaSelection = null;\n      }\n      return _objectSpread(_objectSpread(_objectSpread({}, newMenuOptionsState), newInputIsHiddenState), {}, {\n        prevProps: props,\n        ariaSelection: newAriaSelection,\n        prevWasFocused: hasKeptFocus\n      });\n    }\n  }]);\n  return Select;\n}(Component);\nSelect.defaultProps = defaultProps;\n\nexport { Select as S, defaultProps as a, getOptionLabel$1 as b, createFilter as c, defaultTheme as d, getOptionValue$1 as g, mergeStyles as m };\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n  if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n  t.prototype = Object.create(e && e.prototype, {\n    constructor: {\n      value: t,\n      writable: !0,\n      configurable: !0\n    }\n  }), Object.defineProperty(t, \"prototype\", {\n    writable: !1\n  }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nfunction _createSuper(t) {\n  var r = isNativeReflectConstruct();\n  return function () {\n    var e,\n      o = getPrototypeOf(t);\n    if (r) {\n      var s = getPrototypeOf(this).constructor;\n      e = Reflect.construct(o, arguments, s);\n    } else e = o.apply(this, arguments);\n    return possibleConstructorReturn(this, e);\n  };\n}\nexport { _createSuper as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n  if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n  if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n  return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _assertThisInitialized(e) {\n  if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  return e;\n}\nexport { _assertThisInitialized as default };","function _classCallCheck(a, n) {\n  if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport { jsx, keyframes, css as css$2 } from '@emotion/react';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _taggedTemplateLiteral from '@babel/runtime/helpers/esm/taggedTemplateLiteral';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { useContext, useRef, useState, useMemo, useCallback, createContext } from 'react';\nimport { createPortal } from 'react-dom';\nimport { autoUpdate } from '@floating-ui/dom';\nimport useLayoutEffect from 'use-isomorphic-layout-effect';\n\nvar _excluded$4 = [\"className\", \"clearValue\", \"cx\", \"getStyles\", \"getClassNames\", \"getValue\", \"hasValue\", \"isMulti\", \"isRtl\", \"options\", \"selectOption\", \"selectProps\", \"setValue\", \"theme\"];\n// ==============================\n// NO OP\n// ==============================\n\nvar noop = function noop() {};\n\n// ==============================\n// Class Name Prefixer\n// ==============================\n\n/**\n String representation of component state for styling with class names.\n\n Expects an array of strings OR a string/object pair:\n - className(['comp', 'comp-arg', 'comp-arg-2'])\n   @returns 'react-select__comp react-select__comp-arg react-select__comp-arg-2'\n - className('comp', { some: true, state: false })\n   @returns 'react-select__comp react-select__comp--some'\n*/\nfunction applyPrefixToName(prefix, name) {\n  if (!name) {\n    return prefix;\n  } else if (name[0] === '-') {\n    return prefix + name;\n  } else {\n    return prefix + '__' + name;\n  }\n}\nfunction classNames(prefix, state) {\n  for (var _len = arguments.length, classNameList = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n    classNameList[_key - 2] = arguments[_key];\n  }\n  var arr = [].concat(classNameList);\n  if (state && prefix) {\n    for (var key in state) {\n      if (state.hasOwnProperty(key) && state[key]) {\n        arr.push(\"\".concat(applyPrefixToName(prefix, key)));\n      }\n    }\n  }\n  return arr.filter(function (i) {\n    return i;\n  }).map(function (i) {\n    return String(i).trim();\n  }).join(' ');\n}\n// ==============================\n// Clean Value\n// ==============================\n\nvar cleanValue = function cleanValue(value) {\n  if (isArray(value)) return value.filter(Boolean);\n  if (_typeof(value) === 'object' && value !== null) return [value];\n  return [];\n};\n\n// ==============================\n// Clean Common Props\n// ==============================\n\nvar cleanCommonProps = function cleanCommonProps(props) {\n  //className\n  props.className;\n    props.clearValue;\n    props.cx;\n    props.getStyles;\n    props.getClassNames;\n    props.getValue;\n    props.hasValue;\n    props.isMulti;\n    props.isRtl;\n    props.options;\n    props.selectOption;\n    props.selectProps;\n    props.setValue;\n    props.theme;\n    var innerProps = _objectWithoutProperties(props, _excluded$4);\n  return _objectSpread({}, innerProps);\n};\n\n// ==============================\n// Get Style Props\n// ==============================\n\nvar getStyleProps = function getStyleProps(props, name, classNamesState) {\n  var cx = props.cx,\n    getStyles = props.getStyles,\n    getClassNames = props.getClassNames,\n    className = props.className;\n  return {\n    css: getStyles(name, props),\n    className: cx(classNamesState !== null && classNamesState !== void 0 ? classNamesState : {}, getClassNames(name, props), className)\n  };\n};\n\n// ==============================\n// Handle Input Change\n// ==============================\n\nfunction handleInputChange(inputValue, actionMeta, onInputChange) {\n  if (onInputChange) {\n    var _newValue = onInputChange(inputValue, actionMeta);\n    if (typeof _newValue === 'string') return _newValue;\n  }\n  return inputValue;\n}\n\n// ==============================\n// Scroll Helpers\n// ==============================\n\nfunction isDocumentElement(el) {\n  return [document.documentElement, document.body, window].indexOf(el) > -1;\n}\n\n// Normalized Scroll Top\n// ------------------------------\n\nfunction normalizedHeight(el) {\n  if (isDocumentElement(el)) {\n    return window.innerHeight;\n  }\n  return el.clientHeight;\n}\n\n// Normalized scrollTo & scrollTop\n// ------------------------------\n\nfunction getScrollTop(el) {\n  if (isDocumentElement(el)) {\n    return window.pageYOffset;\n  }\n  return el.scrollTop;\n}\nfunction scrollTo(el, top) {\n  // with a scroll distance, we perform scroll on the element\n  if (isDocumentElement(el)) {\n    window.scrollTo(0, top);\n    return;\n  }\n  el.scrollTop = top;\n}\n\n// Get Scroll Parent\n// ------------------------------\n\nfunction getScrollParent(element) {\n  var style = getComputedStyle(element);\n  var excludeStaticParent = style.position === 'absolute';\n  var overflowRx = /(auto|scroll)/;\n  if (style.position === 'fixed') return document.documentElement;\n  for (var parent = element; parent = parent.parentElement;) {\n    style = getComputedStyle(parent);\n    if (excludeStaticParent && style.position === 'static') {\n      continue;\n    }\n    if (overflowRx.test(style.overflow + style.overflowY + style.overflowX)) {\n      return parent;\n    }\n  }\n  return document.documentElement;\n}\n\n// Animated Scroll To\n// ------------------------------\n\n/**\n  @param t: time (elapsed)\n  @param b: initial value\n  @param c: amount of change\n  @param d: duration\n*/\nfunction easeOutCubic(t, b, c, d) {\n  return c * ((t = t / d - 1) * t * t + 1) + b;\n}\nfunction animatedScrollTo(element, to) {\n  var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;\n  var callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : noop;\n  var start = getScrollTop(element);\n  var change = to - start;\n  var increment = 10;\n  var currentTime = 0;\n  function animateScroll() {\n    currentTime += increment;\n    var val = easeOutCubic(currentTime, start, change, duration);\n    scrollTo(element, val);\n    if (currentTime < duration) {\n      window.requestAnimationFrame(animateScroll);\n    } else {\n      callback(element);\n    }\n  }\n  animateScroll();\n}\n\n// Scroll Into View\n// ------------------------------\n\nfunction scrollIntoView(menuEl, focusedEl) {\n  var menuRect = menuEl.getBoundingClientRect();\n  var focusedRect = focusedEl.getBoundingClientRect();\n  var overScroll = focusedEl.offsetHeight / 3;\n  if (focusedRect.bottom + overScroll > menuRect.bottom) {\n    scrollTo(menuEl, Math.min(focusedEl.offsetTop + focusedEl.clientHeight - menuEl.offsetHeight + overScroll, menuEl.scrollHeight));\n  } else if (focusedRect.top - overScroll < menuRect.top) {\n    scrollTo(menuEl, Math.max(focusedEl.offsetTop - overScroll, 0));\n  }\n}\n\n// ==============================\n// Get bounding client object\n// ==============================\n\n// cannot get keys using array notation with DOMRect\nfunction getBoundingClientObj(element) {\n  var rect = element.getBoundingClientRect();\n  return {\n    bottom: rect.bottom,\n    height: rect.height,\n    left: rect.left,\n    right: rect.right,\n    top: rect.top,\n    width: rect.width\n  };\n}\n\n// ==============================\n// Touch Capability Detector\n// ==============================\n\nfunction isTouchCapable() {\n  try {\n    document.createEvent('TouchEvent');\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\n// ==============================\n// Mobile Device Detector\n// ==============================\n\nfunction isMobileDevice() {\n  try {\n    return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n  } catch (e) {\n    return false;\n  }\n}\n\n// ==============================\n// Passive Event Detector\n// ==============================\n\n// https://github.com/rafgraph/detect-it/blob/main/src/index.ts#L19-L36\nvar passiveOptionAccessed = false;\nvar options = {\n  get passive() {\n    return passiveOptionAccessed = true;\n  }\n};\n// check for SSR\nvar w = typeof window !== 'undefined' ? window : {};\nif (w.addEventListener && w.removeEventListener) {\n  w.addEventListener('p', noop, options);\n  w.removeEventListener('p', noop, false);\n}\nvar supportsPassiveEvents = passiveOptionAccessed;\nfunction notNullish(item) {\n  return item != null;\n}\nfunction isArray(arg) {\n  return Array.isArray(arg);\n}\nfunction valueTernary(isMulti, multiValue, singleValue) {\n  return isMulti ? multiValue : singleValue;\n}\nfunction singleValueAsValue(singleValue) {\n  return singleValue;\n}\nfunction multiValueAsValue(multiValue) {\n  return multiValue;\n}\nvar removeProps = function removeProps(propsObj) {\n  for (var _len2 = arguments.length, properties = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n    properties[_key2 - 1] = arguments[_key2];\n  }\n  var propsMap = Object.entries(propsObj).filter(function (_ref) {\n    var _ref2 = _slicedToArray(_ref, 1),\n      key = _ref2[0];\n    return !properties.includes(key);\n  });\n  return propsMap.reduce(function (newProps, _ref3) {\n    var _ref4 = _slicedToArray(_ref3, 2),\n      key = _ref4[0],\n      val = _ref4[1];\n    newProps[key] = val;\n    return newProps;\n  }, {});\n};\n\nvar _excluded$3 = [\"children\", \"innerProps\"],\n  _excluded2$1 = [\"children\", \"innerProps\"];\nfunction getMenuPlacement(_ref) {\n  var preferredMaxHeight = _ref.maxHeight,\n    menuEl = _ref.menuEl,\n    minHeight = _ref.minHeight,\n    preferredPlacement = _ref.placement,\n    shouldScroll = _ref.shouldScroll,\n    isFixedPosition = _ref.isFixedPosition,\n    controlHeight = _ref.controlHeight;\n  var scrollParent = getScrollParent(menuEl);\n  var defaultState = {\n    placement: 'bottom',\n    maxHeight: preferredMaxHeight\n  };\n\n  // something went wrong, return default state\n  if (!menuEl || !menuEl.offsetParent) return defaultState;\n\n  // we can't trust `scrollParent.scrollHeight` --> it may increase when\n  // the menu is rendered\n  var _scrollParent$getBoun = scrollParent.getBoundingClientRect(),\n    scrollHeight = _scrollParent$getBoun.height;\n  var _menuEl$getBoundingCl = menuEl.getBoundingClientRect(),\n    menuBottom = _menuEl$getBoundingCl.bottom,\n    menuHeight = _menuEl$getBoundingCl.height,\n    menuTop = _menuEl$getBoundingCl.top;\n  var _menuEl$offsetParent$ = menuEl.offsetParent.getBoundingClientRect(),\n    containerTop = _menuEl$offsetParent$.top;\n  var viewHeight = isFixedPosition ? window.innerHeight : normalizedHeight(scrollParent);\n  var scrollTop = getScrollTop(scrollParent);\n  var marginBottom = parseInt(getComputedStyle(menuEl).marginBottom, 10);\n  var marginTop = parseInt(getComputedStyle(menuEl).marginTop, 10);\n  var viewSpaceAbove = containerTop - marginTop;\n  var viewSpaceBelow = viewHeight - menuTop;\n  var scrollSpaceAbove = viewSpaceAbove + scrollTop;\n  var scrollSpaceBelow = scrollHeight - scrollTop - menuTop;\n  var scrollDown = menuBottom - viewHeight + scrollTop + marginBottom;\n  var scrollUp = scrollTop + menuTop - marginTop;\n  var scrollDuration = 160;\n  switch (preferredPlacement) {\n    case 'auto':\n    case 'bottom':\n      // 1: the menu will fit, do nothing\n      if (viewSpaceBelow >= menuHeight) {\n        return {\n          placement: 'bottom',\n          maxHeight: preferredMaxHeight\n        };\n      }\n\n      // 2: the menu will fit, if scrolled\n      if (scrollSpaceBelow >= menuHeight && !isFixedPosition) {\n        if (shouldScroll) {\n          animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n        }\n        return {\n          placement: 'bottom',\n          maxHeight: preferredMaxHeight\n        };\n      }\n\n      // 3: the menu will fit, if constrained\n      if (!isFixedPosition && scrollSpaceBelow >= minHeight || isFixedPosition && viewSpaceBelow >= minHeight) {\n        if (shouldScroll) {\n          animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n        }\n\n        // we want to provide as much of the menu as possible to the user,\n        // so give them whatever is available below rather than the minHeight.\n        var constrainedHeight = isFixedPosition ? viewSpaceBelow - marginBottom : scrollSpaceBelow - marginBottom;\n        return {\n          placement: 'bottom',\n          maxHeight: constrainedHeight\n        };\n      }\n\n      // 4. Forked beviour when there isn't enough space below\n\n      // AUTO: flip the menu, render above\n      if (preferredPlacement === 'auto' || isFixedPosition) {\n        // may need to be constrained after flipping\n        var _constrainedHeight = preferredMaxHeight;\n        var spaceAbove = isFixedPosition ? viewSpaceAbove : scrollSpaceAbove;\n        if (spaceAbove >= minHeight) {\n          _constrainedHeight = Math.min(spaceAbove - marginBottom - controlHeight, preferredMaxHeight);\n        }\n        return {\n          placement: 'top',\n          maxHeight: _constrainedHeight\n        };\n      }\n\n      // BOTTOM: allow browser to increase scrollable area and immediately set scroll\n      if (preferredPlacement === 'bottom') {\n        if (shouldScroll) {\n          scrollTo(scrollParent, scrollDown);\n        }\n        return {\n          placement: 'bottom',\n          maxHeight: preferredMaxHeight\n        };\n      }\n      break;\n    case 'top':\n      // 1: the menu will fit, do nothing\n      if (viewSpaceAbove >= menuHeight) {\n        return {\n          placement: 'top',\n          maxHeight: preferredMaxHeight\n        };\n      }\n\n      // 2: the menu will fit, if scrolled\n      if (scrollSpaceAbove >= menuHeight && !isFixedPosition) {\n        if (shouldScroll) {\n          animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n        }\n        return {\n          placement: 'top',\n          maxHeight: preferredMaxHeight\n        };\n      }\n\n      // 3: the menu will fit, if constrained\n      if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n        var _constrainedHeight2 = preferredMaxHeight;\n\n        // we want to provide as much of the menu as possible to the user,\n        // so give them whatever is available below rather than the minHeight.\n        if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n          _constrainedHeight2 = isFixedPosition ? viewSpaceAbove - marginTop : scrollSpaceAbove - marginTop;\n        }\n        if (shouldScroll) {\n          animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n        }\n        return {\n          placement: 'top',\n          maxHeight: _constrainedHeight2\n        };\n      }\n\n      // 4. not enough space, the browser WILL NOT increase scrollable area when\n      // absolutely positioned element rendered above the viewport (only below).\n      // Flip the menu, render below\n      return {\n        placement: 'bottom',\n        maxHeight: preferredMaxHeight\n      };\n    default:\n      throw new Error(\"Invalid placement provided \\\"\".concat(preferredPlacement, \"\\\".\"));\n  }\n  return defaultState;\n}\n\n// Menu Component\n// ------------------------------\n\nfunction alignToControl(placement) {\n  var placementToCSSProp = {\n    bottom: 'top',\n    top: 'bottom'\n  };\n  return placement ? placementToCSSProp[placement] : 'bottom';\n}\nvar coercePlacement = function coercePlacement(p) {\n  return p === 'auto' ? 'bottom' : p;\n};\nvar menuCSS = function menuCSS(_ref2, unstyled) {\n  var _objectSpread2;\n  var placement = _ref2.placement,\n    _ref2$theme = _ref2.theme,\n    borderRadius = _ref2$theme.borderRadius,\n    spacing = _ref2$theme.spacing,\n    colors = _ref2$theme.colors;\n  return _objectSpread((_objectSpread2 = {\n    label: 'menu'\n  }, _defineProperty(_objectSpread2, alignToControl(placement), '100%'), _defineProperty(_objectSpread2, \"position\", 'absolute'), _defineProperty(_objectSpread2, \"width\", '100%'), _defineProperty(_objectSpread2, \"zIndex\", 1), _objectSpread2), unstyled ? {} : {\n    backgroundColor: colors.neutral0,\n    borderRadius: borderRadius,\n    boxShadow: '0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)',\n    marginBottom: spacing.menuGutter,\n    marginTop: spacing.menuGutter\n  });\n};\nvar PortalPlacementContext = /*#__PURE__*/createContext(null);\n\n// NOTE: internal only\nvar MenuPlacer = function MenuPlacer(props) {\n  var children = props.children,\n    minMenuHeight = props.minMenuHeight,\n    maxMenuHeight = props.maxMenuHeight,\n    menuPlacement = props.menuPlacement,\n    menuPosition = props.menuPosition,\n    menuShouldScrollIntoView = props.menuShouldScrollIntoView,\n    theme = props.theme;\n  var _ref3 = useContext(PortalPlacementContext) || {},\n    setPortalPlacement = _ref3.setPortalPlacement;\n  var ref = useRef(null);\n  var _useState = useState(maxMenuHeight),\n    _useState2 = _slicedToArray(_useState, 2),\n    maxHeight = _useState2[0],\n    setMaxHeight = _useState2[1];\n  var _useState3 = useState(null),\n    _useState4 = _slicedToArray(_useState3, 2),\n    placement = _useState4[0],\n    setPlacement = _useState4[1];\n  var controlHeight = theme.spacing.controlHeight;\n  useLayoutEffect(function () {\n    var menuEl = ref.current;\n    if (!menuEl) return;\n\n    // DO NOT scroll if position is fixed\n    var isFixedPosition = menuPosition === 'fixed';\n    var shouldScroll = menuShouldScrollIntoView && !isFixedPosition;\n    var state = getMenuPlacement({\n      maxHeight: maxMenuHeight,\n      menuEl: menuEl,\n      minHeight: minMenuHeight,\n      placement: menuPlacement,\n      shouldScroll: shouldScroll,\n      isFixedPosition: isFixedPosition,\n      controlHeight: controlHeight\n    });\n    setMaxHeight(state.maxHeight);\n    setPlacement(state.placement);\n    setPortalPlacement === null || setPortalPlacement === void 0 ? void 0 : setPortalPlacement(state.placement);\n  }, [maxMenuHeight, menuPlacement, menuPosition, menuShouldScrollIntoView, minMenuHeight, setPortalPlacement, controlHeight]);\n  return children({\n    ref: ref,\n    placerProps: _objectSpread(_objectSpread({}, props), {}, {\n      placement: placement || coercePlacement(menuPlacement),\n      maxHeight: maxHeight\n    })\n  });\n};\nvar Menu = function Menu(props) {\n  var children = props.children,\n    innerRef = props.innerRef,\n    innerProps = props.innerProps;\n  return jsx(\"div\", _extends({}, getStyleProps(props, 'menu', {\n    menu: true\n  }), {\n    ref: innerRef\n  }, innerProps), children);\n};\nvar Menu$1 = Menu;\n\n// ==============================\n// Menu List\n// ==============================\n\nvar menuListCSS = function menuListCSS(_ref4, unstyled) {\n  var maxHeight = _ref4.maxHeight,\n    baseUnit = _ref4.theme.spacing.baseUnit;\n  return _objectSpread({\n    maxHeight: maxHeight,\n    overflowY: 'auto',\n    position: 'relative',\n    // required for offset[Height, Top] > keyboard scroll\n    WebkitOverflowScrolling: 'touch'\n  }, unstyled ? {} : {\n    paddingBottom: baseUnit,\n    paddingTop: baseUnit\n  });\n};\nvar MenuList = function MenuList(props) {\n  var children = props.children,\n    innerProps = props.innerProps,\n    innerRef = props.innerRef,\n    isMulti = props.isMulti;\n  return jsx(\"div\", _extends({}, getStyleProps(props, 'menuList', {\n    'menu-list': true,\n    'menu-list--is-multi': isMulti\n  }), {\n    ref: innerRef\n  }, innerProps), children);\n};\n\n// ==============================\n// Menu Notices\n// ==============================\n\nvar noticeCSS = function noticeCSS(_ref5, unstyled) {\n  var _ref5$theme = _ref5.theme,\n    baseUnit = _ref5$theme.spacing.baseUnit,\n    colors = _ref5$theme.colors;\n  return _objectSpread({\n    textAlign: 'center'\n  }, unstyled ? {} : {\n    color: colors.neutral40,\n    padding: \"\".concat(baseUnit * 2, \"px \").concat(baseUnit * 3, \"px\")\n  });\n};\nvar noOptionsMessageCSS = noticeCSS;\nvar loadingMessageCSS = noticeCSS;\nvar NoOptionsMessage = function NoOptionsMessage(_ref6) {\n  var _ref6$children = _ref6.children,\n    children = _ref6$children === void 0 ? 'No options' : _ref6$children,\n    innerProps = _ref6.innerProps,\n    restProps = _objectWithoutProperties(_ref6, _excluded$3);\n  return jsx(\"div\", _extends({}, getStyleProps(_objectSpread(_objectSpread({}, restProps), {}, {\n    children: children,\n    innerProps: innerProps\n  }), 'noOptionsMessage', {\n    'menu-notice': true,\n    'menu-notice--no-options': true\n  }), innerProps), children);\n};\nvar LoadingMessage = function LoadingMessage(_ref7) {\n  var _ref7$children = _ref7.children,\n    children = _ref7$children === void 0 ? 'Loading...' : _ref7$children,\n    innerProps = _ref7.innerProps,\n    restProps = _objectWithoutProperties(_ref7, _excluded2$1);\n  return jsx(\"div\", _extends({}, getStyleProps(_objectSpread(_objectSpread({}, restProps), {}, {\n    children: children,\n    innerProps: innerProps\n  }), 'loadingMessage', {\n    'menu-notice': true,\n    'menu-notice--loading': true\n  }), innerProps), children);\n};\n\n// ==============================\n// Menu Portal\n// ==============================\n\nvar menuPortalCSS = function menuPortalCSS(_ref8) {\n  var rect = _ref8.rect,\n    offset = _ref8.offset,\n    position = _ref8.position;\n  return {\n    left: rect.left,\n    position: position,\n    top: offset,\n    width: rect.width,\n    zIndex: 1\n  };\n};\nvar MenuPortal = function MenuPortal(props) {\n  var appendTo = props.appendTo,\n    children = props.children,\n    controlElement = props.controlElement,\n    innerProps = props.innerProps,\n    menuPlacement = props.menuPlacement,\n    menuPosition = props.menuPosition;\n  var menuPortalRef = useRef(null);\n  var cleanupRef = useRef(null);\n  var _useState5 = useState(coercePlacement(menuPlacement)),\n    _useState6 = _slicedToArray(_useState5, 2),\n    placement = _useState6[0],\n    setPortalPlacement = _useState6[1];\n  var portalPlacementContext = useMemo(function () {\n    return {\n      setPortalPlacement: setPortalPlacement\n    };\n  }, []);\n  var _useState7 = useState(null),\n    _useState8 = _slicedToArray(_useState7, 2),\n    computedPosition = _useState8[0],\n    setComputedPosition = _useState8[1];\n  var updateComputedPosition = useCallback(function () {\n    if (!controlElement) return;\n    var rect = getBoundingClientObj(controlElement);\n    var scrollDistance = menuPosition === 'fixed' ? 0 : window.pageYOffset;\n    var offset = rect[placement] + scrollDistance;\n    if (offset !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.offset) || rect.left !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.left) || rect.width !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.width)) {\n      setComputedPosition({\n        offset: offset,\n        rect: rect\n      });\n    }\n  }, [controlElement, menuPosition, placement, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.offset, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.left, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.width]);\n  useLayoutEffect(function () {\n    updateComputedPosition();\n  }, [updateComputedPosition]);\n  var runAutoUpdate = useCallback(function () {\n    if (typeof cleanupRef.current === 'function') {\n      cleanupRef.current();\n      cleanupRef.current = null;\n    }\n    if (controlElement && menuPortalRef.current) {\n      cleanupRef.current = autoUpdate(controlElement, menuPortalRef.current, updateComputedPosition, {\n        elementResize: 'ResizeObserver' in window\n      });\n    }\n  }, [controlElement, updateComputedPosition]);\n  useLayoutEffect(function () {\n    runAutoUpdate();\n  }, [runAutoUpdate]);\n  var setMenuPortalElement = useCallback(function (menuPortalElement) {\n    menuPortalRef.current = menuPortalElement;\n    runAutoUpdate();\n  }, [runAutoUpdate]);\n\n  // bail early if required elements aren't present\n  if (!appendTo && menuPosition !== 'fixed' || !computedPosition) return null;\n\n  // same wrapper element whether fixed or portalled\n  var menuWrapper = jsx(\"div\", _extends({\n    ref: setMenuPortalElement\n  }, getStyleProps(_objectSpread(_objectSpread({}, props), {}, {\n    offset: computedPosition.offset,\n    position: menuPosition,\n    rect: computedPosition.rect\n  }), 'menuPortal', {\n    'menu-portal': true\n  }), innerProps), children);\n  return jsx(PortalPlacementContext.Provider, {\n    value: portalPlacementContext\n  }, appendTo ? /*#__PURE__*/createPortal(menuWrapper, appendTo) : menuWrapper);\n};\n\n// ==============================\n// Root Container\n// ==============================\n\nvar containerCSS = function containerCSS(_ref) {\n  var isDisabled = _ref.isDisabled,\n    isRtl = _ref.isRtl;\n  return {\n    label: 'container',\n    direction: isRtl ? 'rtl' : undefined,\n    pointerEvents: isDisabled ? 'none' : undefined,\n    // cancel mouse events when disabled\n    position: 'relative'\n  };\n};\nvar SelectContainer = function SelectContainer(props) {\n  var children = props.children,\n    innerProps = props.innerProps,\n    isDisabled = props.isDisabled,\n    isRtl = props.isRtl;\n  return jsx(\"div\", _extends({}, getStyleProps(props, 'container', {\n    '--is-disabled': isDisabled,\n    '--is-rtl': isRtl\n  }), innerProps), children);\n};\n\n// ==============================\n// Value Container\n// ==============================\n\nvar valueContainerCSS = function valueContainerCSS(_ref2, unstyled) {\n  var spacing = _ref2.theme.spacing,\n    isMulti = _ref2.isMulti,\n    hasValue = _ref2.hasValue,\n    controlShouldRenderValue = _ref2.selectProps.controlShouldRenderValue;\n  return _objectSpread({\n    alignItems: 'center',\n    display: isMulti && hasValue && controlShouldRenderValue ? 'flex' : 'grid',\n    flex: 1,\n    flexWrap: 'wrap',\n    WebkitOverflowScrolling: 'touch',\n    position: 'relative',\n    overflow: 'hidden'\n  }, unstyled ? {} : {\n    padding: \"\".concat(spacing.baseUnit / 2, \"px \").concat(spacing.baseUnit * 2, \"px\")\n  });\n};\nvar ValueContainer = function ValueContainer(props) {\n  var children = props.children,\n    innerProps = props.innerProps,\n    isMulti = props.isMulti,\n    hasValue = props.hasValue;\n  return jsx(\"div\", _extends({}, getStyleProps(props, 'valueContainer', {\n    'value-container': true,\n    'value-container--is-multi': isMulti,\n    'value-container--has-value': hasValue\n  }), innerProps), children);\n};\n\n// ==============================\n// Indicator Container\n// ==============================\n\nvar indicatorsContainerCSS = function indicatorsContainerCSS() {\n  return {\n    alignItems: 'center',\n    alignSelf: 'stretch',\n    display: 'flex',\n    flexShrink: 0\n  };\n};\nvar IndicatorsContainer = function IndicatorsContainer(props) {\n  var children = props.children,\n    innerProps = props.innerProps;\n  return jsx(\"div\", _extends({}, getStyleProps(props, 'indicatorsContainer', {\n    indicators: true\n  }), innerProps), children);\n};\n\nvar _templateObject;\nvar _excluded$2 = [\"size\"],\n  _excluded2 = [\"innerProps\", \"isRtl\", \"size\"];\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\n// ==============================\n// Dropdown & Clear Icons\n// ==============================\nvar _ref2 = process.env.NODE_ENV === \"production\" ? {\n  name: \"8mmkcg\",\n  styles: \"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0\"\n} : {\n  name: \"tj5bde-Svg\",\n  styles: \"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0;label:Svg;\",\n  map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlCSSIsImZpbGUiOiJpbmRpY2F0b3JzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4LCBrZXlmcmFtZXMgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmltcG9ydCB7XG4gIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lLFxuICBDU1NPYmplY3RXaXRoTGFiZWwsXG4gIEdyb3VwQmFzZSxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0U3R5bGVQcm9wcyB9IGZyb20gJy4uL3V0aWxzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEljb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgU3ZnID0gKHtcbiAgc2l6ZSxcbiAgLi4ucHJvcHNcbn06IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3ZnJ10gJiB7IHNpemU6IG51bWJlciB9KSA9PiAoXG4gIDxzdmdcbiAgICBoZWlnaHQ9e3NpemV9XG4gICAgd2lkdGg9e3NpemV9XG4gICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgY3NzPXt7XG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIGZpbGw6ICdjdXJyZW50Q29sb3InLFxuICAgICAgbGluZUhlaWdodDogMSxcbiAgICAgIHN0cm9rZTogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBzdHJva2VXaWR0aDogMCxcbiAgICB9fVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbik7XG5cbmV4cG9ydCB0eXBlIENyb3NzSWNvblByb3BzID0gSlNYLkludHJpbnNpY0VsZW1lbnRzWydzdmcnXSAmIHsgc2l6ZT86IG51bWJlciB9O1xuZXhwb3J0IGNvbnN0IENyb3NzSWNvbiA9IChwcm9wczogQ3Jvc3NJY29uUHJvcHMpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTE0LjM0OCAxNC44NDljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDBsLTIuNjUxLTMuMDMwLTIuNjUxIDMuMDI5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtMC40NjktMC40NjktMC40NjktMS4yMjggMC0xLjY5N3MxLjIyOC0wLjQ2OSAxLjY5NyAwbDIuNjUyIDMuMDMxIDIuNjUxLTMuMDMxYzAuNDY5LTAuNDY5IDEuMjI4LTAuNDY5IDEuNjk3IDBzMC40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMwLjQ2OSAwLjQ2OSAwLjQ2OSAxLjIyOSAwIDEuNjk4elwiIC8+XG4gIDwvU3ZnPlxuKTtcbmV4cG9ydCB0eXBlIERvd25DaGV2cm9uUHJvcHMgPSBKU1guSW50cmluc2ljRWxlbWVudHNbJ3N2ZyddICYgeyBzaXplPzogbnVtYmVyIH07XG5leHBvcnQgY29uc3QgRG93bkNoZXZyb24gPSAocHJvcHM6IERvd25DaGV2cm9uUHJvcHMpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTQuNTE2IDcuNTQ4YzAuNDM2LTAuNDQ2IDEuMDQzLTAuNDgxIDEuNTc2IDBsMy45MDggMy43NDcgMy45MDgtMy43NDdjMC41MzMtMC40ODEgMS4xNDEtMC40NDYgMS41NzQgMCAwLjQzNiAwLjQ0NSAwLjQwOCAxLjE5NyAwIDEuNjE1LTAuNDA2IDAuNDE4LTQuNjk1IDQuNTAyLTQuNjk1IDQuNTAyLTAuMjE3IDAuMjIzLTAuNTAyIDAuMzM1LTAuNzg3IDAuMzM1cy0wLjU3LTAuMTEyLTAuNzg5LTAuMzM1YzAgMC00LjI4Ny00LjA4NC00LjY5NS00LjUwMnMtMC40MzYtMS4xNyAwLTEuNjE1elwiIC8+XG4gIDwvU3ZnPlxuKTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEJ1dHRvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8XG4gIE9wdGlvbiA9IHVua25vd24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuID0gYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPiA9IEdyb3VwQmFzZTxPcHRpb24+XG4+IGV4dGVuZHMgQ29tbW9uUHJvcHNBbmRDbGFzc05hbWU8T3B0aW9uLCBJc011bHRpLCBHcm91cD4ge1xuICAvKiogVGhlIGNoaWxkcmVuIHRvIGJlIHJlbmRlcmVkIGluc2lkZSB0aGUgaW5kaWNhdG9yLiAqL1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgLyoqIFByb3BzIHRoYXQgd2lsbCBiZSBwYXNzZWQgb24gdG8gdGhlIGNoaWxkcmVuLiAqL1xuICBpbm5lclByb3BzOiBKU1guSW50cmluc2ljRWxlbWVudHNbJ2RpdiddO1xuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpc0Rpc2FibGVkOiBib29sZWFuO1xufVxuXG5jb25zdCBiYXNlQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNGb2N1c2VkLFxuICAgIHRoZW1lOiB7XG4gICAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gICAgICBjb2xvcnMsXG4gICAgfSxcbiAgfTpcbiAgICB8IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbiAgICB8IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdpbmRpY2F0b3JDb250YWluZXInLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHRyYW5zaXRpb246ICdjb2xvciAxNTBtcycsXG4gIC4uLih1bnN0eWxlZFxuICAgID8ge31cbiAgICA6IHtcbiAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBwYWRkaW5nOiBiYXNlVW5pdCAqIDIsXG4gICAgICAgICc6aG92ZXInOiB7XG4gICAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsODAgOiBjb2xvcnMubmV1dHJhbDQwLFxuICAgICAgICB9LFxuICAgICAgfSksXG59KTtcblxuZXhwb3J0IGNvbnN0IGRyb3Bkb3duSW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBEcm9wZG93bkluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2Ryb3Bkb3duSW5kaWNhdG9yJywge1xuICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICdkcm9wZG93bi1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgfSl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPERvd25DaGV2cm9uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDbGVhckluZGljYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgLyoqIFRoZSBjaGlsZHJlbiB0byBiZSByZW5kZXJlZCBpbnNpZGUgdGhlIGluZGljYXRvci4gKi9cbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGNsZWFySW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBDbGVhckluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2NsZWFySW5kaWNhdG9yJywge1xuICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICdjbGVhci1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgfSl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPENyb3NzSWNvbiAvPn1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2VwYXJhdG9yXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGludGVyZmFjZSBJbmRpY2F0b3JTZXBhcmF0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaW5uZXJQcm9wcz86IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3BhbiddO1xufVxuXG5leHBvcnQgY29uc3QgaW5kaWNhdG9yU2VwYXJhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNEaXNhYmxlZCxcbiAgICB0aGVtZToge1xuICAgICAgc3BhY2luZzogeyBiYXNlVW5pdCB9LFxuICAgICAgY29sb3JzLFxuICAgIH0sXG4gIH06IEluZGljYXRvclNlcGFyYXRvclByb3BzPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+LFxuICB1bnN0eWxlZDogYm9vbGVhblxuKTogQ1NTT2JqZWN0V2l0aExhYmVsID0+ICh7XG4gIGxhYmVsOiAnaW5kaWNhdG9yU2VwYXJhdG9yJyxcbiAgYWxpZ25TZWxmOiAnc3RyZXRjaCcsXG4gIHdpZHRoOiAxLFxuICAuLi4odW5zdHlsZWRcbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogaXNEaXNhYmxlZCA/IGNvbG9ycy5uZXV0cmFsMTAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBtYXJnaW5Cb3R0b206IGJhc2VVbml0ICogMixcbiAgICAgICAgbWFyZ2luVG9wOiBiYXNlVW5pdCAqIDIsXG4gICAgICB9KSxcbn0pO1xuXG5leHBvcnQgY29uc3QgSW5kaWNhdG9yU2VwYXJhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICBwcm9wczogSW5kaWNhdG9yU2VwYXJhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxzcGFuXG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKHByb3BzLCAnaW5kaWNhdG9yU2VwYXJhdG9yJywge1xuICAgICAgICAnaW5kaWNhdG9yLXNlcGFyYXRvcic6IHRydWUsXG4gICAgICB9KX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2FkaW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXNgXG4gIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cbmA7XG5cbmV4cG9ydCBjb25zdCBsb2FkaW5nSW5kaWNhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNGb2N1c2VkLFxuICAgIHNpemUsXG4gICAgdGhlbWU6IHtcbiAgICAgIGNvbG9ycyxcbiAgICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICB9LFxuICB9OiBMb2FkaW5nSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdsb2FkaW5nSW5kaWNhdG9yJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnLFxuICBhbGlnblNlbGY6ICdjZW50ZXInLFxuICBmb250U2l6ZTogc2l6ZSxcbiAgbGluZUhlaWdodDogMSxcbiAgbWFyZ2luUmlnaHQ6IHNpemUsXG4gIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxuICAuLi4odW5zdHlsZWRcbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICAgIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDYwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgICAgICAgcGFkZGluZzogYmFzZVVuaXQgKiAyLFxuICAgICAgfSksXG59KTtcblxuaW50ZXJmYWNlIExvYWRpbmdEb3RQcm9wcyB7XG4gIGRlbGF5OiBudW1iZXI7XG4gIG9mZnNldDogYm9vbGVhbjtcbn1cbmNvbnN0IExvYWRpbmdEb3QgPSAoeyBkZWxheSwgb2Zmc2V0IH06IExvYWRpbmdEb3RQcm9wcykgPT4gKFxuICA8c3BhblxuICAgIGNzcz17e1xuICAgICAgYW5pbWF0aW9uOiBgJHtsb2FkaW5nRG90QW5pbWF0aW9uc30gMXMgZWFzZS1pbi1vdXQgJHtkZWxheX1tcyBpbmZpbml0ZTtgLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiAnY3VycmVudENvbG9yJyxcbiAgICAgIGJvcmRlclJhZGl1czogJzFlbScsXG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIG1hcmdpbkxlZnQ6IG9mZnNldCA/ICcxZW0nIDogdW5kZWZpbmVkLFxuICAgICAgaGVpZ2h0OiAnMWVtJyxcbiAgICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnLFxuICAgICAgd2lkdGg6ICcxZW0nLFxuICAgIH19XG4gIC8+XG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvYWRpbmdJbmRpY2F0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaXNEaXNhYmxlZDogYm9vbGVhbjtcbiAgLyoqIFNldCBzaXplIG9mIHRoZSBjb250YWluZXIuICovXG4gIHNpemU6IG51bWJlcjtcbn1cbmV4cG9ydCBjb25zdCBMb2FkaW5nSW5kaWNhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KHtcbiAgaW5uZXJQcm9wcyxcbiAgaXNSdGwsXG4gIHNpemUgPSA0LFxuICAuLi5yZXN0UHJvcHNcbn06IExvYWRpbmdJbmRpY2F0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPikgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKFxuICAgICAgICB7IC4uLnJlc3RQcm9wcywgaW5uZXJQcm9wcywgaXNSdGwsIHNpemUgfSxcbiAgICAgICAgJ2xvYWRpbmdJbmRpY2F0b3InLFxuICAgICAgICB7XG4gICAgICAgICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICAgICAgICdsb2FkaW5nLWluZGljYXRvcic6IHRydWUsXG4gICAgICAgIH1cbiAgICAgICl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MH0gb2Zmc2V0PXtpc1J0bH0gLz5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXsxNjB9IG9mZnNldCAvPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezMyMH0gb2Zmc2V0PXshaXNSdGx9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl19 */\",\n  toString: _EMOTION_STRINGIFIED_CSS_ERROR__\n};\nvar Svg = function Svg(_ref) {\n  var size = _ref.size,\n    props = _objectWithoutProperties(_ref, _excluded$2);\n  return jsx(\"svg\", _extends({\n    height: size,\n    width: size,\n    viewBox: \"0 0 20 20\",\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    css: _ref2\n  }, props));\n};\nvar CrossIcon = function CrossIcon(props) {\n  return jsx(Svg, _extends({\n    size: 20\n  }, props), jsx(\"path\", {\n    d: \"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z\"\n  }));\n};\nvar DownChevron = function DownChevron(props) {\n  return jsx(Svg, _extends({\n    size: 20\n  }, props), jsx(\"path\", {\n    d: \"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z\"\n  }));\n};\n\n// ==============================\n// Dropdown & Clear Buttons\n// ==============================\n\nvar baseCSS = function baseCSS(_ref3, unstyled) {\n  var isFocused = _ref3.isFocused,\n    _ref3$theme = _ref3.theme,\n    baseUnit = _ref3$theme.spacing.baseUnit,\n    colors = _ref3$theme.colors;\n  return _objectSpread({\n    label: 'indicatorContainer',\n    display: 'flex',\n    transition: 'color 150ms'\n  }, unstyled ? {} : {\n    color: isFocused ? colors.neutral60 : colors.neutral20,\n    padding: baseUnit * 2,\n    ':hover': {\n      color: isFocused ? colors.neutral80 : colors.neutral40\n    }\n  });\n};\nvar dropdownIndicatorCSS = baseCSS;\nvar DropdownIndicator = function DropdownIndicator(props) {\n  var children = props.children,\n    innerProps = props.innerProps;\n  return jsx(\"div\", _extends({}, getStyleProps(props, 'dropdownIndicator', {\n    indicator: true,\n    'dropdown-indicator': true\n  }), innerProps), children || jsx(DownChevron, null));\n};\nvar clearIndicatorCSS = baseCSS;\nvar ClearIndicator = function ClearIndicator(props) {\n  var children = props.children,\n    innerProps = props.innerProps;\n  return jsx(\"div\", _extends({}, getStyleProps(props, 'clearIndicator', {\n    indicator: true,\n    'clear-indicator': true\n  }), innerProps), children || jsx(CrossIcon, null));\n};\n\n// ==============================\n// Separator\n// ==============================\n\nvar indicatorSeparatorCSS = function indicatorSeparatorCSS(_ref4, unstyled) {\n  var isDisabled = _ref4.isDisabled,\n    _ref4$theme = _ref4.theme,\n    baseUnit = _ref4$theme.spacing.baseUnit,\n    colors = _ref4$theme.colors;\n  return _objectSpread({\n    label: 'indicatorSeparator',\n    alignSelf: 'stretch',\n    width: 1\n  }, unstyled ? {} : {\n    backgroundColor: isDisabled ? colors.neutral10 : colors.neutral20,\n    marginBottom: baseUnit * 2,\n    marginTop: baseUnit * 2\n  });\n};\nvar IndicatorSeparator = function IndicatorSeparator(props) {\n  var innerProps = props.innerProps;\n  return jsx(\"span\", _extends({}, innerProps, getStyleProps(props, 'indicatorSeparator', {\n    'indicator-separator': true\n  })));\n};\n\n// ==============================\n// Loading\n// ==============================\n\nvar loadingDotAnimations = keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n  0%, 80%, 100% { opacity: 0; }\\n  40% { opacity: 1; }\\n\"])));\nvar loadingIndicatorCSS = function loadingIndicatorCSS(_ref5, unstyled) {\n  var isFocused = _ref5.isFocused,\n    size = _ref5.size,\n    _ref5$theme = _ref5.theme,\n    colors = _ref5$theme.colors,\n    baseUnit = _ref5$theme.spacing.baseUnit;\n  return _objectSpread({\n    label: 'loadingIndicator',\n    display: 'flex',\n    transition: 'color 150ms',\n    alignSelf: 'center',\n    fontSize: size,\n    lineHeight: 1,\n    marginRight: size,\n    textAlign: 'center',\n    verticalAlign: 'middle'\n  }, unstyled ? {} : {\n    color: isFocused ? colors.neutral60 : colors.neutral20,\n    padding: baseUnit * 2\n  });\n};\nvar LoadingDot = function LoadingDot(_ref6) {\n  var delay = _ref6.delay,\n    offset = _ref6.offset;\n  return jsx(\"span\", {\n    css: /*#__PURE__*/css$2({\n      animation: \"\".concat(loadingDotAnimations, \" 1s ease-in-out \").concat(delay, \"ms infinite;\"),\n      backgroundColor: 'currentColor',\n      borderRadius: '1em',\n      display: 'inline-block',\n      marginLeft: offset ? '1em' : undefined,\n      height: '1em',\n      verticalAlign: 'top',\n      width: '1em'\n    }, process.env.NODE_ENV === \"production\" ? \"\" : \";label:LoadingDot;\", process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1RSSIsImZpbGUiOiJpbmRpY2F0b3JzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4LCBrZXlmcmFtZXMgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmltcG9ydCB7XG4gIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lLFxuICBDU1NPYmplY3RXaXRoTGFiZWwsXG4gIEdyb3VwQmFzZSxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0U3R5bGVQcm9wcyB9IGZyb20gJy4uL3V0aWxzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEljb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgU3ZnID0gKHtcbiAgc2l6ZSxcbiAgLi4ucHJvcHNcbn06IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3ZnJ10gJiB7IHNpemU6IG51bWJlciB9KSA9PiAoXG4gIDxzdmdcbiAgICBoZWlnaHQ9e3NpemV9XG4gICAgd2lkdGg9e3NpemV9XG4gICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgY3NzPXt7XG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIGZpbGw6ICdjdXJyZW50Q29sb3InLFxuICAgICAgbGluZUhlaWdodDogMSxcbiAgICAgIHN0cm9rZTogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBzdHJva2VXaWR0aDogMCxcbiAgICB9fVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbik7XG5cbmV4cG9ydCB0eXBlIENyb3NzSWNvblByb3BzID0gSlNYLkludHJpbnNpY0VsZW1lbnRzWydzdmcnXSAmIHsgc2l6ZT86IG51bWJlciB9O1xuZXhwb3J0IGNvbnN0IENyb3NzSWNvbiA9IChwcm9wczogQ3Jvc3NJY29uUHJvcHMpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTE0LjM0OCAxNC44NDljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDBsLTIuNjUxLTMuMDMwLTIuNjUxIDMuMDI5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtMC40NjktMC40NjktMC40NjktMS4yMjggMC0xLjY5N3MxLjIyOC0wLjQ2OSAxLjY5NyAwbDIuNjUyIDMuMDMxIDIuNjUxLTMuMDMxYzAuNDY5LTAuNDY5IDEuMjI4LTAuNDY5IDEuNjk3IDBzMC40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMwLjQ2OSAwLjQ2OSAwLjQ2OSAxLjIyOSAwIDEuNjk4elwiIC8+XG4gIDwvU3ZnPlxuKTtcbmV4cG9ydCB0eXBlIERvd25DaGV2cm9uUHJvcHMgPSBKU1guSW50cmluc2ljRWxlbWVudHNbJ3N2ZyddICYgeyBzaXplPzogbnVtYmVyIH07XG5leHBvcnQgY29uc3QgRG93bkNoZXZyb24gPSAocHJvcHM6IERvd25DaGV2cm9uUHJvcHMpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTQuNTE2IDcuNTQ4YzAuNDM2LTAuNDQ2IDEuMDQzLTAuNDgxIDEuNTc2IDBsMy45MDggMy43NDcgMy45MDgtMy43NDdjMC41MzMtMC40ODEgMS4xNDEtMC40NDYgMS41NzQgMCAwLjQzNiAwLjQ0NSAwLjQwOCAxLjE5NyAwIDEuNjE1LTAuNDA2IDAuNDE4LTQuNjk1IDQuNTAyLTQuNjk1IDQuNTAyLTAuMjE3IDAuMjIzLTAuNTAyIDAuMzM1LTAuNzg3IDAuMzM1cy0wLjU3LTAuMTEyLTAuNzg5LTAuMzM1YzAgMC00LjI4Ny00LjA4NC00LjY5NS00LjUwMnMtMC40MzYtMS4xNyAwLTEuNjE1elwiIC8+XG4gIDwvU3ZnPlxuKTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEJ1dHRvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8XG4gIE9wdGlvbiA9IHVua25vd24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuID0gYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPiA9IEdyb3VwQmFzZTxPcHRpb24+XG4+IGV4dGVuZHMgQ29tbW9uUHJvcHNBbmRDbGFzc05hbWU8T3B0aW9uLCBJc011bHRpLCBHcm91cD4ge1xuICAvKiogVGhlIGNoaWxkcmVuIHRvIGJlIHJlbmRlcmVkIGluc2lkZSB0aGUgaW5kaWNhdG9yLiAqL1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgLyoqIFByb3BzIHRoYXQgd2lsbCBiZSBwYXNzZWQgb24gdG8gdGhlIGNoaWxkcmVuLiAqL1xuICBpbm5lclByb3BzOiBKU1guSW50cmluc2ljRWxlbWVudHNbJ2RpdiddO1xuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpc0Rpc2FibGVkOiBib29sZWFuO1xufVxuXG5jb25zdCBiYXNlQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNGb2N1c2VkLFxuICAgIHRoZW1lOiB7XG4gICAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gICAgICBjb2xvcnMsXG4gICAgfSxcbiAgfTpcbiAgICB8IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbiAgICB8IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdpbmRpY2F0b3JDb250YWluZXInLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHRyYW5zaXRpb246ICdjb2xvciAxNTBtcycsXG4gIC4uLih1bnN0eWxlZFxuICAgID8ge31cbiAgICA6IHtcbiAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBwYWRkaW5nOiBiYXNlVW5pdCAqIDIsXG4gICAgICAgICc6aG92ZXInOiB7XG4gICAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsODAgOiBjb2xvcnMubmV1dHJhbDQwLFxuICAgICAgICB9LFxuICAgICAgfSksXG59KTtcblxuZXhwb3J0IGNvbnN0IGRyb3Bkb3duSW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBEcm9wZG93bkluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2Ryb3Bkb3duSW5kaWNhdG9yJywge1xuICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICdkcm9wZG93bi1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgfSl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPERvd25DaGV2cm9uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDbGVhckluZGljYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgLyoqIFRoZSBjaGlsZHJlbiB0byBiZSByZW5kZXJlZCBpbnNpZGUgdGhlIGluZGljYXRvci4gKi9cbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGNsZWFySW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBDbGVhckluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2NsZWFySW5kaWNhdG9yJywge1xuICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICdjbGVhci1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgfSl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPENyb3NzSWNvbiAvPn1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2VwYXJhdG9yXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGludGVyZmFjZSBJbmRpY2F0b3JTZXBhcmF0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaW5uZXJQcm9wcz86IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3BhbiddO1xufVxuXG5leHBvcnQgY29uc3QgaW5kaWNhdG9yU2VwYXJhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNEaXNhYmxlZCxcbiAgICB0aGVtZToge1xuICAgICAgc3BhY2luZzogeyBiYXNlVW5pdCB9LFxuICAgICAgY29sb3JzLFxuICAgIH0sXG4gIH06IEluZGljYXRvclNlcGFyYXRvclByb3BzPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+LFxuICB1bnN0eWxlZDogYm9vbGVhblxuKTogQ1NTT2JqZWN0V2l0aExhYmVsID0+ICh7XG4gIGxhYmVsOiAnaW5kaWNhdG9yU2VwYXJhdG9yJyxcbiAgYWxpZ25TZWxmOiAnc3RyZXRjaCcsXG4gIHdpZHRoOiAxLFxuICAuLi4odW5zdHlsZWRcbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogaXNEaXNhYmxlZCA/IGNvbG9ycy5uZXV0cmFsMTAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBtYXJnaW5Cb3R0b206IGJhc2VVbml0ICogMixcbiAgICAgICAgbWFyZ2luVG9wOiBiYXNlVW5pdCAqIDIsXG4gICAgICB9KSxcbn0pO1xuXG5leHBvcnQgY29uc3QgSW5kaWNhdG9yU2VwYXJhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICBwcm9wczogSW5kaWNhdG9yU2VwYXJhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxzcGFuXG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKHByb3BzLCAnaW5kaWNhdG9yU2VwYXJhdG9yJywge1xuICAgICAgICAnaW5kaWNhdG9yLXNlcGFyYXRvcic6IHRydWUsXG4gICAgICB9KX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2FkaW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXNgXG4gIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cbmA7XG5cbmV4cG9ydCBjb25zdCBsb2FkaW5nSW5kaWNhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNGb2N1c2VkLFxuICAgIHNpemUsXG4gICAgdGhlbWU6IHtcbiAgICAgIGNvbG9ycyxcbiAgICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICB9LFxuICB9OiBMb2FkaW5nSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdsb2FkaW5nSW5kaWNhdG9yJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnLFxuICBhbGlnblNlbGY6ICdjZW50ZXInLFxuICBmb250U2l6ZTogc2l6ZSxcbiAgbGluZUhlaWdodDogMSxcbiAgbWFyZ2luUmlnaHQ6IHNpemUsXG4gIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxuICAuLi4odW5zdHlsZWRcbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICAgIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDYwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgICAgICAgcGFkZGluZzogYmFzZVVuaXQgKiAyLFxuICAgICAgfSksXG59KTtcblxuaW50ZXJmYWNlIExvYWRpbmdEb3RQcm9wcyB7XG4gIGRlbGF5OiBudW1iZXI7XG4gIG9mZnNldDogYm9vbGVhbjtcbn1cbmNvbnN0IExvYWRpbmdEb3QgPSAoeyBkZWxheSwgb2Zmc2V0IH06IExvYWRpbmdEb3RQcm9wcykgPT4gKFxuICA8c3BhblxuICAgIGNzcz17e1xuICAgICAgYW5pbWF0aW9uOiBgJHtsb2FkaW5nRG90QW5pbWF0aW9uc30gMXMgZWFzZS1pbi1vdXQgJHtkZWxheX1tcyBpbmZpbml0ZTtgLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiAnY3VycmVudENvbG9yJyxcbiAgICAgIGJvcmRlclJhZGl1czogJzFlbScsXG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIG1hcmdpbkxlZnQ6IG9mZnNldCA/ICcxZW0nIDogdW5kZWZpbmVkLFxuICAgICAgaGVpZ2h0OiAnMWVtJyxcbiAgICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnLFxuICAgICAgd2lkdGg6ICcxZW0nLFxuICAgIH19XG4gIC8+XG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvYWRpbmdJbmRpY2F0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaXNEaXNhYmxlZDogYm9vbGVhbjtcbiAgLyoqIFNldCBzaXplIG9mIHRoZSBjb250YWluZXIuICovXG4gIHNpemU6IG51bWJlcjtcbn1cbmV4cG9ydCBjb25zdCBMb2FkaW5nSW5kaWNhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KHtcbiAgaW5uZXJQcm9wcyxcbiAgaXNSdGwsXG4gIHNpemUgPSA0LFxuICAuLi5yZXN0UHJvcHNcbn06IExvYWRpbmdJbmRpY2F0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPikgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKFxuICAgICAgICB7IC4uLnJlc3RQcm9wcywgaW5uZXJQcm9wcywgaXNSdGwsIHNpemUgfSxcbiAgICAgICAgJ2xvYWRpbmdJbmRpY2F0b3InLFxuICAgICAgICB7XG4gICAgICAgICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICAgICAgICdsb2FkaW5nLWluZGljYXRvcic6IHRydWUsXG4gICAgICAgIH1cbiAgICAgICl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MH0gb2Zmc2V0PXtpc1J0bH0gLz5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXsxNjB9IG9mZnNldCAvPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezMyMH0gb2Zmc2V0PXshaXNSdGx9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl19 */\")\n  });\n};\nvar LoadingIndicator = function LoadingIndicator(_ref7) {\n  var innerProps = _ref7.innerProps,\n    isRtl = _ref7.isRtl,\n    _ref7$size = _ref7.size,\n    size = _ref7$size === void 0 ? 4 : _ref7$size,\n    restProps = _objectWithoutProperties(_ref7, _excluded2);\n  return jsx(\"div\", _extends({}, getStyleProps(_objectSpread(_objectSpread({}, restProps), {}, {\n    innerProps: innerProps,\n    isRtl: isRtl,\n    size: size\n  }), 'loadingIndicator', {\n    indicator: true,\n    'loading-indicator': true\n  }), innerProps), jsx(LoadingDot, {\n    delay: 0,\n    offset: isRtl\n  }), jsx(LoadingDot, {\n    delay: 160,\n    offset: true\n  }), jsx(LoadingDot, {\n    delay: 320,\n    offset: !isRtl\n  }));\n};\n\nvar css$1 = function css(_ref, unstyled) {\n  var isDisabled = _ref.isDisabled,\n    isFocused = _ref.isFocused,\n    _ref$theme = _ref.theme,\n    colors = _ref$theme.colors,\n    borderRadius = _ref$theme.borderRadius,\n    spacing = _ref$theme.spacing;\n  return _objectSpread({\n    label: 'control',\n    alignItems: 'center',\n    cursor: 'default',\n    display: 'flex',\n    flexWrap: 'wrap',\n    justifyContent: 'space-between',\n    minHeight: spacing.controlHeight,\n    outline: '0 !important',\n    position: 'relative',\n    transition: 'all 100ms'\n  }, unstyled ? {} : {\n    backgroundColor: isDisabled ? colors.neutral5 : colors.neutral0,\n    borderColor: isDisabled ? colors.neutral10 : isFocused ? colors.primary : colors.neutral20,\n    borderRadius: borderRadius,\n    borderStyle: 'solid',\n    borderWidth: 1,\n    boxShadow: isFocused ? \"0 0 0 1px \".concat(colors.primary) : undefined,\n    '&:hover': {\n      borderColor: isFocused ? colors.primary : colors.neutral30\n    }\n  });\n};\nvar Control = function Control(props) {\n  var children = props.children,\n    isDisabled = props.isDisabled,\n    isFocused = props.isFocused,\n    innerRef = props.innerRef,\n    innerProps = props.innerProps,\n    menuIsOpen = props.menuIsOpen;\n  return jsx(\"div\", _extends({\n    ref: innerRef\n  }, getStyleProps(props, 'control', {\n    control: true,\n    'control--is-disabled': isDisabled,\n    'control--is-focused': isFocused,\n    'control--menu-is-open': menuIsOpen\n  }), innerProps, {\n    \"aria-disabled\": isDisabled || undefined\n  }), children);\n};\nvar Control$1 = Control;\n\nvar _excluded$1 = [\"data\"];\nvar groupCSS = function groupCSS(_ref, unstyled) {\n  var spacing = _ref.theme.spacing;\n  return unstyled ? {} : {\n    paddingBottom: spacing.baseUnit * 2,\n    paddingTop: spacing.baseUnit * 2\n  };\n};\nvar Group = function Group(props) {\n  var children = props.children,\n    cx = props.cx,\n    getStyles = props.getStyles,\n    getClassNames = props.getClassNames,\n    Heading = props.Heading,\n    headingProps = props.headingProps,\n    innerProps = props.innerProps,\n    label = props.label,\n    theme = props.theme,\n    selectProps = props.selectProps;\n  return jsx(\"div\", _extends({}, getStyleProps(props, 'group', {\n    group: true\n  }), innerProps), jsx(Heading, _extends({}, headingProps, {\n    selectProps: selectProps,\n    theme: theme,\n    getStyles: getStyles,\n    getClassNames: getClassNames,\n    cx: cx\n  }), label), jsx(\"div\", null, children));\n};\nvar groupHeadingCSS = function groupHeadingCSS(_ref2, unstyled) {\n  var _ref2$theme = _ref2.theme,\n    colors = _ref2$theme.colors,\n    spacing = _ref2$theme.spacing;\n  return _objectSpread({\n    label: 'group',\n    cursor: 'default',\n    display: 'block'\n  }, unstyled ? {} : {\n    color: colors.neutral40,\n    fontSize: '75%',\n    fontWeight: 500,\n    marginBottom: '0.25em',\n    paddingLeft: spacing.baseUnit * 3,\n    paddingRight: spacing.baseUnit * 3,\n    textTransform: 'uppercase'\n  });\n};\nvar GroupHeading = function GroupHeading(props) {\n  var _cleanCommonProps = cleanCommonProps(props);\n    _cleanCommonProps.data;\n    var innerProps = _objectWithoutProperties(_cleanCommonProps, _excluded$1);\n  return jsx(\"div\", _extends({}, getStyleProps(props, 'groupHeading', {\n    'group-heading': true\n  }), innerProps));\n};\nvar Group$1 = Group;\n\nvar _excluded = [\"innerRef\", \"isDisabled\", \"isHidden\", \"inputClassName\"];\nvar inputCSS = function inputCSS(_ref, unstyled) {\n  var isDisabled = _ref.isDisabled,\n    value = _ref.value,\n    _ref$theme = _ref.theme,\n    spacing = _ref$theme.spacing,\n    colors = _ref$theme.colors;\n  return _objectSpread(_objectSpread({\n    visibility: isDisabled ? 'hidden' : 'visible',\n    // force css to recompute when value change due to @emotion bug.\n    // We can remove it whenever the bug is fixed.\n    transform: value ? 'translateZ(0)' : ''\n  }, containerStyle), unstyled ? {} : {\n    margin: spacing.baseUnit / 2,\n    paddingBottom: spacing.baseUnit / 2,\n    paddingTop: spacing.baseUnit / 2,\n    color: colors.neutral80\n  });\n};\nvar spacingStyle = {\n  gridArea: '1 / 2',\n  font: 'inherit',\n  minWidth: '2px',\n  border: 0,\n  margin: 0,\n  outline: 0,\n  padding: 0\n};\nvar containerStyle = {\n  flex: '1 1 auto',\n  display: 'inline-grid',\n  gridArea: '1 / 1 / 2 / 3',\n  gridTemplateColumns: '0 min-content',\n  '&:after': _objectSpread({\n    content: 'attr(data-value) \" \"',\n    visibility: 'hidden',\n    whiteSpace: 'pre'\n  }, spacingStyle)\n};\nvar inputStyle = function inputStyle(isHidden) {\n  return _objectSpread({\n    label: 'input',\n    color: 'inherit',\n    background: 0,\n    opacity: isHidden ? 0 : 1,\n    width: '100%'\n  }, spacingStyle);\n};\nvar Input = function Input(props) {\n  var cx = props.cx,\n    value = props.value;\n  var _cleanCommonProps = cleanCommonProps(props),\n    innerRef = _cleanCommonProps.innerRef,\n    isDisabled = _cleanCommonProps.isDisabled,\n    isHidden = _cleanCommonProps.isHidden,\n    inputClassName = _cleanCommonProps.inputClassName,\n    innerProps = _objectWithoutProperties(_cleanCommonProps, _excluded);\n  return jsx(\"div\", _extends({}, getStyleProps(props, 'input', {\n    'input-container': true\n  }), {\n    \"data-value\": value || ''\n  }), jsx(\"input\", _extends({\n    className: cx({\n      input: true\n    }, inputClassName),\n    ref: innerRef,\n    style: inputStyle(isHidden),\n    disabled: isDisabled\n  }, innerProps)));\n};\nvar Input$1 = Input;\n\nvar multiValueCSS = function multiValueCSS(_ref, unstyled) {\n  var _ref$theme = _ref.theme,\n    spacing = _ref$theme.spacing,\n    borderRadius = _ref$theme.borderRadius,\n    colors = _ref$theme.colors;\n  return _objectSpread({\n    label: 'multiValue',\n    display: 'flex',\n    minWidth: 0\n  }, unstyled ? {} : {\n    backgroundColor: colors.neutral10,\n    borderRadius: borderRadius / 2,\n    margin: spacing.baseUnit / 2\n  });\n};\nvar multiValueLabelCSS = function multiValueLabelCSS(_ref2, unstyled) {\n  var _ref2$theme = _ref2.theme,\n    borderRadius = _ref2$theme.borderRadius,\n    colors = _ref2$theme.colors,\n    cropWithEllipsis = _ref2.cropWithEllipsis;\n  return _objectSpread({\n    overflow: 'hidden',\n    textOverflow: cropWithEllipsis || cropWithEllipsis === undefined ? 'ellipsis' : undefined,\n    whiteSpace: 'nowrap'\n  }, unstyled ? {} : {\n    borderRadius: borderRadius / 2,\n    color: colors.neutral80,\n    fontSize: '85%',\n    padding: 3,\n    paddingLeft: 6\n  });\n};\nvar multiValueRemoveCSS = function multiValueRemoveCSS(_ref3, unstyled) {\n  var _ref3$theme = _ref3.theme,\n    spacing = _ref3$theme.spacing,\n    borderRadius = _ref3$theme.borderRadius,\n    colors = _ref3$theme.colors,\n    isFocused = _ref3.isFocused;\n  return _objectSpread({\n    alignItems: 'center',\n    display: 'flex'\n  }, unstyled ? {} : {\n    borderRadius: borderRadius / 2,\n    backgroundColor: isFocused ? colors.dangerLight : undefined,\n    paddingLeft: spacing.baseUnit,\n    paddingRight: spacing.baseUnit,\n    ':hover': {\n      backgroundColor: colors.dangerLight,\n      color: colors.danger\n    }\n  });\n};\nvar MultiValueGeneric = function MultiValueGeneric(_ref4) {\n  var children = _ref4.children,\n    innerProps = _ref4.innerProps;\n  return jsx(\"div\", innerProps, children);\n};\nvar MultiValueContainer = MultiValueGeneric;\nvar MultiValueLabel = MultiValueGeneric;\nfunction MultiValueRemove(_ref5) {\n  var children = _ref5.children,\n    innerProps = _ref5.innerProps;\n  return jsx(\"div\", _extends({\n    role: \"button\"\n  }, innerProps), children || jsx(CrossIcon, {\n    size: 14\n  }));\n}\nvar MultiValue = function MultiValue(props) {\n  var children = props.children,\n    components = props.components,\n    data = props.data,\n    innerProps = props.innerProps,\n    isDisabled = props.isDisabled,\n    removeProps = props.removeProps,\n    selectProps = props.selectProps;\n  var Container = components.Container,\n    Label = components.Label,\n    Remove = components.Remove;\n  return jsx(Container, {\n    data: data,\n    innerProps: _objectSpread(_objectSpread({}, getStyleProps(props, 'multiValue', {\n      'multi-value': true,\n      'multi-value--is-disabled': isDisabled\n    })), innerProps),\n    selectProps: selectProps\n  }, jsx(Label, {\n    data: data,\n    innerProps: _objectSpread({}, getStyleProps(props, 'multiValueLabel', {\n      'multi-value__label': true\n    })),\n    selectProps: selectProps\n  }, children), jsx(Remove, {\n    data: data,\n    innerProps: _objectSpread(_objectSpread({}, getStyleProps(props, 'multiValueRemove', {\n      'multi-value__remove': true\n    })), {}, {\n      'aria-label': \"Remove \".concat(children || 'option')\n    }, removeProps),\n    selectProps: selectProps\n  }));\n};\nvar MultiValue$1 = MultiValue;\n\nvar optionCSS = function optionCSS(_ref, unstyled) {\n  var isDisabled = _ref.isDisabled,\n    isFocused = _ref.isFocused,\n    isSelected = _ref.isSelected,\n    _ref$theme = _ref.theme,\n    spacing = _ref$theme.spacing,\n    colors = _ref$theme.colors;\n  return _objectSpread({\n    label: 'option',\n    cursor: 'default',\n    display: 'block',\n    fontSize: 'inherit',\n    width: '100%',\n    userSelect: 'none',\n    WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)'\n  }, unstyled ? {} : {\n    backgroundColor: isSelected ? colors.primary : isFocused ? colors.primary25 : 'transparent',\n    color: isDisabled ? colors.neutral20 : isSelected ? colors.neutral0 : 'inherit',\n    padding: \"\".concat(spacing.baseUnit * 2, \"px \").concat(spacing.baseUnit * 3, \"px\"),\n    // provide some affordance on touch devices\n    ':active': {\n      backgroundColor: !isDisabled ? isSelected ? colors.primary : colors.primary50 : undefined\n    }\n  });\n};\nvar Option = function Option(props) {\n  var children = props.children,\n    isDisabled = props.isDisabled,\n    isFocused = props.isFocused,\n    isSelected = props.isSelected,\n    innerRef = props.innerRef,\n    innerProps = props.innerProps;\n  return jsx(\"div\", _extends({}, getStyleProps(props, 'option', {\n    option: true,\n    'option--is-disabled': isDisabled,\n    'option--is-focused': isFocused,\n    'option--is-selected': isSelected\n  }), {\n    ref: innerRef,\n    \"aria-disabled\": isDisabled\n  }, innerProps), children);\n};\nvar Option$1 = Option;\n\nvar placeholderCSS = function placeholderCSS(_ref, unstyled) {\n  var _ref$theme = _ref.theme,\n    spacing = _ref$theme.spacing,\n    colors = _ref$theme.colors;\n  return _objectSpread({\n    label: 'placeholder',\n    gridArea: '1 / 1 / 2 / 3'\n  }, unstyled ? {} : {\n    color: colors.neutral50,\n    marginLeft: spacing.baseUnit / 2,\n    marginRight: spacing.baseUnit / 2\n  });\n};\nvar Placeholder = function Placeholder(props) {\n  var children = props.children,\n    innerProps = props.innerProps;\n  return jsx(\"div\", _extends({}, getStyleProps(props, 'placeholder', {\n    placeholder: true\n  }), innerProps), children);\n};\nvar Placeholder$1 = Placeholder;\n\nvar css = function css(_ref, unstyled) {\n  var isDisabled = _ref.isDisabled,\n    _ref$theme = _ref.theme,\n    spacing = _ref$theme.spacing,\n    colors = _ref$theme.colors;\n  return _objectSpread({\n    label: 'singleValue',\n    gridArea: '1 / 1 / 2 / 3',\n    maxWidth: '100%',\n    overflow: 'hidden',\n    textOverflow: 'ellipsis',\n    whiteSpace: 'nowrap'\n  }, unstyled ? {} : {\n    color: isDisabled ? colors.neutral40 : colors.neutral80,\n    marginLeft: spacing.baseUnit / 2,\n    marginRight: spacing.baseUnit / 2\n  });\n};\nvar SingleValue = function SingleValue(props) {\n  var children = props.children,\n    isDisabled = props.isDisabled,\n    innerProps = props.innerProps;\n  return jsx(\"div\", _extends({}, getStyleProps(props, 'singleValue', {\n    'single-value': true,\n    'single-value--is-disabled': isDisabled\n  }), innerProps), children);\n};\nvar SingleValue$1 = SingleValue;\n\nvar components = {\n  ClearIndicator: ClearIndicator,\n  Control: Control$1,\n  DropdownIndicator: DropdownIndicator,\n  DownChevron: DownChevron,\n  CrossIcon: CrossIcon,\n  Group: Group$1,\n  GroupHeading: GroupHeading,\n  IndicatorsContainer: IndicatorsContainer,\n  IndicatorSeparator: IndicatorSeparator,\n  Input: Input$1,\n  LoadingIndicator: LoadingIndicator,\n  Menu: Menu$1,\n  MenuList: MenuList,\n  MenuPortal: MenuPortal,\n  LoadingMessage: LoadingMessage,\n  NoOptionsMessage: NoOptionsMessage,\n  MultiValue: MultiValue$1,\n  MultiValueContainer: MultiValueContainer,\n  MultiValueLabel: MultiValueLabel,\n  MultiValueRemove: MultiValueRemove,\n  Option: Option$1,\n  Placeholder: Placeholder$1,\n  SelectContainer: SelectContainer,\n  SingleValue: SingleValue$1,\n  ValueContainer: ValueContainer\n};\nvar defaultComponents = function defaultComponents(props) {\n  return _objectSpread(_objectSpread({}, components), props.components);\n};\n\nexport { isMobileDevice as A, multiValueAsValue as B, singleValueAsValue as C, valueTernary as D, classNames as E, defaultComponents as F, isDocumentElement as G, cleanValue as H, scrollIntoView as I, noop as J, notNullish as K, handleInputChange as L, MenuPlacer as M, clearIndicatorCSS as a, containerCSS as b, components as c, css$1 as d, dropdownIndicatorCSS as e, groupHeadingCSS as f, groupCSS as g, indicatorSeparatorCSS as h, indicatorsContainerCSS as i, inputCSS as j, loadingMessageCSS as k, loadingIndicatorCSS as l, menuCSS as m, menuListCSS as n, menuPortalCSS as o, multiValueCSS as p, multiValueLabelCSS as q, removeProps as r, supportsPassiveEvents as s, multiValueRemoveCSS as t, noOptionsMessageCSS as u, optionCSS as v, placeholderCSS as w, css as x, valueContainerCSS as y, isTouchCapable as z };\n","function _taggedTemplateLiteral(e, t) {\n  return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, {\n    raw: {\n      value: Object.freeze(t)\n    }\n  }));\n}\nexport { _taggedTemplateLiteral as default };","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport { useRef, useState, useEffect, useCallback } from 'react';\nimport { L as handleInputChange } from './index-a301f526.esm.js';\n\nvar _excluded = [\"defaultOptions\", \"cacheOptions\", \"loadOptions\", \"options\", \"isLoading\", \"onInputChange\", \"filterOption\"];\nfunction useAsync(_ref) {\n  var _ref$defaultOptions = _ref.defaultOptions,\n    propsDefaultOptions = _ref$defaultOptions === void 0 ? false : _ref$defaultOptions,\n    _ref$cacheOptions = _ref.cacheOptions,\n    cacheOptions = _ref$cacheOptions === void 0 ? false : _ref$cacheOptions,\n    propsLoadOptions = _ref.loadOptions;\n    _ref.options;\n    var _ref$isLoading = _ref.isLoading,\n    propsIsLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,\n    propsOnInputChange = _ref.onInputChange,\n    _ref$filterOption = _ref.filterOption,\n    filterOption = _ref$filterOption === void 0 ? null : _ref$filterOption,\n    restSelectProps = _objectWithoutProperties(_ref, _excluded);\n  var propsInputValue = restSelectProps.inputValue;\n  var lastRequest = useRef(undefined);\n  var mounted = useRef(false);\n  var _useState = useState(Array.isArray(propsDefaultOptions) ? propsDefaultOptions : undefined),\n    _useState2 = _slicedToArray(_useState, 2),\n    defaultOptions = _useState2[0],\n    setDefaultOptions = _useState2[1];\n  var _useState3 = useState(typeof propsInputValue !== 'undefined' ? propsInputValue : ''),\n    _useState4 = _slicedToArray(_useState3, 2),\n    stateInputValue = _useState4[0],\n    setStateInputValue = _useState4[1];\n  var _useState5 = useState(propsDefaultOptions === true),\n    _useState6 = _slicedToArray(_useState5, 2),\n    isLoading = _useState6[0],\n    setIsLoading = _useState6[1];\n  var _useState7 = useState(undefined),\n    _useState8 = _slicedToArray(_useState7, 2),\n    loadedInputValue = _useState8[0],\n    setLoadedInputValue = _useState8[1];\n  var _useState9 = useState([]),\n    _useState10 = _slicedToArray(_useState9, 2),\n    loadedOptions = _useState10[0],\n    setLoadedOptions = _useState10[1];\n  var _useState11 = useState(false),\n    _useState12 = _slicedToArray(_useState11, 2),\n    passEmptyOptions = _useState12[0],\n    setPassEmptyOptions = _useState12[1];\n  var _useState13 = useState({}),\n    _useState14 = _slicedToArray(_useState13, 2),\n    optionsCache = _useState14[0],\n    setOptionsCache = _useState14[1];\n  var _useState15 = useState(undefined),\n    _useState16 = _slicedToArray(_useState15, 2),\n    prevDefaultOptions = _useState16[0],\n    setPrevDefaultOptions = _useState16[1];\n  var _useState17 = useState(undefined),\n    _useState18 = _slicedToArray(_useState17, 2),\n    prevCacheOptions = _useState18[0],\n    setPrevCacheOptions = _useState18[1];\n  if (cacheOptions !== prevCacheOptions) {\n    setOptionsCache({});\n    setPrevCacheOptions(cacheOptions);\n  }\n  if (propsDefaultOptions !== prevDefaultOptions) {\n    setDefaultOptions(Array.isArray(propsDefaultOptions) ? propsDefaultOptions : undefined);\n    setPrevDefaultOptions(propsDefaultOptions);\n  }\n  useEffect(function () {\n    mounted.current = true;\n    return function () {\n      mounted.current = false;\n    };\n  }, []);\n  var loadOptions = useCallback(function (inputValue, callback) {\n    if (!propsLoadOptions) return callback();\n    var loader = propsLoadOptions(inputValue, callback);\n    if (loader && typeof loader.then === 'function') {\n      loader.then(callback, function () {\n        return callback();\n      });\n    }\n  }, [propsLoadOptions]);\n  useEffect(function () {\n    if (propsDefaultOptions === true) {\n      loadOptions(stateInputValue, function (options) {\n        if (!mounted.current) return;\n        setDefaultOptions(options || []);\n        setIsLoading(!!lastRequest.current);\n      });\n    }\n    // NOTE: this effect is designed to only run when the component mounts,\n    // so we don't want to include any hook dependencies\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, []);\n  var onInputChange = useCallback(function (newValue, actionMeta) {\n    var inputValue = handleInputChange(newValue, actionMeta, propsOnInputChange);\n    if (!inputValue) {\n      lastRequest.current = undefined;\n      setStateInputValue('');\n      setLoadedInputValue('');\n      setLoadedOptions([]);\n      setIsLoading(false);\n      setPassEmptyOptions(false);\n      return;\n    }\n    if (cacheOptions && optionsCache[inputValue]) {\n      setStateInputValue(inputValue);\n      setLoadedInputValue(inputValue);\n      setLoadedOptions(optionsCache[inputValue]);\n      setIsLoading(false);\n      setPassEmptyOptions(false);\n    } else {\n      var request = lastRequest.current = {};\n      setStateInputValue(inputValue);\n      setIsLoading(true);\n      setPassEmptyOptions(!loadedInputValue);\n      loadOptions(inputValue, function (options) {\n        if (!mounted) return;\n        if (request !== lastRequest.current) return;\n        lastRequest.current = undefined;\n        setIsLoading(false);\n        setLoadedInputValue(inputValue);\n        setLoadedOptions(options || []);\n        setPassEmptyOptions(false);\n        setOptionsCache(options ? _objectSpread(_objectSpread({}, optionsCache), {}, _defineProperty({}, inputValue, options)) : optionsCache);\n      });\n    }\n  }, [cacheOptions, loadOptions, loadedInputValue, optionsCache, propsOnInputChange]);\n  var options = passEmptyOptions ? [] : stateInputValue && loadedInputValue ? loadedOptions : defaultOptions || [];\n  return _objectSpread(_objectSpread({}, restSelectProps), {}, {\n    options: options,\n    isLoading: isLoading || propsIsLoading,\n    onInputChange: onInputChange,\n    filterOption: filterOption\n  });\n}\n\nexport { useAsync as u };\n","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport { useState, useCallback } from 'react';\n\nvar _excluded = [\"defaultInputValue\", \"defaultMenuIsOpen\", \"defaultValue\", \"inputValue\", \"menuIsOpen\", \"onChange\", \"onInputChange\", \"onMenuClose\", \"onMenuOpen\", \"value\"];\nfunction useStateManager(_ref) {\n  var _ref$defaultInputValu = _ref.defaultInputValue,\n    defaultInputValue = _ref$defaultInputValu === void 0 ? '' : _ref$defaultInputValu,\n    _ref$defaultMenuIsOpe = _ref.defaultMenuIsOpen,\n    defaultMenuIsOpen = _ref$defaultMenuIsOpe === void 0 ? false : _ref$defaultMenuIsOpe,\n    _ref$defaultValue = _ref.defaultValue,\n    defaultValue = _ref$defaultValue === void 0 ? null : _ref$defaultValue,\n    propsInputValue = _ref.inputValue,\n    propsMenuIsOpen = _ref.menuIsOpen,\n    propsOnChange = _ref.onChange,\n    propsOnInputChange = _ref.onInputChange,\n    propsOnMenuClose = _ref.onMenuClose,\n    propsOnMenuOpen = _ref.onMenuOpen,\n    propsValue = _ref.value,\n    restSelectProps = _objectWithoutProperties(_ref, _excluded);\n  var _useState = useState(propsInputValue !== undefined ? propsInputValue : defaultInputValue),\n    _useState2 = _slicedToArray(_useState, 2),\n    stateInputValue = _useState2[0],\n    setStateInputValue = _useState2[1];\n  var _useState3 = useState(propsMenuIsOpen !== undefined ? propsMenuIsOpen : defaultMenuIsOpen),\n    _useState4 = _slicedToArray(_useState3, 2),\n    stateMenuIsOpen = _useState4[0],\n    setStateMenuIsOpen = _useState4[1];\n  var _useState5 = useState(propsValue !== undefined ? propsValue : defaultValue),\n    _useState6 = _slicedToArray(_useState5, 2),\n    stateValue = _useState6[0],\n    setStateValue = _useState6[1];\n  var onChange = useCallback(function (value, actionMeta) {\n    if (typeof propsOnChange === 'function') {\n      propsOnChange(value, actionMeta);\n    }\n    setStateValue(value);\n  }, [propsOnChange]);\n  var onInputChange = useCallback(function (value, actionMeta) {\n    var newValue;\n    if (typeof propsOnInputChange === 'function') {\n      newValue = propsOnInputChange(value, actionMeta);\n    }\n    setStateInputValue(newValue !== undefined ? newValue : value);\n  }, [propsOnInputChange]);\n  var onMenuOpen = useCallback(function () {\n    if (typeof propsOnMenuOpen === 'function') {\n      propsOnMenuOpen();\n    }\n    setStateMenuIsOpen(true);\n  }, [propsOnMenuOpen]);\n  var onMenuClose = useCallback(function () {\n    if (typeof propsOnMenuClose === 'function') {\n      propsOnMenuClose();\n    }\n    setStateMenuIsOpen(false);\n  }, [propsOnMenuClose]);\n  var inputValue = propsInputValue !== undefined ? propsInputValue : stateInputValue;\n  var menuIsOpen = propsMenuIsOpen !== undefined ? propsMenuIsOpen : stateMenuIsOpen;\n  var value = propsValue !== undefined ? propsValue : stateValue;\n  return _objectSpread(_objectSpread({}, restSelectProps), {}, {\n    inputValue: inputValue,\n    menuIsOpen: menuIsOpen,\n    onChange: onChange,\n    onInputChange: onInputChange,\n    onMenuClose: onMenuClose,\n    onMenuOpen: onMenuOpen,\n    value: value\n  });\n}\n\nexport { useStateManager as u };\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};function X(){throw Error(\"act(...) is not supported in production builds of React.\");}\nexports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;exports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;exports.act=X;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=X;exports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};\nexports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};exports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};\nexports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};exports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.3.1\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react.production.min.js');\n} else {\n  module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n  module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * Relay v16.2.0\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nmodule.exports = require('./lib/index.js');\n","'use strict';\n\nvar ConnectionHandler = require('./connection/ConnectionHandler');\nvar MutationHandlers = require('./connection/MutationHandlers');\nvar invariant = require('invariant');\nfunction RelayDefaultHandlerProvider(handle) {\n  switch (handle) {\n    case 'connection':\n      return ConnectionHandler;\n    case 'deleteRecord':\n      return MutationHandlers.DeleteRecordHandler;\n    case 'deleteEdge':\n      return MutationHandlers.DeleteEdgeHandler;\n    case 'appendEdge':\n      return MutationHandlers.AppendEdgeHandler;\n    case 'prependEdge':\n      return MutationHandlers.PrependEdgeHandler;\n    case 'appendNode':\n      return MutationHandlers.AppendNodeHandler;\n    case 'prependNode':\n      return MutationHandlers.PrependNodeHandler;\n  }\n  !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayDefaultHandlerProvider: No handler provided for `%s`.', handle) : invariant(false) : void 0;\n}\nmodule.exports = RelayDefaultHandlerProvider;","'use strict';\n\nvar _require = require('../../store/ClientID'),\n  generateClientID = _require.generateClientID;\nvar _require2 = require('../../store/RelayStoreUtils'),\n  getStableStorageKey = _require2.getStableStorageKey;\nvar getRelayHandleKey = require('../../util/getRelayHandleKey');\nvar ConnectionInterface = require('./ConnectionInterface');\nvar invariant = require('invariant');\nvar warning = require(\"fbjs/lib/warning\");\nvar CONNECTION = 'connection';\nvar NEXT_EDGE_INDEX = '__connection_next_edge_index';\nfunction update(store, payload) {\n  var record = store.get(payload.dataID);\n  if (!record) {\n    return;\n  }\n  var _ConnectionInterface$ = ConnectionInterface.get(),\n    EDGES = _ConnectionInterface$.EDGES,\n    END_CURSOR = _ConnectionInterface$.END_CURSOR,\n    HAS_NEXT_PAGE = _ConnectionInterface$.HAS_NEXT_PAGE,\n    HAS_PREV_PAGE = _ConnectionInterface$.HAS_PREV_PAGE,\n    PAGE_INFO = _ConnectionInterface$.PAGE_INFO,\n    PAGE_INFO_TYPE = _ConnectionInterface$.PAGE_INFO_TYPE,\n    START_CURSOR = _ConnectionInterface$.START_CURSOR;\n  var serverConnection = record.getLinkedRecord(payload.fieldKey);\n  var serverPageInfo = serverConnection && serverConnection.getLinkedRecord(PAGE_INFO);\n  if (!serverConnection) {\n    record.setValue(null, payload.handleKey);\n    return;\n  }\n  var clientConnectionID = generateClientID(record.getDataID(), payload.handleKey);\n  var clientConnectionField = record.getLinkedRecord(payload.handleKey);\n  var clientConnection = clientConnectionField !== null && clientConnectionField !== void 0 ? clientConnectionField : store.get(clientConnectionID);\n  var clientPageInfo = clientConnection && clientConnection.getLinkedRecord(PAGE_INFO);\n  if (!clientConnection) {\n    var connection = store.create(clientConnectionID, serverConnection.getType());\n    connection.setValue(0, NEXT_EDGE_INDEX);\n    connection.copyFieldsFrom(serverConnection);\n    var serverEdges = serverConnection.getLinkedRecords(EDGES);\n    if (serverEdges) {\n      serverEdges = serverEdges.map(function (edge) {\n        return buildConnectionEdge(store, connection, edge);\n      });\n      connection.setLinkedRecords(serverEdges, EDGES);\n    }\n    record.setLinkedRecord(connection, payload.handleKey);\n    clientPageInfo = store.create(generateClientID(connection.getDataID(), PAGE_INFO), PAGE_INFO_TYPE);\n    clientPageInfo.setValue(false, HAS_NEXT_PAGE);\n    clientPageInfo.setValue(false, HAS_PREV_PAGE);\n    clientPageInfo.setValue(null, END_CURSOR);\n    clientPageInfo.setValue(null, START_CURSOR);\n    if (serverPageInfo) {\n      clientPageInfo.copyFieldsFrom(serverPageInfo);\n    }\n    connection.setLinkedRecord(clientPageInfo, PAGE_INFO);\n  } else {\n    if (clientConnectionField == null) {\n      record.setLinkedRecord(clientConnection, payload.handleKey);\n    }\n    var _connection = clientConnection;\n    var _serverEdges = serverConnection.getLinkedRecords(EDGES);\n    if (_serverEdges) {\n      _serverEdges = _serverEdges.map(function (edge) {\n        return buildConnectionEdge(store, _connection, edge);\n      });\n    }\n    var prevEdges = _connection.getLinkedRecords(EDGES);\n    var prevPageInfo = _connection.getLinkedRecord(PAGE_INFO);\n    _connection.copyFieldsFrom(serverConnection);\n    if (prevEdges) {\n      _connection.setLinkedRecords(prevEdges, EDGES);\n    }\n    if (prevPageInfo) {\n      _connection.setLinkedRecord(prevPageInfo, PAGE_INFO);\n    }\n    var nextEdges = [];\n    var args = payload.args;\n    if (prevEdges && _serverEdges) {\n      if (args.after != null) {\n        var _clientPageInfo;\n        var clientEndCursor = (_clientPageInfo = clientPageInfo) === null || _clientPageInfo === void 0 ? void 0 : _clientPageInfo.getValue(END_CURSOR);\n        var serverEndCursor = serverPageInfo === null || serverPageInfo === void 0 ? void 0 : serverPageInfo.getValue(END_CURSOR);\n        var isAddingEdgesAfterCurrentPage = clientPageInfo && args.after === clientEndCursor;\n        var isFillingOutCurrentPage = clientPageInfo && clientEndCursor === serverEndCursor;\n        if (isAddingEdgesAfterCurrentPage || isFillingOutCurrentPage) {\n          var nodeIDs = new Set();\n          mergeEdges(prevEdges, nextEdges, nodeIDs);\n          mergeEdges(_serverEdges, nextEdges, nodeIDs);\n        } else {\n          process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Unexpected after cursor `%s`, edges must ' + 'be fetched from the end of the list (`%s`).', args.after, clientPageInfo && clientPageInfo.getValue(END_CURSOR)) : void 0;\n          return;\n        }\n      } else if (args.before != null) {\n        if (clientPageInfo && args.before === clientPageInfo.getValue(START_CURSOR)) {\n          var _nodeIDs = new Set();\n          mergeEdges(_serverEdges, nextEdges, _nodeIDs);\n          mergeEdges(prevEdges, nextEdges, _nodeIDs);\n        } else {\n          process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Unexpected before cursor `%s`, edges must ' + 'be fetched from the beginning of the list (`%s`).', args.before, clientPageInfo && clientPageInfo.getValue(START_CURSOR)) : void 0;\n          return;\n        }\n      } else {\n        nextEdges = _serverEdges;\n      }\n    } else if (_serverEdges) {\n      nextEdges = _serverEdges;\n    } else {\n      nextEdges = prevEdges;\n    }\n    if (nextEdges != null && nextEdges !== prevEdges) {\n      _connection.setLinkedRecords(nextEdges, EDGES);\n    }\n    if (clientPageInfo && serverPageInfo) {\n      if (args.after == null && args.before == null) {\n        clientPageInfo.copyFieldsFrom(serverPageInfo);\n      } else if (args.before != null || args.after == null && args.last) {\n        clientPageInfo.setValue(!!serverPageInfo.getValue(HAS_PREV_PAGE), HAS_PREV_PAGE);\n        var startCursor = serverPageInfo.getValue(START_CURSOR);\n        if (typeof startCursor === 'string') {\n          clientPageInfo.setValue(startCursor, START_CURSOR);\n        }\n      } else if (args.after != null || args.before == null && args.first) {\n        clientPageInfo.setValue(!!serverPageInfo.getValue(HAS_NEXT_PAGE), HAS_NEXT_PAGE);\n        var endCursor = serverPageInfo.getValue(END_CURSOR);\n        if (typeof endCursor === 'string') {\n          clientPageInfo.setValue(endCursor, END_CURSOR);\n        }\n      }\n    }\n  }\n}\nfunction getConnection(record, key, filters) {\n  var handleKey = getRelayHandleKey(CONNECTION, key, null);\n  return record.getLinkedRecord(handleKey, filters);\n}\nfunction getConnectionID(recordID, key, filters) {\n  var handleKey = getRelayHandleKey(CONNECTION, key, null);\n  var storageKey = getStableStorageKey(handleKey, filters);\n  return generateClientID(recordID, storageKey);\n}\nfunction insertEdgeAfter(record, newEdge, cursor) {\n  var _ConnectionInterface$2 = ConnectionInterface.get(),\n    CURSOR = _ConnectionInterface$2.CURSOR,\n    EDGES = _ConnectionInterface$2.EDGES;\n  var edges = record.getLinkedRecords(EDGES);\n  if (!edges) {\n    record.setLinkedRecords([newEdge], EDGES);\n    return;\n  }\n  var nextEdges;\n  if (cursor == null) {\n    nextEdges = edges.concat(newEdge);\n  } else {\n    nextEdges = [];\n    var foundCursor = false;\n    for (var ii = 0; ii < edges.length; ii++) {\n      var edge = edges[ii];\n      nextEdges.push(edge);\n      if (edge == null) {\n        continue;\n      }\n      var edgeCursor = edge.getValue(CURSOR);\n      if (cursor === edgeCursor) {\n        nextEdges.push(newEdge);\n        foundCursor = true;\n      }\n    }\n    if (!foundCursor) {\n      nextEdges.push(newEdge);\n    }\n  }\n  record.setLinkedRecords(nextEdges, EDGES);\n}\nfunction createEdge(store, record, node, edgeType) {\n  var _ConnectionInterface$3 = ConnectionInterface.get(),\n    NODE = _ConnectionInterface$3.NODE;\n  var edgeID = generateClientID(record.getDataID(), node.getDataID());\n  var edge = store.get(edgeID);\n  if (!edge) {\n    edge = store.create(edgeID, edgeType);\n  }\n  edge.setLinkedRecord(node, NODE);\n  if (edge.getValue('cursor') == null) {\n    edge.setValue(null, 'cursor');\n  }\n  return edge;\n}\nfunction insertEdgeBefore(record, newEdge, cursor) {\n  var _ConnectionInterface$4 = ConnectionInterface.get(),\n    CURSOR = _ConnectionInterface$4.CURSOR,\n    EDGES = _ConnectionInterface$4.EDGES;\n  var edges = record.getLinkedRecords(EDGES);\n  if (!edges) {\n    record.setLinkedRecords([newEdge], EDGES);\n    return;\n  }\n  var nextEdges;\n  if (cursor == null) {\n    nextEdges = [newEdge].concat(edges);\n  } else {\n    nextEdges = [];\n    var foundCursor = false;\n    for (var ii = 0; ii < edges.length; ii++) {\n      var edge = edges[ii];\n      if (edge != null) {\n        var edgeCursor = edge.getValue(CURSOR);\n        if (cursor === edgeCursor) {\n          nextEdges.push(newEdge);\n          foundCursor = true;\n        }\n      }\n      nextEdges.push(edge);\n    }\n    if (!foundCursor) {\n      nextEdges.unshift(newEdge);\n    }\n  }\n  record.setLinkedRecords(nextEdges, EDGES);\n}\nfunction deleteNode(record, nodeID) {\n  var _ConnectionInterface$5 = ConnectionInterface.get(),\n    EDGES = _ConnectionInterface$5.EDGES,\n    NODE = _ConnectionInterface$5.NODE;\n  var edges = record.getLinkedRecords(EDGES);\n  if (!edges) {\n    return;\n  }\n  var nextEdges;\n  for (var ii = 0; ii < edges.length; ii++) {\n    var edge = edges[ii];\n    var node = edge && edge.getLinkedRecord(NODE);\n    if (node != null && node.getDataID() === nodeID) {\n      if (nextEdges === undefined) {\n        nextEdges = edges.slice(0, ii);\n      }\n    } else if (nextEdges !== undefined) {\n      nextEdges.push(edge);\n    }\n  }\n  if (nextEdges !== undefined) {\n    record.setLinkedRecords(nextEdges, EDGES);\n  }\n}\nfunction buildConnectionEdge(store, connection, edge) {\n  if (edge == null) {\n    return edge;\n  }\n  var _ConnectionInterface$6 = ConnectionInterface.get(),\n    EDGES = _ConnectionInterface$6.EDGES;\n  var edgeIndex = connection.getValue(NEXT_EDGE_INDEX);\n  !(typeof edgeIndex === 'number') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ConnectionHandler: Expected %s to be a number, got `%s`.', NEXT_EDGE_INDEX, edgeIndex) : invariant(false) : void 0;\n  var edgeID = generateClientID(connection.getDataID(), EDGES, edgeIndex);\n  var connectionEdge = store.create(edgeID, edge.getType());\n  connectionEdge.copyFieldsFrom(edge);\n  if (connectionEdge.getValue('cursor') == null) {\n    connectionEdge.setValue(null, 'cursor');\n  }\n  connection.setValue(edgeIndex + 1, NEXT_EDGE_INDEX);\n  return connectionEdge;\n}\nfunction mergeEdges(sourceEdges, targetEdges, nodeIDs) {\n  var _ConnectionInterface$7 = ConnectionInterface.get(),\n    NODE = _ConnectionInterface$7.NODE;\n  for (var ii = 0; ii < sourceEdges.length; ii++) {\n    var edge = sourceEdges[ii];\n    if (!edge) {\n      continue;\n    }\n    var node = edge.getLinkedRecord(NODE);\n    var nodeID = node && node.getDataID();\n    if (nodeID) {\n      if (nodeIDs.has(nodeID)) {\n        continue;\n      }\n      nodeIDs.add(nodeID);\n    }\n    targetEdges.push(edge);\n  }\n}\nmodule.exports = {\n  buildConnectionEdge: buildConnectionEdge,\n  createEdge: createEdge,\n  deleteNode: deleteNode,\n  getConnection: getConnection,\n  getConnectionID: getConnectionID,\n  insertEdgeAfter: insertEdgeAfter,\n  insertEdgeBefore: insertEdgeBefore,\n  update: update\n};","'use strict';\n\nvar CONNECTION_CALLS = {\n  after: true,\n  before: true,\n  find: true,\n  first: true,\n  last: true,\n  surrounds: true\n};\nvar config = {\n  CURSOR: 'cursor',\n  EDGES: 'edges',\n  END_CURSOR: 'endCursor',\n  HAS_NEXT_PAGE: 'hasNextPage',\n  HAS_PREV_PAGE: 'hasPreviousPage',\n  NODE: 'node',\n  PAGE_INFO_TYPE: 'PageInfo',\n  PAGE_INFO: 'pageInfo',\n  START_CURSOR: 'startCursor'\n};\nvar ConnectionInterface = {\n  inject: function inject(newConfig) {\n    config = newConfig;\n  },\n  get: function get() {\n    return config;\n  },\n  isConnectionCall: function isConnectionCall(call) {\n    return CONNECTION_CALLS.hasOwnProperty(call.name);\n  }\n};\nmodule.exports = ConnectionInterface;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\nvar ConnectionHandler = require('./ConnectionHandler');\nvar ConnectionInterface = require('./ConnectionInterface');\nvar invariant = require('invariant');\nvar warning = require(\"fbjs/lib/warning\");\nvar DeleteRecordHandler = {\n  update: function update(store, payload) {\n    var record = store.get(payload.dataID);\n    if (record != null) {\n      var idOrIds = record.getValue(payload.fieldKey);\n      if (typeof idOrIds === 'string') {\n        store[\"delete\"](idOrIds);\n      } else if (Array.isArray(idOrIds)) {\n        idOrIds.forEach(function (id) {\n          if (typeof id === 'string') {\n            store[\"delete\"](id);\n          }\n        });\n      }\n    }\n  }\n};\nvar DeleteEdgeHandler = {\n  update: function update(store, payload) {\n    var record = store.get(payload.dataID);\n    if (record == null) {\n      return;\n    }\n    var connections = payload.handleArgs.connections;\n    !(connections != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'MutationHandlers: Expected connection IDs to be specified.') : invariant(false) : void 0;\n    var idOrIds = record.getValue(payload.fieldKey);\n    var idList = Array.isArray(idOrIds) ? idOrIds : [idOrIds];\n    idList.forEach(function (id) {\n      if (typeof id === 'string') {\n        var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(connections),\n          _step;\n        try {\n          for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            var connectionID = _step.value;\n            var connection = store.get(connectionID);\n            if (connection == null) {\n              process.env.NODE_ENV !== \"production\" ? warning(false, \"[Relay] The connection with id `%s` doesn't exist.\", connectionID) : void 0;\n              continue;\n            }\n            ConnectionHandler.deleteNode(connection, id);\n          }\n        } catch (err) {\n          _iterator.e(err);\n        } finally {\n          _iterator.f();\n        }\n      }\n    });\n  }\n};\nvar AppendEdgeHandler = {\n  update: edgeUpdater(ConnectionHandler.insertEdgeAfter)\n};\nvar PrependEdgeHandler = {\n  update: edgeUpdater(ConnectionHandler.insertEdgeBefore)\n};\nvar AppendNodeHandler = {\n  update: nodeUpdater(ConnectionHandler.insertEdgeAfter)\n};\nvar PrependNodeHandler = {\n  update: nodeUpdater(ConnectionHandler.insertEdgeBefore)\n};\nfunction edgeUpdater(insertFn) {\n  return function (store, payload) {\n    var _serverEdges;\n    var record = store.get(payload.dataID);\n    if (record == null) {\n      return;\n    }\n    var connections = payload.handleArgs.connections;\n    !(connections != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'MutationHandlers: Expected connection IDs to be specified.') : invariant(false) : void 0;\n    var singleServerEdge, serverEdges;\n    try {\n      singleServerEdge = record.getLinkedRecord(payload.fieldKey);\n    } catch (_unused) {}\n    if (!singleServerEdge) {\n      try {\n        serverEdges = record.getLinkedRecords(payload.fieldKey);\n      } catch (_unused2) {}\n    }\n    if (singleServerEdge == null && serverEdges == null) {\n      process.env.NODE_ENV !== \"production\" ? warning(false, 'MutationHandlers: Expected the server edge to be non-null.') : void 0;\n      return;\n    }\n    var _ConnectionInterface$ = ConnectionInterface.get(),\n      NODE = _ConnectionInterface$.NODE,\n      EDGES = _ConnectionInterface$.EDGES;\n    var serverEdgeList = (_serverEdges = serverEdges) !== null && _serverEdges !== void 0 ? _serverEdges : [singleServerEdge];\n    var _iterator2 = (0, _createForOfIteratorHelper2[\"default\"])(serverEdgeList),\n      _step2;\n    try {\n      var _loop = function _loop() {\n        var serverEdge = _step2.value;\n        if (serverEdge == null) {\n          return \"continue\";\n        }\n        var serverNode = serverEdge.getLinkedRecord('node');\n        if (!serverNode) {\n          return \"continue\";\n        }\n        var serverNodeId = serverNode.getDataID();\n        var _iterator3 = (0, _createForOfIteratorHelper2[\"default\"])(connections),\n          _step3;\n        try {\n          for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n            var connectionID = _step3.value;\n            var connection = store.get(connectionID);\n            if (connection == null) {\n              process.env.NODE_ENV !== \"production\" ? warning(false, \"[Relay] The connection with id `%s` doesn't exist.\", connectionID) : void 0;\n              continue;\n            }\n            var nodeAlreadyExistsInConnection = (_connection$getLinked = connection.getLinkedRecords(EDGES)) === null || _connection$getLinked === void 0 ? void 0 : _connection$getLinked.some(function (edge) {\n              var _edge$getLinkedRecord;\n              return (edge === null || edge === void 0 ? void 0 : (_edge$getLinkedRecord = edge.getLinkedRecord(NODE)) === null || _edge$getLinkedRecord === void 0 ? void 0 : _edge$getLinkedRecord.getDataID()) === serverNodeId;\n            });\n            if (nodeAlreadyExistsInConnection) {\n              continue;\n            }\n            var clientEdge = ConnectionHandler.buildConnectionEdge(store, connection, serverEdge);\n            !(clientEdge != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'MutationHandlers: Failed to build the edge.') : invariant(false) : void 0;\n            insertFn(connection, clientEdge);\n          }\n        } catch (err) {\n          _iterator3.e(err);\n        } finally {\n          _iterator3.f();\n        }\n      };\n      for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n        var _connection$getLinked;\n        var _ret = _loop();\n        if (_ret === \"continue\") continue;\n      }\n    } catch (err) {\n      _iterator2.e(err);\n    } finally {\n      _iterator2.f();\n    }\n  };\n}\nfunction nodeUpdater(insertFn) {\n  return function (store, payload) {\n    var _serverNodes;\n    var record = store.get(payload.dataID);\n    if (record == null) {\n      return;\n    }\n    var _payload$handleArgs = payload.handleArgs,\n      connections = _payload$handleArgs.connections,\n      edgeTypeName = _payload$handleArgs.edgeTypeName;\n    !(connections != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'MutationHandlers: Expected connection IDs to be specified.') : invariant(false) : void 0;\n    !(edgeTypeName != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'MutationHandlers: Expected edge typename to be specified.') : invariant(false) : void 0;\n    var singleServerNode;\n    var serverNodes;\n    try {\n      singleServerNode = record.getLinkedRecord(payload.fieldKey);\n    } catch (_unused3) {}\n    if (!singleServerNode) {\n      try {\n        serverNodes = record.getLinkedRecords(payload.fieldKey);\n      } catch (_unused4) {}\n    }\n    if (singleServerNode == null && serverNodes == null) {\n      process.env.NODE_ENV !== \"production\" ? warning(false, 'MutationHandlers: Expected target node to exist.') : void 0;\n      return;\n    }\n    var _ConnectionInterface$2 = ConnectionInterface.get(),\n      NODE = _ConnectionInterface$2.NODE,\n      EDGES = _ConnectionInterface$2.EDGES;\n    var serverNodeList = (_serverNodes = serverNodes) !== null && _serverNodes !== void 0 ? _serverNodes : [singleServerNode];\n    var _iterator4 = (0, _createForOfIteratorHelper2[\"default\"])(serverNodeList),\n      _step4;\n    try {\n      var _loop2 = function _loop2() {\n        var serverNode = _step4.value;\n        if (serverNode == null) {\n          return \"continue\";\n        }\n        var serverNodeId = serverNode.getDataID();\n        var _iterator5 = (0, _createForOfIteratorHelper2[\"default\"])(connections),\n          _step5;\n        try {\n          for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n            var connectionID = _step5.value;\n            var connection = store.get(connectionID);\n            if (connection == null) {\n              process.env.NODE_ENV !== \"production\" ? warning(false, \"[Relay] The connection with id `%s` doesn't exist.\", connectionID) : void 0;\n              continue;\n            }\n            var nodeAlreadyExistsInConnection = (_connection$getLinked2 = connection.getLinkedRecords(EDGES)) === null || _connection$getLinked2 === void 0 ? void 0 : _connection$getLinked2.some(function (edge) {\n              var _edge$getLinkedRecord2;\n              return (edge === null || edge === void 0 ? void 0 : (_edge$getLinkedRecord2 = edge.getLinkedRecord(NODE)) === null || _edge$getLinkedRecord2 === void 0 ? void 0 : _edge$getLinkedRecord2.getDataID()) === serverNodeId;\n            });\n            if (nodeAlreadyExistsInConnection) {\n              continue;\n            }\n            var clientEdge = ConnectionHandler.createEdge(store, connection, serverNode, edgeTypeName);\n            !(clientEdge != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'MutationHandlers: Failed to build the edge.') : invariant(false) : void 0;\n            insertFn(connection, clientEdge);\n          }\n        } catch (err) {\n          _iterator5.e(err);\n        } finally {\n          _iterator5.f();\n        }\n      };\n      for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n        var _connection$getLinked2;\n        var _ret2 = _loop2();\n        if (_ret2 === \"continue\") continue;\n      }\n    } catch (err) {\n      _iterator4.e(err);\n    } finally {\n      _iterator4.f();\n    }\n  };\n}\nmodule.exports = {\n  AppendEdgeHandler: AppendEdgeHandler,\n  DeleteRecordHandler: DeleteRecordHandler,\n  PrependEdgeHandler: PrependEdgeHandler,\n  AppendNodeHandler: AppendNodeHandler,\n  PrependNodeHandler: PrependNodeHandler,\n  DeleteEdgeHandler: DeleteEdgeHandler\n};","'use strict';\n\nvar ConnectionHandler = require('./handlers/connection/ConnectionHandler');\nvar ConnectionInterface = require('./handlers/connection/ConnectionInterface');\nvar MutationHandlers = require('./handlers/connection/MutationHandlers');\nvar RelayDefaultHandlerProvider = require('./handlers/RelayDefaultHandlerProvider');\nvar applyOptimisticMutation = require('./mutations/applyOptimisticMutation');\nvar commitLocalUpdate = require('./mutations/commitLocalUpdate');\nvar commitMutation = require('./mutations/commitMutation');\nvar RelayDeclarativeMutationConfig = require('./mutations/RelayDeclarativeMutationConfig');\nvar RelayNetwork = require('./network/RelayNetwork');\nvar RelayObservable = require('./network/RelayObservable');\nvar RelayQueryResponseCache = require('./network/RelayQueryResponseCache');\nvar fetchQuery = require('./query/fetchQuery');\nvar fetchQuery_DEPRECATED = require('./query/fetchQuery_DEPRECATED');\nvar fetchQueryInternal = require('./query/fetchQueryInternal');\nvar GraphQLTag = require('./query/GraphQLTag');\nvar PreloadableQueryRegistry = require('./query/PreloadableQueryRegistry');\nvar _require = require('./store/ClientID'),\n  generateClientID = _require.generateClientID,\n  generateUniqueClientID = _require.generateUniqueClientID,\n  isClientID = _require.isClientID;\nvar createFragmentSpecResolver = require('./store/createFragmentSpecResolver');\nvar createRelayContext = require('./store/createRelayContext');\nvar _require2 = require('./store/experimental-live-resolvers/LiveResolverSuspenseSentinel'),\n  isSuspenseSentinel = _require2.isSuspenseSentinel,\n  suspenseSentinel = _require2.suspenseSentinel;\nvar isRelayModernEnvironment = require('./store/isRelayModernEnvironment');\nvar normalizeResponse = require('./store/normalizeResponse');\nvar readInlineData = require('./store/readInlineData');\nvar RelayConcreteVariables = require('./store/RelayConcreteVariables');\nvar RelayModernEnvironment = require('./store/RelayModernEnvironment');\nvar RelayModernOperationDescriptor = require('./store/RelayModernOperationDescriptor');\nvar RelayModernRecord = require('./store/RelayModernRecord');\nvar RelayModernSelector = require('./store/RelayModernSelector');\nvar RelayModernStore = require('./store/RelayModernStore');\nvar RelayOperationTracker = require('./store/RelayOperationTracker');\nvar RelayRecordSource = require('./store/RelayRecordSource');\nvar RelayStoreUtils = require('./store/RelayStoreUtils');\nvar ResolverFragments = require('./store/ResolverFragments');\nvar ViewerPattern = require('./store/ViewerPattern');\nvar requestSubscription = require('./subscription/requestSubscription');\nvar createPayloadFor3DField = require('./util/createPayloadFor3DField');\nvar deepFreeze = require('./util/deepFreeze');\nvar getFragmentIdentifier = require('./util/getFragmentIdentifier');\nvar getPaginationMetadata = require('./util/getPaginationMetadata');\nvar getPaginationVariables = require('./util/getPaginationVariables');\nvar getPendingOperationsForFragment = require('./util/getPendingOperationsForFragment');\nvar getRefetchMetadata = require('./util/getRefetchMetadata');\nvar getRelayHandleKey = require('./util/getRelayHandleKey');\nvar getRequestIdentifier = require('./util/getRequestIdentifier');\nvar getValueAtPath = require('./util/getValueAtPath');\nvar handlePotentialSnapshotErrors = require('./util/handlePotentialSnapshotErrors');\nvar isPromise = require('./util/isPromise');\nvar isScalarAndEqual = require('./util/isScalarAndEqual');\nvar recycleNodesInto = require('./util/recycleNodesInto');\nvar RelayConcreteNode = require('./util/RelayConcreteNode');\nvar RelayDefaultHandleKey = require('./util/RelayDefaultHandleKey');\nvar RelayError = require('./util/RelayError');\nvar RelayFeatureFlags = require('./util/RelayFeatureFlags');\nvar RelayProfiler = require('./util/RelayProfiler');\nvar RelayReplaySubject = require('./util/RelayReplaySubject');\nvar stableCopy = require('./util/stableCopy');\nvar withProvidedVariables = require('./util/withProvidedVariables');\nif (process.env.NODE_ENV !== \"production\") {\n  var mapStr = typeof Map !== 'function' ? 'Map' : null;\n  var setStr = typeof Set !== 'function' ? 'Set' : null;\n  var promiseStr = typeof Promise !== 'function' ? 'Promise' : null;\n  var objStr = typeof Object.assign !== 'function' ? 'Object.assign' : null;\n  if (mapStr || setStr || promiseStr || objStr) {\n    throw new Error(\"relay-runtime requires \".concat([mapStr, setStr, promiseStr, objStr].filter(Boolean).join(', and '), \" to exist. \") + 'Use a polyfill to provide these for older browsers.');\n  }\n}\nmodule.exports = {\n  Environment: RelayModernEnvironment,\n  Network: RelayNetwork,\n  Observable: RelayObservable,\n  QueryResponseCache: RelayQueryResponseCache,\n  RecordSource: RelayRecordSource,\n  Record: RelayModernRecord,\n  ReplaySubject: RelayReplaySubject,\n  Store: RelayModernStore,\n  areEqualSelectors: RelayModernSelector.areEqualSelectors,\n  createFragmentSpecResolver: createFragmentSpecResolver,\n  createNormalizationSelector: RelayModernSelector.createNormalizationSelector,\n  createOperationDescriptor: RelayModernOperationDescriptor.createOperationDescriptor,\n  createReaderSelector: RelayModernSelector.createReaderSelector,\n  createRequestDescriptor: RelayModernOperationDescriptor.createRequestDescriptor,\n  getArgumentValues: RelayStoreUtils.getArgumentValues,\n  getDataIDsFromFragment: RelayModernSelector.getDataIDsFromFragment,\n  getDataIDsFromObject: RelayModernSelector.getDataIDsFromObject,\n  getNode: GraphQLTag.getNode,\n  getFragment: GraphQLTag.getFragment,\n  getInlineDataFragment: GraphQLTag.getInlineDataFragment,\n  getModuleComponentKey: RelayStoreUtils.getModuleComponentKey,\n  getModuleOperationKey: RelayStoreUtils.getModuleOperationKey,\n  getPaginationFragment: GraphQLTag.getPaginationFragment,\n  getPluralSelector: RelayModernSelector.getPluralSelector,\n  getRefetchableFragment: GraphQLTag.getRefetchableFragment,\n  getRequest: GraphQLTag.getRequest,\n  getRequestIdentifier: getRequestIdentifier,\n  getSelector: RelayModernSelector.getSelector,\n  getSelectorsFromObject: RelayModernSelector.getSelectorsFromObject,\n  getSingularSelector: RelayModernSelector.getSingularSelector,\n  getStorageKey: RelayStoreUtils.getStorageKey,\n  getVariablesFromFragment: RelayModernSelector.getVariablesFromFragment,\n  getVariablesFromObject: RelayModernSelector.getVariablesFromObject,\n  getVariablesFromPluralFragment: RelayModernSelector.getVariablesFromPluralFragment,\n  getVariablesFromSingularFragment: RelayModernSelector.getVariablesFromSingularFragment,\n  handlePotentialSnapshotErrors: handlePotentialSnapshotErrors,\n  graphql: GraphQLTag.graphql,\n  isFragment: GraphQLTag.isFragment,\n  isInlineDataFragment: GraphQLTag.isInlineDataFragment,\n  isSuspenseSentinel: isSuspenseSentinel,\n  suspenseSentinel: suspenseSentinel,\n  isRequest: GraphQLTag.isRequest,\n  readInlineData: readInlineData,\n  MutationTypes: RelayDeclarativeMutationConfig.MutationTypes,\n  RangeOperations: RelayDeclarativeMutationConfig.RangeOperations,\n  DefaultHandlerProvider: RelayDefaultHandlerProvider,\n  ConnectionHandler: ConnectionHandler,\n  MutationHandlers: MutationHandlers,\n  VIEWER_ID: ViewerPattern.VIEWER_ID,\n  VIEWER_TYPE: ViewerPattern.VIEWER_TYPE,\n  applyOptimisticMutation: applyOptimisticMutation,\n  commitLocalUpdate: commitLocalUpdate,\n  commitMutation: commitMutation,\n  fetchQuery: fetchQuery,\n  fetchQuery_DEPRECATED: fetchQuery_DEPRECATED,\n  isRelayModernEnvironment: isRelayModernEnvironment,\n  requestSubscription: requestSubscription,\n  ConnectionInterface: ConnectionInterface,\n  PreloadableQueryRegistry: PreloadableQueryRegistry,\n  RelayProfiler: RelayProfiler,\n  createPayloadFor3DField: createPayloadFor3DField,\n  RelayConcreteNode: RelayConcreteNode,\n  RelayError: RelayError,\n  RelayFeatureFlags: RelayFeatureFlags,\n  DEFAULT_HANDLE_KEY: RelayDefaultHandleKey.DEFAULT_HANDLE_KEY,\n  FRAGMENTS_KEY: RelayStoreUtils.FRAGMENTS_KEY,\n  FRAGMENT_OWNER_KEY: RelayStoreUtils.FRAGMENT_OWNER_KEY,\n  ID_KEY: RelayStoreUtils.ID_KEY,\n  REF_KEY: RelayStoreUtils.REF_KEY,\n  REFS_KEY: RelayStoreUtils.REFS_KEY,\n  ROOT_ID: RelayStoreUtils.ROOT_ID,\n  ROOT_TYPE: RelayStoreUtils.ROOT_TYPE,\n  TYPENAME_KEY: RelayStoreUtils.TYPENAME_KEY,\n  deepFreeze: deepFreeze,\n  generateClientID: generateClientID,\n  generateUniqueClientID: generateUniqueClientID,\n  getRelayHandleKey: getRelayHandleKey,\n  isClientID: isClientID,\n  isPromise: isPromise,\n  isScalarAndEqual: isScalarAndEqual,\n  recycleNodesInto: recycleNodesInto,\n  stableCopy: stableCopy,\n  getFragmentIdentifier: getFragmentIdentifier,\n  getRefetchMetadata: getRefetchMetadata,\n  getPaginationMetadata: getPaginationMetadata,\n  getPaginationVariables: getPaginationVariables,\n  getPendingOperationsForFragment: getPendingOperationsForFragment,\n  getValueAtPath: getValueAtPath,\n  __internal: {\n    ResolverFragments: ResolverFragments,\n    OperationTracker: RelayOperationTracker,\n    createRelayContext: createRelayContext,\n    getOperationVariables: RelayConcreteVariables.getOperationVariables,\n    getLocalVariables: RelayConcreteVariables.getLocalVariables,\n    fetchQuery: fetchQueryInternal.fetchQuery,\n    fetchQueryDeduped: fetchQueryInternal.fetchQueryDeduped,\n    getPromiseForActiveRequest: fetchQueryInternal.getPromiseForActiveRequest,\n    getObservableForActiveRequest: fetchQueryInternal.getObservableForActiveRequest,\n    normalizeResponse: normalizeResponse,\n    withProvidedVariables: withProvidedVariables\n  }\n};","'use strict';\n\nvar invariant = require('invariant');\nvar INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE = 'INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE';\nfunction assertInternalActorIdentifier(actorIdentifier) {\n  !(actorIdentifier === INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected to use only internal version of the `actorIdentifier`. \"%s\" was provided.', actorIdentifier) : invariant(false) : void 0;\n}\nmodule.exports = {\n  assertInternalActorIdentifier: assertInternalActorIdentifier,\n  getActorIdentifier: function getActorIdentifier(actorID) {\n    return actorID;\n  },\n  getDefaultActorIdentifier: function getDefaultActorIdentifier() {\n    throw new Error('Not Implemented');\n  },\n  INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE: INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE\n};","'use strict';\n\nvar ACTOR_IDENTIFIER_FIELD_NAME = 'actor_key';\nvar _require = require('./ActorIdentifier'),\n  getActorIdentifier = _require.getActorIdentifier;\nfunction getActorIdentifierFromPayload(payload) {\n  if (payload != null && typeof payload === 'object' && typeof payload[ACTOR_IDENTIFIER_FIELD_NAME] === 'string') {\n    return getActorIdentifier(payload[ACTOR_IDENTIFIER_FIELD_NAME]);\n  }\n}\nmodule.exports = {\n  ACTOR_IDENTIFIER_FIELD_NAME: ACTOR_IDENTIFIER_FIELD_NAME,\n  getActorIdentifierFromPayload: getActorIdentifierFromPayload\n};","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\nvar ConnectionHandler = require('../handlers/connection/ConnectionHandler');\nvar warning = require(\"fbjs/lib/warning\");\nvar MutationTypes = Object.freeze({\n  RANGE_ADD: 'RANGE_ADD',\n  RANGE_DELETE: 'RANGE_DELETE',\n  NODE_DELETE: 'NODE_DELETE'\n});\nvar RangeOperations = Object.freeze({\n  APPEND: 'append',\n  PREPEND: 'prepend'\n});\nfunction convert(configs, request, optimisticUpdater, updater) {\n  var configOptimisticUpdates = optimisticUpdater ? [optimisticUpdater] : [];\n  var configUpdates = updater ? [updater] : [];\n  configs.forEach(function (config) {\n    switch (config.type) {\n      case 'NODE_DELETE':\n        var nodeDeleteResult = nodeDelete(config, request);\n        if (nodeDeleteResult) {\n          configOptimisticUpdates.push(nodeDeleteResult);\n          configUpdates.push(nodeDeleteResult);\n        }\n        break;\n      case 'RANGE_ADD':\n        var rangeAddResult = rangeAdd(config, request);\n        if (rangeAddResult) {\n          configOptimisticUpdates.push(rangeAddResult);\n          configUpdates.push(rangeAddResult);\n        }\n        break;\n      case 'RANGE_DELETE':\n        var rangeDeleteResult = rangeDelete(config, request);\n        if (rangeDeleteResult) {\n          configOptimisticUpdates.push(rangeDeleteResult);\n          configUpdates.push(rangeDeleteResult);\n        }\n        break;\n    }\n  });\n  return {\n    optimisticUpdater: function optimisticUpdater(store, data) {\n      configOptimisticUpdates.forEach(function (eachOptimisticUpdater) {\n        eachOptimisticUpdater(store, data);\n      });\n    },\n    updater: function updater(store, data) {\n      configUpdates.forEach(function (eachUpdater) {\n        eachUpdater(store, data);\n      });\n    }\n  };\n}\nfunction nodeDelete(config, request) {\n  var deletedIDFieldName = config.deletedIDFieldName;\n  var rootField = getRootField(request);\n  if (!rootField) {\n    return null;\n  }\n  return function (store, data) {\n    var payload = store.getRootField(rootField);\n    if (!payload) {\n      return;\n    }\n    var deleteID = payload.getValue(deletedIDFieldName);\n    var deleteIDs = Array.isArray(deleteID) ? deleteID : [deleteID];\n    deleteIDs.forEach(function (id) {\n      if (id && typeof id === 'string') {\n        store[\"delete\"](id);\n      }\n    });\n  };\n}\nfunction rangeAdd(config, request) {\n  var parentID = config.parentID,\n    connectionInfo = config.connectionInfo,\n    edgeName = config.edgeName;\n  if (!parentID) {\n    process.env.NODE_ENV !== \"production\" ? warning(false, 'RelayDeclarativeMutationConfig: For mutation config RANGE_ADD ' + 'to work you must include a parentID') : void 0;\n    return null;\n  }\n  var rootField = getRootField(request);\n  if (!connectionInfo || !rootField) {\n    return null;\n  }\n  return function (store, data) {\n    var parent = store.get(parentID);\n    if (!parent) {\n      return;\n    }\n    var payload = store.getRootField(rootField);\n    if (!payload) {\n      return;\n    }\n    var serverEdge = payload.getLinkedRecord(edgeName);\n    var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(connectionInfo),\n      _step;\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var info = _step.value;\n        if (!serverEdge) {\n          continue;\n        }\n        var connection = ConnectionHandler.getConnection(parent, info.key, info.filters);\n        if (!connection) {\n          continue;\n        }\n        var clientEdge = ConnectionHandler.buildConnectionEdge(store, connection, serverEdge);\n        if (!clientEdge) {\n          continue;\n        }\n        switch (info.rangeBehavior) {\n          case 'append':\n            ConnectionHandler.insertEdgeAfter(connection, clientEdge);\n            break;\n          case 'prepend':\n            ConnectionHandler.insertEdgeBefore(connection, clientEdge);\n            break;\n          default:\n            process.env.NODE_ENV !== \"production\" ? warning(false, 'RelayDeclarativeMutationConfig: RANGE_ADD range behavior `%s` ' + 'will not work as expected in RelayModern, supported range ' + \"behaviors are 'append', 'prepend'.\", info.rangeBehavior) : void 0;\n            break;\n        }\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n  };\n}\nfunction rangeDelete(config, request) {\n  var parentID = config.parentID,\n    connectionKeys = config.connectionKeys,\n    pathToConnection = config.pathToConnection,\n    deletedIDFieldName = config.deletedIDFieldName;\n  if (!parentID) {\n    process.env.NODE_ENV !== \"production\" ? warning(false, 'RelayDeclarativeMutationConfig: For mutation config RANGE_DELETE ' + 'to work you must include a parentID') : void 0;\n    return null;\n  }\n  var rootField = getRootField(request);\n  if (!rootField) {\n    return null;\n  }\n  return function (store, data) {\n    if (!data) {\n      return;\n    }\n    var deleteIDs = [];\n    var deletedIDField = data[rootField];\n    if (deletedIDField && Array.isArray(deletedIDFieldName)) {\n      var _iterator2 = (0, _createForOfIteratorHelper2[\"default\"])(deletedIDFieldName),\n        _step2;\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var eachField = _step2.value;\n          if (deletedIDField && typeof deletedIDField === 'object') {\n            deletedIDField = deletedIDField[eachField];\n          }\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n      if (Array.isArray(deletedIDField)) {\n        deletedIDField.forEach(function (idObject) {\n          if (idObject && idObject.id && typeof idObject === 'object' && typeof idObject.id === 'string') {\n            deleteIDs.push(idObject.id);\n          }\n        });\n      } else if (deletedIDField && deletedIDField.id && typeof deletedIDField.id === 'string') {\n        deleteIDs.push(deletedIDField.id);\n      }\n    } else if (deletedIDField && typeof deletedIDFieldName === 'string' && typeof deletedIDField === 'object') {\n      deletedIDField = deletedIDField[deletedIDFieldName];\n      if (typeof deletedIDField === 'string') {\n        deleteIDs.push(deletedIDField);\n      } else if (Array.isArray(deletedIDField)) {\n        deletedIDField.forEach(function (id) {\n          if (typeof id === 'string') {\n            deleteIDs.push(id);\n          }\n        });\n      }\n    }\n    deleteNode(parentID, connectionKeys, pathToConnection, store, deleteIDs);\n  };\n}\nfunction deleteNode(parentID, connectionKeys, pathToConnection, store, deleteIDs) {\n  process.env.NODE_ENV !== \"production\" ? warning(connectionKeys != null, 'RelayDeclarativeMutationConfig: RANGE_DELETE must provide a ' + 'connectionKeys') : void 0;\n  var parent = store.get(parentID);\n  if (!parent) {\n    return;\n  }\n  if (pathToConnection.length < 2) {\n    process.env.NODE_ENV !== \"production\" ? warning(false, 'RelayDeclarativeMutationConfig: RANGE_DELETE ' + 'pathToConnection must include at least parent and connection') : void 0;\n    return;\n  }\n  var recordProxy = parent;\n  for (var i = 1; i < pathToConnection.length - 1; i++) {\n    if (recordProxy) {\n      recordProxy = recordProxy.getLinkedRecord(pathToConnection[i]);\n    }\n  }\n  if (!connectionKeys || !recordProxy) {\n    process.env.NODE_ENV !== \"production\" ? warning(false, 'RelayDeclarativeMutationConfig: RANGE_DELETE ' + 'pathToConnection is incorrect. Unable to find connection with ' + 'parentID: %s and path: %s', parentID, pathToConnection.toString()) : void 0;\n    return;\n  }\n  var _iterator3 = (0, _createForOfIteratorHelper2[\"default\"])(connectionKeys),\n    _step3;\n  try {\n    var _loop = function _loop() {\n      var key = _step3.value;\n      var connection = ConnectionHandler.getConnection(recordProxy, key.key, key.filters);\n      if (connection) {\n        deleteIDs.forEach(function (deleteID) {\n          ConnectionHandler.deleteNode(connection, deleteID);\n        });\n      }\n    };\n    for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n      _loop();\n    }\n  } catch (err) {\n    _iterator3.e(err);\n  } finally {\n    _iterator3.f();\n  }\n}\nfunction getRootField(request) {\n  if (request.fragment.selections && request.fragment.selections.length > 0 && request.fragment.selections[0].kind === 'LinkedField') {\n    return request.fragment.selections[0].name;\n  }\n  return null;\n}\nmodule.exports = {\n  MutationTypes: MutationTypes,\n  RangeOperations: RangeOperations,\n  convert: convert\n};","'use strict';\n\nvar _require = require('../store/ClientID'),\n  generateClientID = _require.generateClientID;\nvar _require2 = require('../store/RelayStoreUtils'),\n  getStableStorageKey = _require2.getStableStorageKey;\nvar invariant = require('invariant');\nvar RelayRecordProxy = /*#__PURE__*/function () {\n  function RelayRecordProxy(source, mutator, dataID) {\n    this._dataID = dataID;\n    this._mutator = mutator;\n    this._source = source;\n  }\n  var _proto = RelayRecordProxy.prototype;\n  _proto.copyFieldsFrom = function copyFieldsFrom(source) {\n    this._mutator.copyFields(source.getDataID(), this._dataID);\n  };\n  _proto.getDataID = function getDataID() {\n    return this._dataID;\n  };\n  _proto.getType = function getType() {\n    var type = this._mutator.getType(this._dataID);\n    !(type != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayRecordProxy: Cannot get the type of deleted record `%s`.', this._dataID) : invariant(false) : void 0;\n    return type;\n  };\n  _proto.getValue = function getValue(name, args) {\n    var storageKey = getStableStorageKey(name, args);\n    return this._mutator.getValue(this._dataID, storageKey);\n  };\n  _proto.setValue = function setValue(value, name, args) {\n    !isValidLeafValue(value) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayRecordProxy#setValue(): Expected a scalar or array of scalars, ' + 'got `%s`.', JSON.stringify(value)) : invariant(false) : void 0;\n    return this.setValue__UNSAFE(value, name, args);\n  };\n  _proto.setValue__UNSAFE = function setValue__UNSAFE(value, name, args) {\n    var storageKey = getStableStorageKey(name, args);\n    this._mutator.setValue(this._dataID, storageKey, value);\n    return this;\n  };\n  _proto.getLinkedRecord = function getLinkedRecord(name, args) {\n    var storageKey = getStableStorageKey(name, args);\n    var linkedID = this._mutator.getLinkedRecordID(this._dataID, storageKey);\n    return linkedID != null ? this._source.get(linkedID) : linkedID;\n  };\n  _proto.setLinkedRecord = function setLinkedRecord(record, name, args) {\n    !(record instanceof RelayRecordProxy) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayRecordProxy#setLinkedRecord(): Expected a record, got `%s`.', record) : invariant(false) : void 0;\n    var storageKey = getStableStorageKey(name, args);\n    var linkedID = record.getDataID();\n    this._mutator.setLinkedRecordID(this._dataID, storageKey, linkedID);\n    return this;\n  };\n  _proto.getOrCreateLinkedRecord = function getOrCreateLinkedRecord(name, typeName, args) {\n    var linkedRecord = this.getLinkedRecord(name, args);\n    if (!linkedRecord) {\n      var _this$_source$get;\n      var storageKey = getStableStorageKey(name, args);\n      var clientID = generateClientID(this.getDataID(), storageKey);\n      linkedRecord = (_this$_source$get = this._source.get(clientID)) !== null && _this$_source$get !== void 0 ? _this$_source$get : this._source.create(clientID, typeName);\n      this.setLinkedRecord(linkedRecord, name, args);\n    }\n    return linkedRecord;\n  };\n  _proto.getLinkedRecords = function getLinkedRecords(name, args) {\n    var _this = this;\n    var storageKey = getStableStorageKey(name, args);\n    var linkedIDs = this._mutator.getLinkedRecordIDs(this._dataID, storageKey);\n    if (linkedIDs == null) {\n      return linkedIDs;\n    }\n    return linkedIDs.map(function (linkedID) {\n      return linkedID != null ? _this._source.get(linkedID) : linkedID;\n    });\n  };\n  _proto.setLinkedRecords = function setLinkedRecords(records, name, args) {\n    !Array.isArray(records) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayRecordProxy#setLinkedRecords(): Expected records to be an array, got `%s`.', records) : invariant(false) : void 0;\n    var storageKey = getStableStorageKey(name, args);\n    var linkedIDs = records.map(function (record) {\n      return record && record.getDataID();\n    });\n    this._mutator.setLinkedRecordIDs(this._dataID, storageKey, linkedIDs);\n    return this;\n  };\n  _proto.invalidateRecord = function invalidateRecord() {\n    this._source.markIDForInvalidation(this._dataID);\n  };\n  return RelayRecordProxy;\n}();\nfunction isValidLeafValue(value) {\n  return value == null || typeof value !== 'object' || Array.isArray(value) && value.every(isValidLeafValue);\n}\nmodule.exports = RelayRecordProxy;","'use strict';\n\nvar RelayModernRecord = require('../store/RelayModernRecord');\nvar _require = require('../store/RelayRecordState'),\n  EXISTENT = _require.EXISTENT;\nvar invariant = require('invariant');\nvar RelayRecordSourceMutator = /*#__PURE__*/function () {\n  function RelayRecordSourceMutator(base, sink) {\n    this.__sources = [sink, base];\n    this._base = base;\n    this._sink = sink;\n  }\n  var _proto = RelayRecordSourceMutator.prototype;\n  _proto.unstable_getRawRecordWithChanges = function unstable_getRawRecordWithChanges(dataID) {\n    var baseRecord = this._base.get(dataID);\n    var sinkRecord = this._sink.get(dataID);\n    if (sinkRecord === undefined) {\n      if (baseRecord == null) {\n        return baseRecord;\n      }\n      var nextRecord = RelayModernRecord.clone(baseRecord);\n      if (process.env.NODE_ENV !== \"production\") {\n        RelayModernRecord.freeze(nextRecord);\n      }\n      return nextRecord;\n    } else if (sinkRecord === null) {\n      return null;\n    } else if (baseRecord != null) {\n      var _nextRecord = RelayModernRecord.update(baseRecord, sinkRecord);\n      if (process.env.NODE_ENV !== \"production\") {\n        if (_nextRecord !== baseRecord) {\n          RelayModernRecord.freeze(_nextRecord);\n        }\n      }\n      return _nextRecord;\n    } else {\n      var _nextRecord2 = RelayModernRecord.clone(sinkRecord);\n      if (process.env.NODE_ENV !== \"production\") {\n        RelayModernRecord.freeze(_nextRecord2);\n      }\n      return _nextRecord2;\n    }\n  };\n  _proto._getSinkRecord = function _getSinkRecord(dataID) {\n    var sinkRecord = this._sink.get(dataID);\n    if (!sinkRecord) {\n      var baseRecord = this._base.get(dataID);\n      !baseRecord ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayRecordSourceMutator: Cannot modify non-existent record `%s`.', dataID) : invariant(false) : void 0;\n      sinkRecord = RelayModernRecord.create(dataID, RelayModernRecord.getType(baseRecord));\n      this._sink.set(dataID, sinkRecord);\n    }\n    return sinkRecord;\n  };\n  _proto.copyFields = function copyFields(sourceID, sinkID) {\n    var sinkSource = this._sink.get(sourceID);\n    var baseSource = this._base.get(sourceID);\n    !(sinkSource || baseSource) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayRecordSourceMutator#copyFields(): Cannot copy fields from ' + 'non-existent record `%s`.', sourceID) : invariant(false) : void 0;\n    var sink = this._getSinkRecord(sinkID);\n    if (baseSource) {\n      RelayModernRecord.copyFields(baseSource, sink);\n    }\n    if (sinkSource) {\n      RelayModernRecord.copyFields(sinkSource, sink);\n    }\n  };\n  _proto.copyFieldsFromRecord = function copyFieldsFromRecord(record, sinkID) {\n    var sink = this._getSinkRecord(sinkID);\n    RelayModernRecord.copyFields(record, sink);\n  };\n  _proto.create = function create(dataID, typeName) {\n    !(this._base.getStatus(dataID) !== EXISTENT && this._sink.getStatus(dataID) !== EXISTENT) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayRecordSourceMutator#create(): Cannot create a record with id ' + '`%s`, this record already exists.', dataID) : invariant(false) : void 0;\n    var record = RelayModernRecord.create(dataID, typeName);\n    this._sink.set(dataID, record);\n  };\n  _proto[\"delete\"] = function _delete(dataID) {\n    this._sink[\"delete\"](dataID);\n  };\n  _proto.getStatus = function getStatus(dataID) {\n    return this._sink.has(dataID) ? this._sink.getStatus(dataID) : this._base.getStatus(dataID);\n  };\n  _proto.getType = function getType(dataID) {\n    for (var ii = 0; ii < this.__sources.length; ii++) {\n      var record = this.__sources[ii].get(dataID);\n      if (record) {\n        return RelayModernRecord.getType(record);\n      } else if (record === null) {\n        return null;\n      }\n    }\n  };\n  _proto.getValue = function getValue(dataID, storageKey) {\n    for (var ii = 0; ii < this.__sources.length; ii++) {\n      var record = this.__sources[ii].get(dataID);\n      if (record) {\n        var value = RelayModernRecord.getValue(record, storageKey);\n        if (value !== undefined) {\n          return value;\n        }\n      } else if (record === null) {\n        return null;\n      }\n    }\n  };\n  _proto.setValue = function setValue(dataID, storageKey, value) {\n    var sinkRecord = this._getSinkRecord(dataID);\n    RelayModernRecord.setValue(sinkRecord, storageKey, value);\n  };\n  _proto.getLinkedRecordID = function getLinkedRecordID(dataID, storageKey) {\n    for (var ii = 0; ii < this.__sources.length; ii++) {\n      var record = this.__sources[ii].get(dataID);\n      if (record) {\n        var linkedID = RelayModernRecord.getLinkedRecordID(record, storageKey);\n        if (linkedID !== undefined) {\n          return linkedID;\n        }\n      } else if (record === null) {\n        return null;\n      }\n    }\n  };\n  _proto.setLinkedRecordID = function setLinkedRecordID(dataID, storageKey, linkedID) {\n    var sinkRecord = this._getSinkRecord(dataID);\n    RelayModernRecord.setLinkedRecordID(sinkRecord, storageKey, linkedID);\n  };\n  _proto.getLinkedRecordIDs = function getLinkedRecordIDs(dataID, storageKey) {\n    for (var ii = 0; ii < this.__sources.length; ii++) {\n      var record = this.__sources[ii].get(dataID);\n      if (record) {\n        var linkedIDs = RelayModernRecord.getLinkedRecordIDs(record, storageKey);\n        if (linkedIDs !== undefined) {\n          return linkedIDs;\n        }\n      } else if (record === null) {\n        return null;\n      }\n    }\n  };\n  _proto.setLinkedRecordIDs = function setLinkedRecordIDs(dataID, storageKey, linkedIDs) {\n    var sinkRecord = this._getSinkRecord(dataID);\n    RelayModernRecord.setLinkedRecordIDs(sinkRecord, storageKey, linkedIDs);\n  };\n  return RelayRecordSourceMutator;\n}();\nmodule.exports = RelayRecordSourceMutator;","'use strict';\n\nvar RelayModernRecord = require('../store/RelayModernRecord');\nvar _require = require('../store/RelayRecordState'),\n  EXISTENT = _require.EXISTENT,\n  NONEXISTENT = _require.NONEXISTENT;\nvar _require2 = require('../store/RelayStoreUtils'),\n  ROOT_ID = _require2.ROOT_ID,\n  ROOT_TYPE = _require2.ROOT_TYPE;\nvar _require3 = require('./readUpdatableFragment'),\n  _readUpdatableFragment = _require3.readUpdatableFragment;\nvar _require4 = require('./readUpdatableQuery'),\n  _readUpdatableQuery = _require4.readUpdatableQuery;\nvar RelayRecordProxy = require('./RelayRecordProxy');\nvar invariant = require('invariant');\nvar RelayRecordSourceProxy = /*#__PURE__*/function () {\n  function RelayRecordSourceProxy(mutator, getDataID, handlerProvider, missingFieldHandlers) {\n    this.__mutator = mutator;\n    this._handlerProvider = handlerProvider || null;\n    this._proxies = {};\n    this._getDataID = getDataID;\n    this._invalidatedStore = false;\n    this._idsMarkedForInvalidation = new Set();\n    this._missingFieldHandlers = missingFieldHandlers;\n  }\n  var _proto = RelayRecordSourceProxy.prototype;\n  _proto.publishSource = function publishSource(source, fieldPayloads) {\n    var _this = this;\n    var dataIDs = source.getRecordIDs();\n    dataIDs.forEach(function (dataID) {\n      var status = source.getStatus(dataID);\n      if (status === EXISTENT) {\n        var sourceRecord = source.get(dataID);\n        if (sourceRecord) {\n          if (_this.__mutator.getStatus(dataID) !== EXISTENT) {\n            _this.create(dataID, RelayModernRecord.getType(sourceRecord));\n          }\n          _this.__mutator.copyFieldsFromRecord(sourceRecord, dataID);\n        }\n      } else if (status === NONEXISTENT) {\n        _this[\"delete\"](dataID);\n      }\n    });\n    if (fieldPayloads && fieldPayloads.length) {\n      fieldPayloads.forEach(function (fieldPayload) {\n        var handler = _this._handlerProvider && _this._handlerProvider(fieldPayload.handle);\n        !handler ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernEnvironment: Expected a handler to be provided for handle `%s`.', fieldPayload.handle) : invariant(false) : void 0;\n        handler.update(_this, fieldPayload);\n      });\n    }\n  };\n  _proto.create = function create(dataID, typeName) {\n    this.__mutator.create(dataID, typeName);\n    delete this._proxies[dataID];\n    var record = this.get(dataID);\n    !record ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayRecordSourceProxy#create(): Expected the created record to exist.') : invariant(false) : void 0;\n    return record;\n  };\n  _proto[\"delete\"] = function _delete(dataID) {\n    !(dataID !== ROOT_ID) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayRecordSourceProxy#delete(): Cannot delete the root record.') : invariant(false) : void 0;\n    delete this._proxies[dataID];\n    this.__mutator[\"delete\"](dataID);\n  };\n  _proto.get = function get(dataID) {\n    if (!this._proxies.hasOwnProperty(dataID)) {\n      var status = this.__mutator.getStatus(dataID);\n      if (status === EXISTENT) {\n        this._proxies[dataID] = new RelayRecordProxy(this, this.__mutator, dataID);\n      } else {\n        this._proxies[dataID] = status === NONEXISTENT ? null : undefined;\n      }\n    }\n    return this._proxies[dataID];\n  };\n  _proto.getRoot = function getRoot() {\n    var root = this.get(ROOT_ID);\n    if (!root) {\n      root = this.create(ROOT_ID, ROOT_TYPE);\n    }\n    !(root && root.getType() === ROOT_TYPE) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayRecordSourceProxy#getRoot(): Expected the source to contain a ' + 'root record, %s.', root == null ? 'no root record found' : \"found a root record of type `\".concat(root.getType(), \"`\")) : invariant(false) : void 0;\n    return root;\n  };\n  _proto.invalidateStore = function invalidateStore() {\n    this._invalidatedStore = true;\n  };\n  _proto.isStoreMarkedForInvalidation = function isStoreMarkedForInvalidation() {\n    return this._invalidatedStore;\n  };\n  _proto.markIDForInvalidation = function markIDForInvalidation(dataID) {\n    this._idsMarkedForInvalidation.add(dataID);\n  };\n  _proto.getIDsMarkedForInvalidation = function getIDsMarkedForInvalidation() {\n    return this._idsMarkedForInvalidation;\n  };\n  _proto.readUpdatableQuery = function readUpdatableQuery(query, variables) {\n    return _readUpdatableQuery(query, variables, this, this._missingFieldHandlers);\n  };\n  _proto.readUpdatableFragment = function readUpdatableFragment(fragment, fragmentReference) {\n    return _readUpdatableFragment(fragment, fragmentReference, this, this._missingFieldHandlers);\n  };\n  return RelayRecordSourceProxy;\n}();\nmodule.exports = RelayRecordSourceProxy;","'use strict';\n\nvar _require = require('../store/RelayStoreUtils'),\n  ROOT_TYPE = _require.ROOT_TYPE,\n  getStorageKey = _require.getStorageKey;\nvar _require2 = require('./readUpdatableFragment'),\n  _readUpdatableFragment = _require2.readUpdatableFragment;\nvar _require3 = require('./readUpdatableQuery'),\n  _readUpdatableQuery = _require3.readUpdatableQuery;\nvar invariant = require('invariant');\nvar RelayRecordSourceSelectorProxy = /*#__PURE__*/function () {\n  function RelayRecordSourceSelectorProxy(mutator, recordSource, readSelector, missingFieldHandlers) {\n    this.__mutator = mutator;\n    this.__recordSource = recordSource;\n    this._readSelector = readSelector;\n    this._missingFieldHandlers = missingFieldHandlers;\n  }\n  var _proto = RelayRecordSourceSelectorProxy.prototype;\n  _proto.create = function create(dataID, typeName) {\n    return this.__recordSource.create(dataID, typeName);\n  };\n  _proto[\"delete\"] = function _delete(dataID) {\n    this.__recordSource[\"delete\"](dataID);\n  };\n  _proto.get = function get(dataID) {\n    return this.__recordSource.get(dataID);\n  };\n  _proto.getRoot = function getRoot() {\n    return this.__recordSource.getRoot();\n  };\n  _proto.getOperationRoot = function getOperationRoot() {\n    var root = this.__recordSource.get(this._readSelector.dataID);\n    if (!root) {\n      root = this.__recordSource.create(this._readSelector.dataID, ROOT_TYPE);\n    }\n    return root;\n  };\n  _proto._getRootField = function _getRootField(selector, fieldName, plural) {\n    var field = selector.node.selections.find(function (selection) {\n      return selection.kind === 'LinkedField' && selection.name === fieldName || selection.kind === 'RequiredField' && selection.field.name === fieldName;\n    });\n    if (field && field.kind === 'RequiredField') {\n      field = field.field;\n    }\n    !(field && field.kind === 'LinkedField') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayRecordSourceSelectorProxy#getRootField(): Cannot find root ' + 'field `%s`, no such field is defined on GraphQL document `%s`.', fieldName, selector.node.name) : invariant(false) : void 0;\n    !(field.plural === plural) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayRecordSourceSelectorProxy#getRootField(): Expected root field ' + '`%s` to be %s.', fieldName, plural ? 'plural' : 'singular') : invariant(false) : void 0;\n    return field;\n  };\n  _proto.getRootField = function getRootField(fieldName) {\n    var field = this._getRootField(this._readSelector, fieldName, false);\n    var storageKey = getStorageKey(field, this._readSelector.variables);\n    return this.getOperationRoot().getLinkedRecord(storageKey);\n  };\n  _proto.getPluralRootField = function getPluralRootField(fieldName) {\n    var field = this._getRootField(this._readSelector, fieldName, true);\n    var storageKey = getStorageKey(field, this._readSelector.variables);\n    return this.getOperationRoot().getLinkedRecords(storageKey);\n  };\n  _proto.invalidateStore = function invalidateStore() {\n    this.__recordSource.invalidateStore();\n  };\n  _proto.readUpdatableQuery = function readUpdatableQuery(query, variables) {\n    return _readUpdatableQuery(query, variables, this, this._missingFieldHandlers);\n  };\n  _proto.readUpdatableFragment = function readUpdatableFragment(fragment, fragmentReference) {\n    return _readUpdatableFragment(fragment, fragmentReference, this, this._missingFieldHandlers);\n  };\n  return RelayRecordSourceSelectorProxy;\n}();\nmodule.exports = RelayRecordSourceSelectorProxy;","'use strict';\n\nvar _require = require('../query/GraphQLTag'),\n  getRequest = _require.getRequest;\nvar isRelayModernEnvironment = require('../store/isRelayModernEnvironment');\nvar _require2 = require('../store/RelayModernOperationDescriptor'),\n  createOperationDescriptor = _require2.createOperationDescriptor;\nvar RelayDeclarativeMutationConfig = require('./RelayDeclarativeMutationConfig');\nvar invariant = require('invariant');\nfunction applyOptimisticMutation(environment, config) {\n  !isRelayModernEnvironment(environment) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'commitMutation: expected `environment` to be an instance of ' + '`RelayModernEnvironment`.') : invariant(false) : void 0;\n  var mutation = getRequest(config.mutation);\n  if (mutation.params.operationKind !== 'mutation') {\n    throw new Error('commitMutation: Expected mutation operation');\n  }\n  var optimisticUpdater = config.optimisticUpdater;\n  var configs = config.configs,\n    optimisticResponse = config.optimisticResponse,\n    variables = config.variables;\n  var operation = createOperationDescriptor(mutation, variables);\n  if (configs) {\n    var _RelayDeclarativeMuta = RelayDeclarativeMutationConfig.convert(configs, mutation, optimisticUpdater);\n    optimisticUpdater = _RelayDeclarativeMuta.optimisticUpdater;\n  }\n  return environment.applyMutation({\n    operation: operation,\n    response: optimisticResponse,\n    updater: optimisticUpdater\n  });\n}\nmodule.exports = applyOptimisticMutation;","'use strict';\n\nfunction commitLocalUpdate(environment, updater) {\n  environment.commitUpdate(updater);\n}\nmodule.exports = commitLocalUpdate;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\nvar _require = require('../query/GraphQLTag'),\n  getRequest = _require.getRequest;\nvar _require2 = require('../store/ClientID'),\n  generateUniqueClientID = _require2.generateUniqueClientID;\nvar isRelayModernEnvironment = require('../store/isRelayModernEnvironment');\nvar _require3 = require('../store/RelayModernOperationDescriptor'),\n  createOperationDescriptor = _require3.createOperationDescriptor;\nvar RelayDeclarativeMutationConfig = require('./RelayDeclarativeMutationConfig');\nvar validateMutation = require('./validateMutation');\nvar invariant = require('invariant');\nvar warning = require(\"fbjs/lib/warning\");\nfunction commitMutation(environment, config) {\n  !isRelayModernEnvironment(environment) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'commitMutation: expected `environment` to be an instance of ' + '`RelayModernEnvironment`.') : invariant(false) : void 0;\n  var mutation = getRequest(config.mutation);\n  if (mutation.params.operationKind !== 'mutation') {\n    throw new Error('commitMutation: Expected mutation operation');\n  }\n  if (mutation.kind !== 'Request') {\n    throw new Error('commitMutation: Expected mutation to be of type request');\n  }\n  var optimisticResponse = config.optimisticResponse,\n    optimisticUpdater = config.optimisticUpdater,\n    updater = config.updater;\n  var configs = config.configs,\n    cacheConfig = config.cacheConfig,\n    onError = config.onError,\n    onUnsubscribe = config.onUnsubscribe,\n    variables = config.variables,\n    uploadables = config.uploadables;\n  var operation = createOperationDescriptor(mutation, variables, cacheConfig, generateUniqueClientID());\n  if (typeof optimisticResponse === 'function') {\n    optimisticResponse = optimisticResponse();\n    process.env.NODE_ENV !== \"production\" ? warning(false, 'commitMutation: Expected `optimisticResponse` to be an object, ' + 'received a function.') : void 0;\n  }\n  if (process.env.NODE_ENV !== \"production\") {\n    if (optimisticResponse instanceof Object) {\n      validateMutation(optimisticResponse, mutation, variables);\n    }\n  }\n  if (configs) {\n    var _RelayDeclarativeMuta = RelayDeclarativeMutationConfig.convert(configs, mutation, optimisticUpdater, updater);\n    optimisticUpdater = _RelayDeclarativeMuta.optimisticUpdater;\n    updater = _RelayDeclarativeMuta.updater;\n  }\n  var errors = [];\n  var subscription = environment.executeMutation({\n    operation: operation,\n    optimisticResponse: optimisticResponse,\n    optimisticUpdater: optimisticUpdater,\n    updater: updater,\n    uploadables: uploadables\n  }).subscribe({\n    next: function next(payload) {\n      var _config$onNext;\n      if (Array.isArray(payload)) {\n        payload.forEach(function (item) {\n          if (item.errors) {\n            errors.push.apply(errors, (0, _toConsumableArray2[\"default\"])(item.errors));\n          }\n        });\n      } else {\n        if (payload.errors) {\n          errors.push.apply(errors, (0, _toConsumableArray2[\"default\"])(payload.errors));\n        }\n      }\n      (_config$onNext = config.onNext) === null || _config$onNext === void 0 ? void 0 : _config$onNext.call(config);\n    },\n    complete: function complete() {\n      var onCompleted = config.onCompleted;\n      if (onCompleted) {\n        var snapshot = environment.lookup(operation.fragment);\n        onCompleted(snapshot.data, errors.length !== 0 ? errors : null);\n      }\n    },\n    error: onError,\n    unsubscribe: onUnsubscribe\n  });\n  return {\n    dispose: subscription.unsubscribe\n  };\n}\nmodule.exports = commitMutation;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\nvar _require = require('../store/RelayStoreUtils'),\n  getArgumentValues = _require.getArgumentValues;\nvar _require2 = require('../util/RelayConcreteNode'),\n  ACTOR_CHANGE = _require2.ACTOR_CHANGE,\n  ALIASED_FRAGMENT_SPREAD = _require2.ALIASED_FRAGMENT_SPREAD,\n  ALIASED_INLINE_FRAGMENT_SPREAD = _require2.ALIASED_INLINE_FRAGMENT_SPREAD,\n  CLIENT_EDGE_TO_CLIENT_OBJECT = _require2.CLIENT_EDGE_TO_CLIENT_OBJECT,\n  CLIENT_EDGE_TO_SERVER_OBJECT = _require2.CLIENT_EDGE_TO_SERVER_OBJECT,\n  CLIENT_EXTENSION = _require2.CLIENT_EXTENSION,\n  CONDITION = _require2.CONDITION,\n  DEFER = _require2.DEFER,\n  FRAGMENT_SPREAD = _require2.FRAGMENT_SPREAD,\n  INLINE_DATA_FRAGMENT_SPREAD = _require2.INLINE_DATA_FRAGMENT_SPREAD,\n  INLINE_FRAGMENT = _require2.INLINE_FRAGMENT,\n  LINKED_FIELD = _require2.LINKED_FIELD,\n  MODULE_IMPORT = _require2.MODULE_IMPORT,\n  RELAY_LIVE_RESOLVER = _require2.RELAY_LIVE_RESOLVER,\n  RELAY_RESOLVER = _require2.RELAY_RESOLVER,\n  REQUIRED_FIELD = _require2.REQUIRED_FIELD,\n  SCALAR_FIELD = _require2.SCALAR_FIELD,\n  STREAM = _require2.STREAM;\nvar nonUpdatableKeys = ['id', '__id', '__typename', 'js'];\nfunction createUpdatableProxy(updatableProxyRootRecord, variables, selections, recordSourceProxy, missingFieldHandlers) {\n  var mutableUpdatableProxy = {};\n  updateProxyFromSelections(mutableUpdatableProxy, updatableProxyRootRecord, variables, selections, recordSourceProxy, missingFieldHandlers);\n  if (process.env.NODE_ENV !== \"production\") {\n    Object.freeze(mutableUpdatableProxy);\n  }\n  return mutableUpdatableProxy;\n}\nfunction updateProxyFromSelections(mutableUpdatableProxy, updatableProxyRootRecord, variables, selections, recordSourceProxy, missingFieldHandlers) {\n  var _selection$alias3;\n  var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(selections),\n    _step;\n  try {\n    var _loop = function _loop() {\n      var selection = _step.value;\n      switch (selection.kind) {\n        case LINKED_FIELD:\n          if (selection.plural) {\n            Object.defineProperty(mutableUpdatableProxy, (_selection$alias = selection.alias) !== null && _selection$alias !== void 0 ? _selection$alias : selection.name, {\n              get: createGetterForPluralLinkedField(selection, variables, updatableProxyRootRecord, recordSourceProxy, missingFieldHandlers),\n              set: createSetterForPluralLinkedField(selection, variables, updatableProxyRootRecord, recordSourceProxy)\n            });\n          } else {\n            Object.defineProperty(mutableUpdatableProxy, (_selection$alias2 = selection.alias) !== null && _selection$alias2 !== void 0 ? _selection$alias2 : selection.name, {\n              get: createGetterForSingularLinkedField(selection, variables, updatableProxyRootRecord, recordSourceProxy, missingFieldHandlers),\n              set: createSetterForSingularLinkedField(selection, variables, updatableProxyRootRecord, recordSourceProxy)\n            });\n          }\n          break;\n        case SCALAR_FIELD:\n          var scalarFieldName = (_selection$alias3 = selection.alias) !== null && _selection$alias3 !== void 0 ? _selection$alias3 : selection.name;\n          Object.defineProperty(mutableUpdatableProxy, scalarFieldName, {\n            get: function get() {\n              var _selection$args;\n              var newVariables = getArgumentValues((_selection$args = selection.args) !== null && _selection$args !== void 0 ? _selection$args : [], variables);\n              var value = updatableProxyRootRecord.getValue(selection.name, newVariables);\n              if (value == null) {\n                value = getScalarUsingMissingFieldHandlers(selection, newVariables, updatableProxyRootRecord, recordSourceProxy, missingFieldHandlers);\n              }\n              return value;\n            },\n            set: nonUpdatableKeys.includes(selection.name) ? undefined : function (newValue) {\n              var _selection$args2;\n              var newVariables = getArgumentValues((_selection$args2 = selection.args) !== null && _selection$args2 !== void 0 ? _selection$args2 : [], variables);\n              updatableProxyRootRecord.setValue__UNSAFE(newValue, selection.name, newVariables);\n            }\n          });\n          break;\n        case INLINE_FRAGMENT:\n          if (updatableProxyRootRecord.getType() === selection.type) {\n            updateProxyFromSelections(mutableUpdatableProxy, updatableProxyRootRecord, variables, selection.selections, recordSourceProxy, missingFieldHandlers);\n          }\n          break;\n        case CLIENT_EXTENSION:\n          updateProxyFromSelections(mutableUpdatableProxy, updatableProxyRootRecord, variables, selection.selections, recordSourceProxy, missingFieldHandlers);\n          break;\n        case FRAGMENT_SPREAD:\n          break;\n        case CONDITION:\n        case ACTOR_CHANGE:\n        case ALIASED_FRAGMENT_SPREAD:\n        case INLINE_DATA_FRAGMENT_SPREAD:\n        case ALIASED_INLINE_FRAGMENT_SPREAD:\n        case CLIENT_EDGE_TO_CLIENT_OBJECT:\n        case CLIENT_EDGE_TO_SERVER_OBJECT:\n        case DEFER:\n        case MODULE_IMPORT:\n        case RELAY_LIVE_RESOLVER:\n        case REQUIRED_FIELD:\n        case STREAM:\n        case RELAY_RESOLVER:\n          throw new Error('Encountered an unexpected ReaderSelection variant in RelayRecordSourceProxy. This indicates a bug in Relay.');\n        default:\n          selection.kind;\n          throw new Error('Encountered an unexpected ReaderSelection variant in RelayRecordSourceProxy. This indicates a bug in Relay.');\n      }\n    };\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var _selection$alias;\n      var _selection$alias2;\n      _loop();\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n}\nfunction createSetterForPluralLinkedField(selection, variables, updatableProxyRootRecord, recordSourceProxy) {\n  return function set(newValue) {\n    var _selection$args3;\n    var newVariables = getArgumentValues((_selection$args3 = selection.args) !== null && _selection$args3 !== void 0 ? _selection$args3 : [], variables);\n    if (newValue == null) {\n      throw new Error('Do not assign null to plural linked fields; assign an empty array instead.');\n    } else {\n      var recordProxies = newValue.map(function (item) {\n        if (item == null) {\n          throw new Error('When assigning an array of items, none of the items should be null or undefined.');\n        }\n        var __id = item.__id;\n        if (__id == null) {\n          throw new Error('The __id field must be present on each item passed to the setter. This indicates a bug in Relay.');\n        }\n        var newValueRecord = recordSourceProxy.get(__id);\n        if (newValueRecord == null) {\n          throw new Error(\"Did not find item with data id \".concat(__id, \" in the store.\"));\n        }\n        return newValueRecord;\n      });\n      updatableProxyRootRecord.setLinkedRecords(recordProxies, selection.name, newVariables);\n    }\n  };\n}\nfunction createSetterForSingularLinkedField(selection, variables, updatableProxyRootRecord, recordSourceProxy) {\n  return function set(newValue) {\n    var _selection$args4;\n    var newVariables = getArgumentValues((_selection$args4 = selection.args) !== null && _selection$args4 !== void 0 ? _selection$args4 : [], variables);\n    if (newValue == null) {\n      updatableProxyRootRecord.setValue(newValue, selection.name, newVariables);\n    } else {\n      var __id = newValue.__id;\n      if (__id == null) {\n        throw new Error('The __id field must be present on the argument. This indicates a bug in Relay.');\n      }\n      var newValueRecord = recordSourceProxy.get(__id);\n      if (newValueRecord == null) {\n        throw new Error(\"Did not find item with data id \".concat(__id, \" in the store.\"));\n      }\n      updatableProxyRootRecord.setLinkedRecord(newValueRecord, selection.name, newVariables);\n    }\n  };\n}\nfunction createGetterForPluralLinkedField(selection, variables, updatableProxyRootRecord, recordSourceProxy, missingFieldHandlers) {\n  return function () {\n    var _selection$args5;\n    var newVariables = getArgumentValues((_selection$args5 = selection.args) !== null && _selection$args5 !== void 0 ? _selection$args5 : [], variables);\n    var linkedRecords = updatableProxyRootRecord.getLinkedRecords(selection.name, newVariables);\n    if (linkedRecords === undefined) {\n      linkedRecords = getPluralLinkedRecordUsingMissingFieldHandlers(selection, newVariables, updatableProxyRootRecord, recordSourceProxy, missingFieldHandlers);\n    }\n    if (linkedRecords != null) {\n      return linkedRecords.map(function (linkedRecord) {\n        if (linkedRecord != null) {\n          var updatableProxy = {};\n          updateProxyFromSelections(updatableProxy, linkedRecord, variables, selection.selections, recordSourceProxy, missingFieldHandlers);\n          if (process.env.NODE_ENV !== \"production\") {\n            Object.freeze(updatableProxy);\n          }\n          return updatableProxy;\n        } else {\n          return linkedRecord;\n        }\n      });\n    } else {\n      return linkedRecords;\n    }\n  };\n}\nfunction createGetterForSingularLinkedField(selection, variables, updatableProxyRootRecord, recordSourceProxy, missingFieldHandlers) {\n  return function () {\n    var _selection$args6;\n    var newVariables = getArgumentValues((_selection$args6 = selection.args) !== null && _selection$args6 !== void 0 ? _selection$args6 : [], variables);\n    var linkedRecord = updatableProxyRootRecord.getLinkedRecord(selection.name, newVariables);\n    if (linkedRecord === undefined) {\n      linkedRecord = getLinkedRecordUsingMissingFieldHandlers(selection, newVariables, updatableProxyRootRecord, recordSourceProxy, missingFieldHandlers);\n    }\n    if (linkedRecord != null) {\n      var updatableProxy = {};\n      updateProxyFromSelections(updatableProxy, linkedRecord, variables, selection.selections, recordSourceProxy, missingFieldHandlers);\n      if (process.env.NODE_ENV !== \"production\") {\n        Object.freeze(updatableProxy);\n      }\n      return updatableProxy;\n    } else {\n      return linkedRecord;\n    }\n  };\n}\nfunction getLinkedRecordUsingMissingFieldHandlers(selection, newVariables, updatableProxyRootRecord, recordSourceProxy, missingFieldHandlers) {\n  var _iterator2 = (0, _createForOfIteratorHelper2[\"default\"])(missingFieldHandlers),\n    _step2;\n  try {\n    for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n      var handler = _step2.value;\n      if (handler.kind === 'linked') {\n        var newId = handler.handle(selection, updatableProxyRootRecord, newVariables, recordSourceProxy);\n        if (newId != null) {\n          return recordSourceProxy.get(newId);\n        }\n      }\n    }\n  } catch (err) {\n    _iterator2.e(err);\n  } finally {\n    _iterator2.f();\n  }\n}\nfunction getPluralLinkedRecordUsingMissingFieldHandlers(selection, newVariables, updatableProxyRootRecord, recordSourceProxy, missingFieldHandlers) {\n  var _iterator3 = (0, _createForOfIteratorHelper2[\"default\"])(missingFieldHandlers),\n    _step3;\n  try {\n    for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n      var handler = _step3.value;\n      if (handler.kind === 'pluralLinked') {\n        var newIds = handler.handle(selection, updatableProxyRootRecord, newVariables, recordSourceProxy);\n        if (newIds != null) {\n          return newIds.map(function (newId) {\n            if (newId != null) {\n              return recordSourceProxy.get(newId);\n            }\n          });\n        }\n      }\n    }\n  } catch (err) {\n    _iterator3.e(err);\n  } finally {\n    _iterator3.f();\n  }\n}\nfunction getScalarUsingMissingFieldHandlers(selection, newVariables, updatableProxyRootRecord, recordSourceProxy, missingFieldHandlers) {\n  var _iterator4 = (0, _createForOfIteratorHelper2[\"default\"])(missingFieldHandlers),\n    _step4;\n  try {\n    for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n      var handler = _step4.value;\n      if (handler.kind === 'scalar') {\n        var value = handler.handle(selection, updatableProxyRootRecord, newVariables, recordSourceProxy);\n        if (value !== undefined) {\n          return value;\n        }\n      }\n    }\n  } catch (err) {\n    _iterator4.e(err);\n  } finally {\n    _iterator4.f();\n  }\n}\nmodule.exports = {\n  createUpdatableProxy: createUpdatableProxy\n};","'use strict';\n\nvar _require = require('../query/GraphQLTag'),\n  getFragment = _require.getFragment;\nvar _require2 = require('../store/RelayModernSelector'),\n  getVariablesFromFragment = _require2.getVariablesFromFragment;\nvar _require3 = require('../store/RelayStoreUtils'),\n  ID_KEY = _require3.ID_KEY;\nvar _require4 = require('./createUpdatableProxy'),\n  createUpdatableProxy = _require4.createUpdatableProxy;\nvar invariant = require('invariant');\nfunction readUpdatableFragment(fragment, fragmentReference, proxy, missingFieldHandlers) {\n  var updatableFragment = getFragment(fragment);\n  var fragmentVariables = getVariablesFromFragment(updatableFragment, fragmentReference);\n  var id = fragmentReference[ID_KEY];\n  var fragmentRoot = proxy.get(id);\n  !(fragmentRoot != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"No record with \".concat(id, \" was found. This likely indicates a problem with Relay.\")) : invariant(false) : void 0;\n  return {\n    updatableData: createUpdatableProxy(fragmentRoot, fragmentVariables, updatableFragment.selections, proxy, missingFieldHandlers)\n  };\n}\nmodule.exports = {\n  readUpdatableFragment: readUpdatableFragment\n};","'use strict';\n\nvar _require = require('../query/GraphQLTag'),\n  getUpdatableQuery = _require.getUpdatableQuery;\nvar _require2 = require('./createUpdatableProxy'),\n  createUpdatableProxy = _require2.createUpdatableProxy;\nfunction readUpdatableQuery(query, variables, proxy, missingFieldHandlers) {\n  var updatableQuery = getUpdatableQuery(query);\n  return {\n    updatableData: createUpdatableProxy(proxy.getRoot(), variables, updatableQuery.fragment.selections, proxy, missingFieldHandlers)\n  };\n}\nmodule.exports = {\n  readUpdatableQuery: readUpdatableQuery\n};","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _require = require('../util/RelayConcreteNode'),\n  ACTOR_CHANGE = _require.ACTOR_CHANGE,\n  CLIENT_COMPONENT = _require.CLIENT_COMPONENT,\n  CLIENT_EDGE_TO_CLIENT_OBJECT = _require.CLIENT_EDGE_TO_CLIENT_OBJECT,\n  CLIENT_EXTENSION = _require.CLIENT_EXTENSION,\n  CONDITION = _require.CONDITION,\n  DEFER = _require.DEFER,\n  FRAGMENT_SPREAD = _require.FRAGMENT_SPREAD,\n  INLINE_FRAGMENT = _require.INLINE_FRAGMENT,\n  LINKED_FIELD = _require.LINKED_FIELD,\n  LINKED_HANDLE = _require.LINKED_HANDLE,\n  MODULE_IMPORT = _require.MODULE_IMPORT,\n  RELAY_LIVE_RESOLVER = _require.RELAY_LIVE_RESOLVER,\n  RELAY_RESOLVER = _require.RELAY_RESOLVER,\n  SCALAR_FIELD = _require.SCALAR_FIELD,\n  SCALAR_HANDLE = _require.SCALAR_HANDLE,\n  STREAM = _require.STREAM,\n  TYPE_DISCRIMINATOR = _require.TYPE_DISCRIMINATOR;\nvar warning = require(\"fbjs/lib/warning\");\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar validateMutation = function validateMutation() {};\nif (process.env.NODE_ENV !== \"production\") {\n  var addFieldToDiff = function addFieldToDiff(path, diff, isScalar) {\n    var deepLoc = diff;\n    path.split('.').forEach(function (key, index, arr) {\n      if (deepLoc[key] == null) {\n        deepLoc[key] = {};\n      }\n      if (isScalar && index === arr.length - 1) {\n        deepLoc[key] = '<scalar>';\n      }\n      deepLoc = deepLoc[key];\n    });\n  };\n  validateMutation = function validateMutation(optimisticResponse, mutation, variables) {\n    var operationName = mutation.operation.name;\n    var context = {\n      path: 'ROOT',\n      visitedPaths: new Set(),\n      variables: variables || {},\n      missingDiff: {},\n      extraDiff: {},\n      moduleImportPaths: new Set()\n    };\n    validateSelections(optimisticResponse, mutation.operation.selections, context);\n    validateOptimisticResponse(optimisticResponse, context);\n    process.env.NODE_ENV !== \"production\" ? warning(context.missingDiff.ROOT == null, 'Expected `optimisticResponse` to match structure of server response for mutation `%s`, please define fields for all of\\n%s', operationName, JSON.stringify(context.missingDiff.ROOT, null, 2)) : void 0;\n    process.env.NODE_ENV !== \"production\" ? warning(context.extraDiff.ROOT == null, 'Expected `optimisticResponse` to match structure of server response for mutation `%s`, please remove all fields of\\n%s', operationName, JSON.stringify(context.extraDiff.ROOT, null, 2)) : void 0;\n  };\n  var validateSelections = function validateSelections(optimisticResponse, selections, context) {\n    selections.forEach(function (selection) {\n      return validateSelection(optimisticResponse, selection, context);\n    });\n  };\n  var validateSelection = function validateSelection(optimisticResponse, selection, context) {\n    switch (selection.kind) {\n      case CONDITION:\n        validateSelections(optimisticResponse, selection.selections, context);\n        return;\n      case CLIENT_COMPONENT:\n      case FRAGMENT_SPREAD:\n        validateSelections(optimisticResponse, selection.fragment.selections, context);\n        return;\n      case SCALAR_FIELD:\n      case LINKED_FIELD:\n        return validateField(optimisticResponse, selection, context);\n      case ACTOR_CHANGE:\n        return validateField(optimisticResponse, selection.linkedField, context);\n      case INLINE_FRAGMENT:\n        var type = selection.type;\n        var isConcreteType = selection.abstractKey == null;\n        validateAbstractKey(context, selection.abstractKey);\n        selection.selections.forEach(function (subselection) {\n          if (isConcreteType && optimisticResponse.__typename !== type) {\n            return;\n          }\n          validateSelection(optimisticResponse, subselection, context);\n        });\n        return;\n      case CLIENT_EXTENSION:\n        selection.selections.forEach(function (subselection) {\n          validateSelection(optimisticResponse, subselection, context);\n        });\n        return;\n      case MODULE_IMPORT:\n        return validateModuleImport(context);\n      case TYPE_DISCRIMINATOR:\n        return validateAbstractKey(context, selection.abstractKey);\n      case RELAY_RESOLVER:\n      case RELAY_LIVE_RESOLVER:\n      case CLIENT_EDGE_TO_CLIENT_OBJECT:\n      case LINKED_HANDLE:\n      case SCALAR_HANDLE:\n      case DEFER:\n      case STREAM:\n        {\n          return;\n        }\n      default:\n        selection;\n        return;\n    }\n  };\n  var validateModuleImport = function validateModuleImport(context) {\n    context.moduleImportPaths.add(context.path);\n  };\n  var validateAbstractKey = function validateAbstractKey(context, abstractKey) {\n    if (abstractKey != null) {\n      var path = \"\".concat(context.path, \".\").concat(abstractKey);\n      context.visitedPaths.add(path);\n    }\n  };\n  var validateField = function validateField(optimisticResponse, field, context) {\n    var fieldName = field.alias || field.name;\n    var path = \"\".concat(context.path, \".\").concat(fieldName);\n    context.visitedPaths.add(path);\n    switch (field.kind) {\n      case SCALAR_FIELD:\n        if (hasOwnProperty.call(optimisticResponse, fieldName) === false) {\n          addFieldToDiff(path, context.missingDiff, true);\n        }\n        return;\n      case LINKED_FIELD:\n        var selections = field.selections;\n        if (optimisticResponse[fieldName] === null || hasOwnProperty.call(optimisticResponse, fieldName) && optimisticResponse[fieldName] === undefined) {\n          return;\n        }\n        if (field.plural) {\n          if (Array.isArray(optimisticResponse[fieldName])) {\n            optimisticResponse[fieldName].forEach(function (r) {\n              if (r !== null) {\n                validateSelections(r, selections, (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, context), {}, {\n                  path: path\n                }));\n              }\n            });\n            return;\n          } else {\n            addFieldToDiff(path, context.missingDiff);\n            return;\n          }\n        } else {\n          if (optimisticResponse[fieldName] instanceof Object) {\n            validateSelections(optimisticResponse[fieldName], selections, (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, context), {}, {\n              path: path\n            }));\n            return;\n          } else {\n            addFieldToDiff(path, context.missingDiff);\n            return;\n          }\n        }\n    }\n  };\n  var validateOptimisticResponse = function validateOptimisticResponse(optimisticResponse, context) {\n    if (Array.isArray(optimisticResponse)) {\n      optimisticResponse.forEach(function (r) {\n        if (r instanceof Object) {\n          validateOptimisticResponse(r, context);\n        }\n      });\n      return;\n    }\n    Object.keys(optimisticResponse).forEach(function (key) {\n      var value = optimisticResponse[key];\n      var path = \"\".concat(context.path, \".\").concat(key);\n      if (context.moduleImportPaths.has(path)) {\n        return;\n      }\n      if (!context.visitedPaths.has(path)) {\n        addFieldToDiff(path, context.extraDiff);\n        return;\n      }\n      if (value instanceof Object) {\n        validateOptimisticResponse(value, (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, context), {}, {\n          path: path\n        }));\n      }\n    });\n  };\n}\nmodule.exports = validateMutation;","'use strict';\n\nvar RelayObservable = require('./RelayObservable');\nfunction convertFetch(fn) {\n  return function fetch(request, variables, cacheConfig, uploadables, logRequestInfo) {\n    var result = fn(request, variables, cacheConfig, uploadables, logRequestInfo);\n    if (result instanceof Error) {\n      return RelayObservable.create(function (sink) {\n        return sink.error(result);\n      });\n    }\n    return RelayObservable.from(result);\n  };\n}\nmodule.exports = {\n  convertFetch: convertFetch\n};","'use strict';\n\nvar withProvidedVariables = require('../util/withProvidedVariables');\nvar _require = require('./ConvertToExecuteFunction'),\n  convertFetch = _require.convertFetch;\nvar invariant = require('invariant');\nfunction create(fetchFn, subscribe) {\n  var observeFetch = convertFetch(fetchFn);\n  function execute(request, variables, cacheConfig, uploadables, logRequestInfo) {\n    var operationVariables = withProvidedVariables(variables, request.providedVariables);\n    if (request.operationKind === 'subscription') {\n      !subscribe ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayNetwork: This network layer does not support Subscriptions. ' + 'To use Subscriptions, provide a custom network layer.') : invariant(false) : void 0;\n      !!uploadables ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayNetwork: Cannot provide uploadables while subscribing.') : invariant(false) : void 0;\n      return subscribe(request, operationVariables, cacheConfig);\n    }\n    var pollInterval = cacheConfig.poll;\n    if (pollInterval != null) {\n      !!uploadables ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayNetwork: Cannot provide uploadables while polling.') : invariant(false) : void 0;\n      return observeFetch(request, operationVariables, {\n        force: true\n      }).poll(pollInterval);\n    }\n    return observeFetch(request, operationVariables, cacheConfig, uploadables, logRequestInfo);\n  }\n  return {\n    execute: execute\n  };\n}\nmodule.exports = {\n  create: create\n};","'use strict';\n\nvar isPromise = require('../util/isPromise');\nvar hostReportError = swallowError;\nvar RelayObservable = /*#__PURE__*/function () {\n  RelayObservable.create = function create(source) {\n    return new RelayObservable(source);\n  };\n  function RelayObservable(source) {\n    if (process.env.NODE_ENV !== \"production\") {\n      if (!source || typeof source !== 'function') {\n        throw new Error('Source must be a Function: ' + String(source));\n      }\n    }\n    this._source = source;\n  }\n  RelayObservable.onUnhandledError = function onUnhandledError(callback) {\n    hostReportError = callback;\n  };\n  RelayObservable.from = function from(obj) {\n    return isObservable(obj) ? fromObservable(obj) : isPromise(obj) ? fromPromise(obj) : fromValue(obj);\n  };\n  var _proto = RelayObservable.prototype;\n  _proto[\"catch\"] = function _catch(fn) {\n    var _this = this;\n    return RelayObservable.create(function (sink) {\n      var subscription;\n      _this.subscribe({\n        start: function start(sub) {\n          subscription = sub;\n        },\n        next: sink.next,\n        complete: sink.complete,\n        error: function error(_error2) {\n          try {\n            fn(_error2).subscribe({\n              start: function start(sub) {\n                subscription = sub;\n              },\n              next: sink.next,\n              complete: sink.complete,\n              error: sink.error\n            });\n          } catch (error2) {\n            sink.error(error2, true);\n          }\n        }\n      });\n      return function () {\n        return subscription.unsubscribe();\n      };\n    });\n  };\n  _proto.concat = function concat(next) {\n    var _this2 = this;\n    return RelayObservable.create(function (sink) {\n      var current;\n      _this2.subscribe({\n        start: function start(subscription) {\n          current = subscription;\n        },\n        next: sink.next,\n        error: sink.error,\n        complete: function complete() {\n          current = next.subscribe(sink);\n        }\n      });\n      return function () {\n        current && current.unsubscribe();\n      };\n    });\n  };\n  _proto[\"do\"] = function _do(observer) {\n    var _this3 = this;\n    return RelayObservable.create(function (sink) {\n      var both = function both(action) {\n        return function () {\n          try {\n            observer[action] && observer[action].apply(observer, arguments);\n          } catch (error) {\n            hostReportError(error, true);\n          }\n          sink[action] && sink[action].apply(sink, arguments);\n        };\n      };\n      return _this3.subscribe({\n        start: both('start'),\n        next: both('next'),\n        error: both('error'),\n        complete: both('complete'),\n        unsubscribe: both('unsubscribe')\n      });\n    });\n  };\n  _proto[\"finally\"] = function _finally(fn) {\n    var _this4 = this;\n    return RelayObservable.create(function (sink) {\n      var subscription = _this4.subscribe(sink);\n      return function () {\n        subscription.unsubscribe();\n        fn();\n      };\n    });\n  };\n  _proto.ifEmpty = function ifEmpty(alternate) {\n    var _this5 = this;\n    return RelayObservable.create(function (sink) {\n      var hasValue = false;\n      var current;\n      current = _this5.subscribe({\n        next: function next(value) {\n          hasValue = true;\n          sink.next(value);\n        },\n        error: sink.error,\n        complete: function complete() {\n          if (hasValue) {\n            sink.complete();\n          } else {\n            current = alternate.subscribe(sink);\n          }\n        }\n      });\n      return function () {\n        current && current.unsubscribe();\n      };\n    });\n  };\n  _proto.subscribe = function subscribe(observer) {\n    if (process.env.NODE_ENV !== \"production\") {\n      if (!observer || typeof observer !== 'object') {\n        throw new Error('Observer must be an Object with callbacks: ' + String(observer));\n      }\n    }\n    return _subscribe(this._source, observer);\n  };\n  _proto.map = function map(fn) {\n    var _this6 = this;\n    return RelayObservable.create(function (sink) {\n      var subscription = _this6.subscribe({\n        complete: sink.complete,\n        error: sink.error,\n        next: function next(value) {\n          try {\n            var mapValue = fn(value);\n            sink.next(mapValue);\n          } catch (error) {\n            sink.error(error, true);\n          }\n        }\n      });\n      return function () {\n        subscription.unsubscribe();\n      };\n    });\n  };\n  _proto.mergeMap = function mergeMap(fn) {\n    var _this7 = this;\n    return RelayObservable.create(function (sink) {\n      var subscriptions = [];\n      function start(subscription) {\n        this._sub = subscription;\n        subscriptions.push(subscription);\n      }\n      function complete() {\n        subscriptions.splice(subscriptions.indexOf(this._sub), 1);\n        if (subscriptions.length === 0) {\n          sink.complete();\n        }\n      }\n      _this7.subscribe({\n        start: start,\n        next: function next(value) {\n          try {\n            if (!sink.closed) {\n              RelayObservable.from(fn(value)).subscribe({\n                start: start,\n                next: sink.next,\n                error: sink.error,\n                complete: complete\n              });\n            }\n          } catch (error) {\n            sink.error(error, true);\n          }\n        },\n        error: sink.error,\n        complete: complete\n      });\n      return function () {\n        subscriptions.forEach(function (sub) {\n          return sub.unsubscribe();\n        });\n        subscriptions.length = 0;\n      };\n    });\n  };\n  _proto.poll = function poll(pollInterval) {\n    var _this8 = this;\n    if (process.env.NODE_ENV !== \"production\") {\n      if (typeof pollInterval !== 'number' || pollInterval <= 0) {\n        throw new Error('RelayObservable: Expected pollInterval to be positive, got: ' + pollInterval);\n      }\n    }\n    return RelayObservable.create(function (sink) {\n      var subscription;\n      var timeout;\n      var poll = function poll() {\n        subscription = _this8.subscribe({\n          next: sink.next,\n          error: sink.error,\n          complete: function complete() {\n            timeout = setTimeout(poll, pollInterval);\n          }\n        });\n      };\n      poll();\n      return function () {\n        clearTimeout(timeout);\n        subscription.unsubscribe();\n      };\n    });\n  };\n  _proto.toPromise = function toPromise() {\n    var _this9 = this;\n    return new Promise(function (resolve, reject) {\n      var resolved = false;\n      _this9.subscribe({\n        next: function next(val) {\n          if (!resolved) {\n            resolved = true;\n            resolve(val);\n          }\n        },\n        error: reject,\n        complete: resolve\n      });\n    });\n  };\n  return RelayObservable;\n}();\nfunction isObservable(obj) {\n  return typeof obj === 'object' && obj !== null && typeof obj.subscribe === 'function';\n}\nfunction fromObservable(obj) {\n  return obj instanceof RelayObservable ? obj : RelayObservable.create(function (sink) {\n    return obj.subscribe(sink);\n  });\n}\nfunction fromPromise(promise) {\n  return RelayObservable.create(function (sink) {\n    promise.then(function (value) {\n      sink.next(value);\n      sink.complete();\n    }, sink.error);\n  });\n}\nfunction fromValue(value) {\n  return RelayObservable.create(function (sink) {\n    sink.next(value);\n    sink.complete();\n  });\n}\nfunction _subscribe(source, observer) {\n  var closed = false;\n  var cleanup;\n  var withClosed = function withClosed(obj) {\n    return Object.defineProperty(obj, 'closed', {\n      get: function get() {\n        return closed;\n      }\n    });\n  };\n  function doCleanup() {\n    if (cleanup) {\n      if (cleanup.unsubscribe) {\n        cleanup.unsubscribe();\n      } else {\n        try {\n          cleanup();\n        } catch (error) {\n          hostReportError(error, true);\n        }\n      }\n      cleanup = undefined;\n    }\n  }\n  var subscription = withClosed({\n    unsubscribe: function unsubscribe() {\n      if (!closed) {\n        closed = true;\n        try {\n          observer.unsubscribe && observer.unsubscribe(subscription);\n        } catch (error) {\n          hostReportError(error, true);\n        } finally {\n          doCleanup();\n        }\n      }\n    }\n  });\n  try {\n    observer.start && observer.start(subscription);\n  } catch (error) {\n    hostReportError(error, true);\n  }\n  if (closed) {\n    return subscription;\n  }\n  var sink = withClosed({\n    next: function next(value) {\n      if (!closed && observer.next) {\n        try {\n          observer.next(value);\n        } catch (error) {\n          hostReportError(error, true);\n        }\n      }\n    },\n    error: function error(_error3, isUncaughtThrownError) {\n      if (closed || !observer.error) {\n        closed = true;\n        hostReportError(_error3, isUncaughtThrownError || false);\n        doCleanup();\n      } else {\n        closed = true;\n        try {\n          observer.error(_error3);\n        } catch (error2) {\n          hostReportError(error2, true);\n        } finally {\n          doCleanup();\n        }\n      }\n    },\n    complete: function complete() {\n      if (!closed) {\n        closed = true;\n        try {\n          observer.complete && observer.complete();\n        } catch (error) {\n          hostReportError(error, true);\n        } finally {\n          doCleanup();\n        }\n      }\n    }\n  });\n  try {\n    cleanup = source(sink);\n  } catch (error) {\n    sink.error(error, true);\n  }\n  if (process.env.NODE_ENV !== \"production\") {\n    if (cleanup !== undefined && typeof cleanup !== 'function' && (!cleanup || typeof cleanup.unsubscribe !== 'function')) {\n      throw new Error('Returned cleanup function which cannot be called: ' + String(cleanup));\n    }\n  }\n  if (closed) {\n    doCleanup();\n  }\n  return subscription;\n}\nfunction swallowError(_error, _isUncaughtThrownError) {}\nif (process.env.NODE_ENV !== \"production\") {\n  RelayObservable.onUnhandledError(function (error, isUncaughtThrownError) {\n    if (typeof fail === 'function') {\n      fail(String(error));\n    } else if (isUncaughtThrownError) {\n      setTimeout(function () {\n        throw error;\n      });\n    } else if (typeof console !== 'undefined') {\n      console.error('RelayObservable: Unhandled Error', error);\n    }\n  });\n}\nmodule.exports = RelayObservable;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar stableCopy = require('../util/stableCopy');\nvar invariant = require('invariant');\nvar RelayQueryResponseCache = /*#__PURE__*/function () {\n  function RelayQueryResponseCache(_ref) {\n    var size = _ref.size,\n      ttl = _ref.ttl;\n    !(size > 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayQueryResponseCache: Expected the max cache size to be > 0, got ' + '`%s`.', size) : invariant(false) : void 0;\n    !(ttl > 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayQueryResponseCache: Expected the max ttl to be > 0, got `%s`.', ttl) : invariant(false) : void 0;\n    this._responses = new Map();\n    this._size = size;\n    this._ttl = ttl;\n  }\n  var _proto = RelayQueryResponseCache.prototype;\n  _proto.clear = function clear() {\n    this._responses.clear();\n  };\n  _proto.get = function get(queryID, variables) {\n    var _this = this;\n    var cacheKey = getCacheKey(queryID, variables);\n    this._responses.forEach(function (response, key) {\n      if (!isCurrent(response.fetchTime, _this._ttl)) {\n        _this._responses[\"delete\"](key);\n      }\n    });\n    var response = this._responses.get(cacheKey);\n    if (response == null) {\n      return null;\n    }\n    if (Array.isArray(response.payload)) {\n      return response.payload.map(function (payload) {\n        return (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, payload), {}, {\n          extensions: (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, payload.extensions), {}, {\n            cacheTimestamp: response.fetchTime\n          })\n        });\n      });\n    }\n    return (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, response.payload), {}, {\n      extensions: (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, response.payload.extensions), {}, {\n        cacheTimestamp: response.fetchTime\n      })\n    });\n  };\n  _proto.set = function set(queryID, variables, payload) {\n    var fetchTime = Date.now();\n    var cacheKey = getCacheKey(queryID, variables);\n    this._responses[\"delete\"](cacheKey);\n    this._responses.set(cacheKey, {\n      fetchTime: fetchTime,\n      payload: payload\n    });\n    if (this._responses.size > this._size) {\n      var firstKey = this._responses.keys().next();\n      if (!firstKey.done) {\n        this._responses[\"delete\"](firstKey.value);\n      }\n    }\n  };\n  return RelayQueryResponseCache;\n}();\nfunction getCacheKey(queryID, variables) {\n  return JSON.stringify(stableCopy({\n    queryID: queryID,\n    variables: variables\n  }));\n}\nfunction isCurrent(fetchTime, ttl) {\n  return fetchTime + ttl >= Date.now();\n}\nmodule.exports = RelayQueryResponseCache;","'use strict';\n\nvar generateID = require('../util/generateID');\nfunction wrapNetworkWithLogObserver(env, network) {\n  return {\n    execute: function execute(params, variables, cacheConfig, uploadables) {\n      var networkRequestId = generateID();\n      var logObserver = {\n        start: function start(subscription) {\n          env.__log({\n            name: 'network.start',\n            networkRequestId: networkRequestId,\n            params: params,\n            variables: variables,\n            cacheConfig: cacheConfig\n          });\n        },\n        next: function next(response) {\n          env.__log({\n            name: 'network.next',\n            networkRequestId: networkRequestId,\n            response: response\n          });\n        },\n        error: function error(_error) {\n          env.__log({\n            name: 'network.error',\n            networkRequestId: networkRequestId,\n            error: _error\n          });\n        },\n        complete: function complete() {\n          env.__log({\n            name: 'network.complete',\n            networkRequestId: networkRequestId\n          });\n        },\n        unsubscribe: function unsubscribe() {\n          env.__log({\n            name: 'network.unsubscribe',\n            networkRequestId: networkRequestId\n          });\n        }\n      };\n      var logRequestInfo = function logRequestInfo(info) {\n        env.__log({\n          name: 'network.info',\n          networkRequestId: networkRequestId,\n          info: info\n        });\n      };\n      return network.execute(params, variables, cacheConfig, uploadables, logRequestInfo)[\"do\"](logObserver);\n    }\n  };\n}\nmodule.exports = wrapNetworkWithLogObserver;","'use strict';\n\nvar RelayConcreteNode = require('../util/RelayConcreteNode');\nvar invariant = require('invariant');\nvar warning = require(\"fbjs/lib/warning\");\nfunction graphql(strings) {\n  !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'graphql: Unexpected invocation at runtime. Either the Babel transform ' + 'was not set up, or it failed to identify this call site. Make sure it ' + 'is being used verbatim as `graphql`. Note also that there cannot be ' + 'a space between graphql and the backtick that follows.') : invariant(false) : void 0;\n}\nfunction getNode(taggedNode) {\n  var node = taggedNode;\n  if (typeof node === 'function') {\n    node = node();\n    process.env.NODE_ENV !== \"production\" ? warning(false, 'RelayGraphQLTag: node `%s` unexpectedly wrapped in a function.', node.kind === 'Fragment' ? node.name : node.operation.name) : void 0;\n  } else if (node[\"default\"]) {\n    node = node[\"default\"];\n  }\n  return node;\n}\nfunction isFragment(node) {\n  var fragment = getNode(node);\n  return typeof fragment === 'object' && fragment !== null && fragment.kind === RelayConcreteNode.FRAGMENT;\n}\nfunction isRequest(node) {\n  var request = getNode(node);\n  return typeof request === 'object' && request !== null && request.kind === RelayConcreteNode.REQUEST;\n}\nfunction isUpdatableQuery(node) {\n  var updatableQuery = getNode(node);\n  return typeof updatableQuery === 'object' && updatableQuery !== null && updatableQuery.kind === RelayConcreteNode.UPDATABLE_QUERY;\n}\nfunction isInlineDataFragment(node) {\n  var fragment = getNode(node);\n  return typeof fragment === 'object' && fragment !== null && fragment.kind === RelayConcreteNode.INLINE_DATA_FRAGMENT;\n}\nfunction getFragment(taggedNode) {\n  var fragment = getNode(taggedNode);\n  !isFragment(fragment) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'GraphQLTag: Expected a fragment, got `%s`.', JSON.stringify(fragment)) : invariant(false) : void 0;\n  return fragment;\n}\nfunction getPaginationFragment(taggedNode) {\n  var _fragment$metadata;\n  var fragment = getFragment(taggedNode);\n  var refetch = (_fragment$metadata = fragment.metadata) === null || _fragment$metadata === void 0 ? void 0 : _fragment$metadata.refetch;\n  var connection = refetch === null || refetch === void 0 ? void 0 : refetch.connection;\n  if (refetch === null || typeof refetch !== 'object' || connection === null || typeof connection !== 'object') {\n    return null;\n  }\n  return fragment;\n}\nfunction getRefetchableFragment(taggedNode) {\n  var _fragment$metadata2;\n  var fragment = getFragment(taggedNode);\n  var refetch = (_fragment$metadata2 = fragment.metadata) === null || _fragment$metadata2 === void 0 ? void 0 : _fragment$metadata2.refetch;\n  if (refetch === null || typeof refetch !== 'object') {\n    return null;\n  }\n  return fragment;\n}\nfunction getRequest(taggedNode) {\n  var request = getNode(taggedNode);\n  !isRequest(request) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'GraphQLTag: Expected a request, got `%s`.', JSON.stringify(request)) : invariant(false) : void 0;\n  return request;\n}\nfunction getUpdatableQuery(taggedNode) {\n  var updatableQuery = getNode(taggedNode);\n  !isUpdatableQuery(updatableQuery) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'GraphQLTag: Expected a request, got `%s`.', JSON.stringify(updatableQuery)) : invariant(false) : void 0;\n  return updatableQuery;\n}\nfunction getInlineDataFragment(taggedNode) {\n  var fragment = getNode(taggedNode);\n  !isInlineDataFragment(fragment) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'GraphQLTag: Expected an inline data fragment, got `%s`.', JSON.stringify(fragment)) : invariant(false) : void 0;\n  return fragment;\n}\nmodule.exports = {\n  getFragment: getFragment,\n  getNode: getNode,\n  getPaginationFragment: getPaginationFragment,\n  getRefetchableFragment: getRefetchableFragment,\n  getRequest: getRequest,\n  getUpdatableQuery: getUpdatableQuery,\n  getInlineDataFragment: getInlineDataFragment,\n  graphql: graphql,\n  isFragment: isFragment,\n  isRequest: isRequest,\n  isUpdatableQuery: isUpdatableQuery,\n  isInlineDataFragment: isInlineDataFragment\n};","'use strict';\n\nvar PreloadableQueryRegistry = /*#__PURE__*/function () {\n  function PreloadableQueryRegistry() {\n    this._preloadableQueries = new Map();\n    this._callbacks = new Map();\n  }\n  var _proto = PreloadableQueryRegistry.prototype;\n  _proto.set = function set(key, value) {\n    this._preloadableQueries.set(key, value);\n    var callbacks = this._callbacks.get(key);\n    if (callbacks != null) {\n      callbacks.forEach(function (cb) {\n        try {\n          cb(value);\n        } catch (e) {\n          setTimeout(function () {\n            throw e;\n          }, 0);\n        }\n      });\n    }\n  };\n  _proto.get = function get(key) {\n    return this._preloadableQueries.get(key);\n  };\n  _proto.onLoad = function onLoad(key, callback) {\n    var _this$_callbacks$get;\n    var callbacks = (_this$_callbacks$get = this._callbacks.get(key)) !== null && _this$_callbacks$get !== void 0 ? _this$_callbacks$get : new Set();\n    callbacks.add(callback);\n    var dispose = function dispose() {\n      callbacks[\"delete\"](callback);\n    };\n    this._callbacks.set(key, callbacks);\n    return {\n      dispose: dispose\n    };\n  };\n  _proto.clear = function clear() {\n    this._preloadableQueries.clear();\n  };\n  return PreloadableQueryRegistry;\n}();\nvar preloadableQueryRegistry = new PreloadableQueryRegistry();\nmodule.exports = preloadableQueryRegistry;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar RelayObservable = require('../network/RelayObservable');\nvar _require = require('../store/RelayModernOperationDescriptor'),\n  createOperationDescriptor = _require.createOperationDescriptor;\nvar handlePotentialSnapshotErrors = require('../util/handlePotentialSnapshotErrors');\nvar fetchQueryInternal = require('./fetchQueryInternal');\nvar _require2 = require('./GraphQLTag'),\n  getRequest = _require2.getRequest;\nvar invariant = require('invariant');\nfunction fetchQuery(environment, query, variables, options) {\n  var _options$fetchPolicy;\n  var queryNode = getRequest(query);\n  !(queryNode.params.operationKind === 'query') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'fetchQuery: Expected query operation') : invariant(false) : void 0;\n  var networkCacheConfig = (0, _objectSpread2[\"default\"])({\n    force: true\n  }, options === null || options === void 0 ? void 0 : options.networkCacheConfig);\n  var operation = createOperationDescriptor(queryNode, variables, networkCacheConfig);\n  var fetchPolicy = (_options$fetchPolicy = options === null || options === void 0 ? void 0 : options.fetchPolicy) !== null && _options$fetchPolicy !== void 0 ? _options$fetchPolicy : 'network-only';\n  function readData(snapshot) {\n    handlePotentialSnapshotErrors(environment, snapshot.missingRequiredFields, snapshot.relayResolverErrors, snapshot.errorResponseFields);\n    return snapshot.data;\n  }\n  switch (fetchPolicy) {\n    case 'network-only':\n      {\n        return getNetworkObservable(environment, operation).map(readData);\n      }\n    case 'store-or-network':\n      {\n        if (environment.check(operation).status === 'available') {\n          return RelayObservable.from(environment.lookup(operation.fragment)).map(readData);\n        }\n        return getNetworkObservable(environment, operation).map(readData);\n      }\n    default:\n      fetchPolicy;\n      throw new Error('fetchQuery: Invalid fetchPolicy ' + fetchPolicy);\n  }\n}\nfunction getNetworkObservable(environment, operation) {\n  return fetchQueryInternal.fetchQuery(environment, operation).map(function () {\n    return environment.lookup(operation.fragment);\n  });\n}\nmodule.exports = fetchQuery;","'use strict';\n\nvar Observable = require('../network/RelayObservable');\nvar RelayReplaySubject = require('../util/RelayReplaySubject');\nvar invariant = require('invariant');\nvar WEAKMAP_SUPPORTED = typeof WeakMap === 'function';\nvar requestCachesByEnvironment = WEAKMAP_SUPPORTED ? new WeakMap() : new Map();\nfunction fetchQuery(environment, operation) {\n  return fetchQueryDeduped(environment, operation.request.identifier, function () {\n    return environment.execute({\n      operation: operation\n    });\n  });\n}\nfunction fetchQueryDeduped(environment, identifier, fetchFn) {\n  return Observable.create(function (sink) {\n    var requestCache = getRequestCache(environment);\n    var cachedRequest = requestCache.get(identifier);\n    if (!cachedRequest) {\n      fetchFn()[\"finally\"](function () {\n        return requestCache[\"delete\"](identifier);\n      }).subscribe({\n        start: function start(subscription) {\n          cachedRequest = {\n            identifier: identifier,\n            subject: new RelayReplaySubject(),\n            subjectForInFlightStatus: new RelayReplaySubject(),\n            subscription: subscription,\n            promise: null\n          };\n          requestCache.set(identifier, cachedRequest);\n        },\n        next: function next(response) {\n          var cachedReq = getCachedRequest(requestCache, identifier);\n          cachedReq.subject.next(response);\n          cachedReq.subjectForInFlightStatus.next(response);\n        },\n        error: function error(_error) {\n          var cachedReq = getCachedRequest(requestCache, identifier);\n          cachedReq.subject.error(_error);\n          cachedReq.subjectForInFlightStatus.error(_error);\n        },\n        complete: function complete() {\n          var cachedReq = getCachedRequest(requestCache, identifier);\n          cachedReq.subject.complete();\n          cachedReq.subjectForInFlightStatus.complete();\n        },\n        unsubscribe: function unsubscribe(subscription) {\n          var cachedReq = getCachedRequest(requestCache, identifier);\n          cachedReq.subject.unsubscribe();\n          cachedReq.subjectForInFlightStatus.unsubscribe();\n        }\n      });\n    }\n    !(cachedRequest != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, '[fetchQueryInternal] fetchQueryDeduped: Expected `start` to be ' + 'called synchronously') : invariant(false) : void 0;\n    return getObservableForCachedRequest(requestCache, cachedRequest).subscribe(sink);\n  });\n}\nfunction getObservableForCachedRequest(requestCache, cachedRequest) {\n  return Observable.create(function (sink) {\n    var subscription = cachedRequest.subject.subscribe(sink);\n    return function () {\n      subscription.unsubscribe();\n      var cachedRequestInstance = requestCache.get(cachedRequest.identifier);\n      if (cachedRequestInstance) {\n        var requestSubscription = cachedRequestInstance.subscription;\n        if (requestSubscription != null && cachedRequestInstance.subject.getObserverCount() === 0) {\n          requestSubscription.unsubscribe();\n          requestCache[\"delete\"](cachedRequest.identifier);\n        }\n      }\n    };\n  });\n}\nfunction getActiveStatusObservableForCachedRequest(environment, requestCache, cachedRequest) {\n  return Observable.create(function (sink) {\n    var subscription = cachedRequest.subjectForInFlightStatus.subscribe({\n      error: sink.error,\n      next: function next(response) {\n        if (!environment.isRequestActive(cachedRequest.identifier)) {\n          sink.complete();\n          return;\n        }\n        sink.next();\n      },\n      complete: sink.complete,\n      unsubscribe: sink.complete\n    });\n    return function () {\n      subscription.unsubscribe();\n    };\n  });\n}\nfunction getPromiseForActiveRequest(environment, request) {\n  var requestCache = getRequestCache(environment);\n  var cachedRequest = requestCache.get(request.identifier);\n  if (!cachedRequest) {\n    return null;\n  }\n  if (!environment.isRequestActive(cachedRequest.identifier)) {\n    return null;\n  }\n  var promise = new Promise(function (resolve, reject) {\n    var resolveOnNext = false;\n    getActiveStatusObservableForCachedRequest(environment, requestCache, cachedRequest).subscribe({\n      complete: resolve,\n      error: reject,\n      next: function next(response) {\n        if (resolveOnNext) {\n          resolve(response);\n        }\n      }\n    });\n    resolveOnNext = true;\n  });\n  return promise;\n}\nfunction getObservableForActiveRequest(environment, request) {\n  var requestCache = getRequestCache(environment);\n  var cachedRequest = requestCache.get(request.identifier);\n  if (!cachedRequest) {\n    return null;\n  }\n  if (!environment.isRequestActive(cachedRequest.identifier)) {\n    return null;\n  }\n  return getActiveStatusObservableForCachedRequest(environment, requestCache, cachedRequest);\n}\nfunction getRequestCache(environment) {\n  var cached = requestCachesByEnvironment.get(environment);\n  if (cached != null) {\n    return cached;\n  }\n  var requestCache = new Map();\n  requestCachesByEnvironment.set(environment, requestCache);\n  return requestCache;\n}\nfunction getCachedRequest(requestCache, identifier) {\n  var cached = requestCache.get(identifier);\n  !(cached != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, '[fetchQueryInternal] getCachedRequest: Expected request to be cached') : invariant(false) : void 0;\n  return cached;\n}\nmodule.exports = {\n  fetchQuery: fetchQuery,\n  fetchQueryDeduped: fetchQueryDeduped,\n  getPromiseForActiveRequest: getPromiseForActiveRequest,\n  getObservableForActiveRequest: getObservableForActiveRequest\n};","'use strict';\n\nvar _require = require('../store/RelayModernOperationDescriptor'),\n  createOperationDescriptor = _require.createOperationDescriptor;\nvar _require2 = require('./GraphQLTag'),\n  getRequest = _require2.getRequest;\nfunction fetchQuery_DEPRECATED(environment, taggedNode, variables, cacheConfig) {\n  var query = getRequest(taggedNode);\n  if (query.params.operationKind !== 'query') {\n    throw new Error('fetchQuery: Expected query operation');\n  }\n  var operation = createOperationDescriptor(query, variables, cacheConfig);\n  return environment.execute({\n    operation: operation\n  }).map(function () {\n    return environment.lookup(operation.fragment).data;\n  }).toPromise();\n}\nmodule.exports = fetchQuery_DEPRECATED;","'use strict';\n\nvar RelayFeatureFlags = require('../util/RelayFeatureFlags');\nvar _require = require('../util/StringInterner'),\n  intern = _require.intern;\nvar PREFIX = 'client:';\nfunction generateClientID(id, storageKey, index) {\n  var internedId = RelayFeatureFlags.STRING_INTERN_LEVEL <= 0 ? id : intern(id, RelayFeatureFlags.MAX_DATA_ID_LENGTH);\n  var key = internedId + ':' + storageKey;\n  if (index != null) {\n    key += ':' + index;\n  }\n  if (key.indexOf(PREFIX) !== 0) {\n    key = PREFIX + key;\n  }\n  return key;\n}\nfunction isClientID(id) {\n  return id.indexOf(PREFIX) === 0;\n}\nvar localID = 0;\nfunction generateUniqueClientID() {\n  return \"\".concat(PREFIX, \"local:\").concat(localID++);\n}\nfunction generateClientObjectClientID(typename, localId, index) {\n  var key = \"\".concat(PREFIX).concat(typename, \":\").concat(localId);\n  if (index != null) {\n    key += ':' + index;\n  }\n  return key;\n}\nmodule.exports = {\n  generateClientID: generateClientID,\n  generateClientObjectClientID: generateClientObjectClientID,\n  generateUniqueClientID: generateUniqueClientID,\n  isClientID: isClientID\n};","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\nvar RelayRecordSourceMutator = require('../mutations/RelayRecordSourceMutator');\nvar RelayRecordSourceProxy = require('../mutations/RelayRecordSourceProxy');\nvar getOperation = require('../util/getOperation');\nvar RelayConcreteNode = require('../util/RelayConcreteNode');\nvar _require = require('./ClientID'),\n  isClientID = _require.isClientID;\nvar cloneRelayHandleSourceField = require('./cloneRelayHandleSourceField');\nvar cloneRelayScalarHandleSourceField = require('./cloneRelayScalarHandleSourceField');\nvar _require2 = require('./RelayConcreteVariables'),\n  getLocalVariables = _require2.getLocalVariables;\nvar RelayModernRecord = require('./RelayModernRecord');\nvar _require3 = require('./RelayRecordState'),\n  EXISTENT = _require3.EXISTENT,\n  UNKNOWN = _require3.UNKNOWN;\nvar RelayStoreUtils = require('./RelayStoreUtils');\nvar _require4 = require('./TypeID'),\n  TYPE_SCHEMA_TYPE = _require4.TYPE_SCHEMA_TYPE,\n  generateTypeID = _require4.generateTypeID;\nvar invariant = require('invariant');\nvar ACTOR_CHANGE = RelayConcreteNode.ACTOR_CHANGE,\n  CONDITION = RelayConcreteNode.CONDITION,\n  CLIENT_COMPONENT = RelayConcreteNode.CLIENT_COMPONENT,\n  CLIENT_EXTENSION = RelayConcreteNode.CLIENT_EXTENSION,\n  CLIENT_EDGE_TO_CLIENT_OBJECT = RelayConcreteNode.CLIENT_EDGE_TO_CLIENT_OBJECT,\n  DEFER = RelayConcreteNode.DEFER,\n  FRAGMENT_SPREAD = RelayConcreteNode.FRAGMENT_SPREAD,\n  INLINE_FRAGMENT = RelayConcreteNode.INLINE_FRAGMENT,\n  LINKED_FIELD = RelayConcreteNode.LINKED_FIELD,\n  LINKED_HANDLE = RelayConcreteNode.LINKED_HANDLE,\n  MODULE_IMPORT = RelayConcreteNode.MODULE_IMPORT,\n  RELAY_RESOLVER = RelayConcreteNode.RELAY_RESOLVER,\n  RELAY_LIVE_RESOLVER = RelayConcreteNode.RELAY_LIVE_RESOLVER,\n  SCALAR_FIELD = RelayConcreteNode.SCALAR_FIELD,\n  SCALAR_HANDLE = RelayConcreteNode.SCALAR_HANDLE,\n  STREAM = RelayConcreteNode.STREAM,\n  TYPE_DISCRIMINATOR = RelayConcreteNode.TYPE_DISCRIMINATOR;\nvar getModuleOperationKey = RelayStoreUtils.getModuleOperationKey,\n  getStorageKey = RelayStoreUtils.getStorageKey,\n  getArgumentValues = RelayStoreUtils.getArgumentValues;\nfunction check(getSourceForActor, getTargetForActor, defaultActorIdentifier, selector, handlers, operationLoader, getDataID, shouldProcessClientComponents) {\n  var dataID = selector.dataID,\n    node = selector.node,\n    variables = selector.variables;\n  var checker = new DataChecker(getSourceForActor, getTargetForActor, defaultActorIdentifier, variables, handlers, operationLoader, getDataID, shouldProcessClientComponents);\n  return checker.check(node, dataID);\n}\nvar DataChecker = /*#__PURE__*/function () {\n  function DataChecker(getSourceForActor, getTargetForActor, defaultActorIdentifier, variables, handlers, operationLoader, getDataID, shouldProcessClientComponents) {\n    this._getSourceForActor = getSourceForActor;\n    this._getTargetForActor = getTargetForActor;\n    this._getDataID = getDataID;\n    this._source = getSourceForActor(defaultActorIdentifier);\n    this._mutatorRecordSourceProxyCache = new Map();\n    var _this$_getMutatorAndR = this._getMutatorAndRecordProxyForActor(defaultActorIdentifier),\n      mutator = _this$_getMutatorAndR[0],\n      recordSourceProxy = _this$_getMutatorAndR[1];\n    this._mostRecentlyInvalidatedAt = null;\n    this._handlers = handlers;\n    this._mutator = mutator;\n    this._operationLoader = operationLoader !== null && operationLoader !== void 0 ? operationLoader : null;\n    this._recordSourceProxy = recordSourceProxy;\n    this._recordWasMissing = false;\n    this._variables = variables;\n    this._shouldProcessClientComponents = shouldProcessClientComponents;\n  }\n  var _proto = DataChecker.prototype;\n  _proto._getMutatorAndRecordProxyForActor = function _getMutatorAndRecordProxyForActor(actorIdentifier) {\n    var tuple = this._mutatorRecordSourceProxyCache.get(actorIdentifier);\n    if (tuple == null) {\n      var target = this._getTargetForActor(actorIdentifier);\n      var mutator = new RelayRecordSourceMutator(this._getSourceForActor(actorIdentifier), target);\n      var recordSourceProxy = new RelayRecordSourceProxy(mutator, this._getDataID, undefined, this._handlers);\n      tuple = [mutator, recordSourceProxy];\n      this._mutatorRecordSourceProxyCache.set(actorIdentifier, tuple);\n    }\n    return tuple;\n  };\n  _proto.check = function check(node, dataID) {\n    this._assignClientAbstractTypes(node);\n    this._traverse(node, dataID);\n    return this._recordWasMissing === true ? {\n      status: 'missing',\n      mostRecentlyInvalidatedAt: this._mostRecentlyInvalidatedAt\n    } : {\n      status: 'available',\n      mostRecentlyInvalidatedAt: this._mostRecentlyInvalidatedAt\n    };\n  };\n  _proto._getVariableValue = function _getVariableValue(name) {\n    !this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayAsyncLoader(): Undefined variable `%s`.', name) : invariant(false) : void 0;\n    return this._variables[name];\n  };\n  _proto._handleMissing = function _handleMissing() {\n    this._recordWasMissing = true;\n  };\n  _proto._handleMissingScalarField = function _handleMissingScalarField(field, dataID) {\n    if (field.name === 'id' && field.alias == null && isClientID(dataID)) {\n      return undefined;\n    }\n    var args = field.args != undefined ? getArgumentValues(field.args, this._variables) : {};\n    var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(this._handlers),\n      _step;\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var handler = _step.value;\n        if (handler.kind === 'scalar') {\n          var newValue = handler.handle(field, this._recordSourceProxy.get(dataID), args, this._recordSourceProxy);\n          if (newValue !== undefined) {\n            return newValue;\n          }\n        }\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n    this._handleMissing();\n  };\n  _proto._handleMissingLinkField = function _handleMissingLinkField(field, dataID) {\n    var args = field.args != undefined ? getArgumentValues(field.args, this._variables) : {};\n    var _iterator2 = (0, _createForOfIteratorHelper2[\"default\"])(this._handlers),\n      _step2;\n    try {\n      for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n        var handler = _step2.value;\n        if (handler.kind === 'linked') {\n          var newValue = handler.handle(field, this._recordSourceProxy.get(dataID), args, this._recordSourceProxy);\n          if (newValue !== undefined && (newValue === null || this._mutator.getStatus(newValue) === EXISTENT)) {\n            return newValue;\n          }\n        }\n      }\n    } catch (err) {\n      _iterator2.e(err);\n    } finally {\n      _iterator2.f();\n    }\n    this._handleMissing();\n  };\n  _proto._handleMissingPluralLinkField = function _handleMissingPluralLinkField(field, dataID) {\n    var _this = this;\n    var args = field.args != undefined ? getArgumentValues(field.args, this._variables) : {};\n    var _iterator3 = (0, _createForOfIteratorHelper2[\"default\"])(this._handlers),\n      _step3;\n    try {\n      for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n        var handler = _step3.value;\n        if (handler.kind === 'pluralLinked') {\n          var newValue = handler.handle(field, this._recordSourceProxy.get(dataID), args, this._recordSourceProxy);\n          if (newValue != null) {\n            var allItemsKnown = newValue.every(function (linkedID) {\n              return linkedID != null && _this._mutator.getStatus(linkedID) === EXISTENT;\n            });\n            if (allItemsKnown) {\n              return newValue;\n            }\n          } else if (newValue === null) {\n            return null;\n          }\n        }\n      }\n    } catch (err) {\n      _iterator3.e(err);\n    } finally {\n      _iterator3.f();\n    }\n    this._handleMissing();\n  };\n  _proto._traverse = function _traverse(node, dataID) {\n    var status = this._mutator.getStatus(dataID);\n    if (status === UNKNOWN) {\n      this._handleMissing();\n    }\n    if (status === EXISTENT) {\n      var record = this._source.get(dataID);\n      var invalidatedAt = RelayModernRecord.getInvalidationEpoch(record);\n      if (invalidatedAt != null) {\n        this._mostRecentlyInvalidatedAt = this._mostRecentlyInvalidatedAt != null ? Math.max(this._mostRecentlyInvalidatedAt, invalidatedAt) : invalidatedAt;\n      }\n      this._traverseSelections(node.selections, dataID);\n    }\n  };\n  _proto._traverseSelections = function _traverseSelections(selections, dataID) {\n    var _this2 = this;\n    selections.forEach(function (selection) {\n      switch (selection.kind) {\n        case SCALAR_FIELD:\n          _this2._checkScalar(selection, dataID);\n          break;\n        case LINKED_FIELD:\n          if (selection.plural) {\n            _this2._checkPluralLink(selection, dataID);\n          } else {\n            _this2._checkLink(selection, dataID);\n          }\n          break;\n        case ACTOR_CHANGE:\n          _this2._checkActorChange(selection.linkedField, dataID);\n          break;\n        case CONDITION:\n          var conditionValue = Boolean(_this2._getVariableValue(selection.condition));\n          if (conditionValue === selection.passingValue) {\n            _this2._traverseSelections(selection.selections, dataID);\n          }\n          break;\n        case INLINE_FRAGMENT:\n          {\n            var _abstractKey = selection.abstractKey;\n            if (_abstractKey == null) {\n              var typeName = _this2._mutator.getType(dataID);\n              if (typeName === selection.type) {\n                _this2._traverseSelections(selection.selections, dataID);\n              }\n            } else {\n              var _recordType = _this2._mutator.getType(dataID);\n              !(_recordType != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'DataChecker: Expected record `%s` to have a known type', dataID) : invariant(false) : void 0;\n              var _typeID = generateTypeID(_recordType);\n              var _implementsInterface = _this2._mutator.getValue(_typeID, _abstractKey);\n              if (_implementsInterface === true) {\n                _this2._traverseSelections(selection.selections, dataID);\n              } else if (_implementsInterface == null) {\n                _this2._handleMissing();\n              }\n            }\n            break;\n          }\n        case LINKED_HANDLE:\n          {\n            var handleField = cloneRelayHandleSourceField(selection, selections, _this2._variables);\n            if (handleField.plural) {\n              _this2._checkPluralLink(handleField, dataID);\n            } else {\n              _this2._checkLink(handleField, dataID);\n            }\n            break;\n          }\n        case SCALAR_HANDLE:\n          {\n            var _handleField = cloneRelayScalarHandleSourceField(selection, selections, _this2._variables);\n            _this2._checkScalar(_handleField, dataID);\n            break;\n          }\n        case MODULE_IMPORT:\n          _this2._checkModuleImport(selection, dataID);\n          break;\n        case DEFER:\n        case STREAM:\n          _this2._traverseSelections(selection.selections, dataID);\n          break;\n        case FRAGMENT_SPREAD:\n          var prevVariables = _this2._variables;\n          _this2._variables = getLocalVariables(_this2._variables, selection.fragment.argumentDefinitions, selection.args);\n          _this2._traverseSelections(selection.fragment.selections, dataID);\n          _this2._variables = prevVariables;\n          break;\n        case CLIENT_EXTENSION:\n          var recordWasMissing = _this2._recordWasMissing;\n          _this2._traverseSelections(selection.selections, dataID);\n          _this2._recordWasMissing = recordWasMissing;\n          break;\n        case TYPE_DISCRIMINATOR:\n          var abstractKey = selection.abstractKey;\n          var recordType = _this2._mutator.getType(dataID);\n          !(recordType != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'DataChecker: Expected record `%s` to have a known type', dataID) : invariant(false) : void 0;\n          var typeID = generateTypeID(recordType);\n          var implementsInterface = _this2._mutator.getValue(typeID, abstractKey);\n          if (implementsInterface == null) {\n            _this2._handleMissing();\n          }\n          break;\n        case CLIENT_COMPONENT:\n          if (_this2._shouldProcessClientComponents === false) {\n            break;\n          }\n          _this2._traverseSelections(selection.fragment.selections, dataID);\n          break;\n        case RELAY_RESOLVER:\n          _this2._checkResolver(selection, dataID);\n          break;\n        case RELAY_LIVE_RESOLVER:\n          _this2._checkResolver(selection, dataID);\n          break;\n        case CLIENT_EDGE_TO_CLIENT_OBJECT:\n          _this2._checkResolver(selection.backingField, dataID);\n          break;\n        default:\n          selection;\n          !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayAsyncLoader(): Unexpected ast kind `%s`.', selection.kind) : invariant(false) : void 0;\n      }\n    });\n  };\n  _proto._checkResolver = function _checkResolver(resolver, dataID) {\n    if (resolver.fragment) {\n      this._traverseSelections([resolver.fragment], dataID);\n    }\n  };\n  _proto._checkModuleImport = function _checkModuleImport(moduleImport, dataID) {\n    var operationLoader = this._operationLoader;\n    !(operationLoader !== null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'DataChecker: Expected an operationLoader to be configured when using `@module`.') : invariant(false) : void 0;\n    var operationKey = getModuleOperationKey(moduleImport.documentName);\n    var operationReference = this._mutator.getValue(dataID, operationKey);\n    if (operationReference == null) {\n      if (operationReference === undefined) {\n        this._handleMissing();\n      }\n      return;\n    }\n    var normalizationRootNode = operationLoader.get(operationReference);\n    if (normalizationRootNode != null) {\n      var operation = getOperation(normalizationRootNode);\n      var prevVariables = this._variables;\n      this._variables = getLocalVariables(this._variables, operation.argumentDefinitions, moduleImport.args);\n      this._traverse(operation, dataID);\n      this._variables = prevVariables;\n    } else {\n      this._handleMissing();\n    }\n  };\n  _proto._checkScalar = function _checkScalar(field, dataID) {\n    var storageKey = getStorageKey(field, this._variables);\n    var fieldValue = this._mutator.getValue(dataID, storageKey);\n    if (fieldValue === undefined) {\n      fieldValue = this._handleMissingScalarField(field, dataID);\n      if (fieldValue !== undefined) {\n        this._mutator.setValue(dataID, storageKey, fieldValue);\n      }\n    }\n  };\n  _proto._checkLink = function _checkLink(field, dataID) {\n    var storageKey = getStorageKey(field, this._variables);\n    var linkedID = this._mutator.getLinkedRecordID(dataID, storageKey);\n    if (linkedID === undefined) {\n      linkedID = this._handleMissingLinkField(field, dataID);\n      if (linkedID != null) {\n        this._mutator.setLinkedRecordID(dataID, storageKey, linkedID);\n      } else if (linkedID === null) {\n        this._mutator.setValue(dataID, storageKey, null);\n      }\n    }\n    if (linkedID != null) {\n      this._traverse(field, linkedID);\n    }\n  };\n  _proto._checkPluralLink = function _checkPluralLink(field, dataID) {\n    var _this3 = this;\n    var storageKey = getStorageKey(field, this._variables);\n    var linkedIDs = this._mutator.getLinkedRecordIDs(dataID, storageKey);\n    if (linkedIDs === undefined) {\n      linkedIDs = this._handleMissingPluralLinkField(field, dataID);\n      if (linkedIDs != null) {\n        this._mutator.setLinkedRecordIDs(dataID, storageKey, linkedIDs);\n      } else if (linkedIDs === null) {\n        this._mutator.setValue(dataID, storageKey, null);\n      }\n    }\n    if (linkedIDs) {\n      linkedIDs.forEach(function (linkedID) {\n        if (linkedID != null) {\n          _this3._traverse(field, linkedID);\n        }\n      });\n    }\n  };\n  _proto._checkActorChange = function _checkActorChange(field, dataID) {\n    var storageKey = getStorageKey(field, this._variables);\n    var record = this._source.get(dataID);\n    var tuple = record != null ? RelayModernRecord.getActorLinkedRecordID(record, storageKey) : record;\n    if (tuple == null) {\n      if (tuple === undefined) {\n        this._handleMissing();\n      }\n    } else {\n      var actorIdentifier = tuple[0],\n        linkedID = tuple[1];\n      var prevSource = this._source;\n      var prevMutator = this._mutator;\n      var prevRecordSourceProxy = this._recordSourceProxy;\n      var _this$_getMutatorAndR2 = this._getMutatorAndRecordProxyForActor(actorIdentifier),\n        mutator = _this$_getMutatorAndR2[0],\n        recordSourceProxy = _this$_getMutatorAndR2[1];\n      this._source = this._getSourceForActor(actorIdentifier);\n      this._mutator = mutator;\n      this._recordSourceProxy = recordSourceProxy;\n      this._assignClientAbstractTypes(field);\n      this._traverse(field, linkedID);\n      this._source = prevSource;\n      this._mutator = prevMutator;\n      this._recordSourceProxy = prevRecordSourceProxy;\n    }\n  };\n  _proto._assignClientAbstractTypes = function _assignClientAbstractTypes(node) {\n    var clientAbstractTypes = node.clientAbstractTypes;\n    if (clientAbstractTypes != null) {\n      for (var _i = 0, _Object$keys = Object.keys(clientAbstractTypes); _i < _Object$keys.length; _i++) {\n        var abstractType = _Object$keys[_i];\n        var _iterator4 = (0, _createForOfIteratorHelper2[\"default\"])(clientAbstractTypes[abstractType]),\n          _step4;\n        try {\n          for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n            var concreteType = _step4.value;\n            var typeID = generateTypeID(concreteType);\n            if (this._source.get(typeID) == null) {\n              this._mutator.create(typeID, TYPE_SCHEMA_TYPE);\n            }\n            if (this._mutator.getValue(typeID, abstractType) == null) {\n              this._mutator.setValue(typeID, abstractType, true);\n            }\n          }\n        } catch (err) {\n          _iterator4.e(err);\n        } finally {\n          _iterator4.f();\n        }\n      }\n    }\n  };\n  return DataChecker;\n}();\nmodule.exports = {\n  check: check\n};","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\nvar RelayObservable = require('../network/RelayObservable');\nvar generateID = require('../util/generateID');\nvar getOperation = require('../util/getOperation');\nvar RelayError = require('../util/RelayError');\nvar RelayFeatureFlags = require('../util/RelayFeatureFlags');\nvar stableCopy = require('../util/stableCopy');\nvar withDuration = require('../util/withDuration');\nvar _require = require('./ClientID'),\n  generateClientID = _require.generateClientID,\n  generateUniqueClientID = _require.generateUniqueClientID;\nvar _require2 = require('./RelayConcreteVariables'),\n  getLocalVariables = _require2.getLocalVariables;\nvar RelayModernRecord = require('./RelayModernRecord');\nvar _require3 = require('./RelayModernSelector'),\n  createNormalizationSelector = _require3.createNormalizationSelector,\n  createReaderSelector = _require3.createReaderSelector;\nvar RelayRecordSource = require('./RelayRecordSource');\nvar _require4 = require('./RelayStoreUtils'),\n  ROOT_TYPE = _require4.ROOT_TYPE,\n  TYPENAME_KEY = _require4.TYPENAME_KEY,\n  getStorageKey = _require4.getStorageKey;\nvar invariant = require('invariant');\nvar warning = require(\"fbjs/lib/warning\");\nfunction execute(config) {\n  return new Executor(config);\n}\nvar Executor = /*#__PURE__*/function () {\n  function Executor(_ref2) {\n    var _this = this;\n    var actorIdentifier = _ref2.actorIdentifier,\n      getDataID = _ref2.getDataID,\n      getPublishQueue = _ref2.getPublishQueue,\n      getStore = _ref2.getStore,\n      isClientPayload = _ref2.isClientPayload,\n      operation = _ref2.operation,\n      operationExecutions = _ref2.operationExecutions,\n      operationLoader = _ref2.operationLoader,\n      operationTracker = _ref2.operationTracker,\n      optimisticConfig = _ref2.optimisticConfig,\n      scheduler = _ref2.scheduler,\n      shouldProcessClientComponents = _ref2.shouldProcessClientComponents,\n      sink = _ref2.sink,\n      source = _ref2.source,\n      treatMissingFieldsAsNull = _ref2.treatMissingFieldsAsNull,\n      updater = _ref2.updater,\n      log = _ref2.log,\n      normalizeResponse = _ref2.normalizeResponse;\n    this._actorIdentifier = actorIdentifier;\n    this._getDataID = getDataID;\n    this._treatMissingFieldsAsNull = treatMissingFieldsAsNull;\n    this._incrementalPayloadsPending = false;\n    this._incrementalResults = new Map();\n    this._log = log;\n    this._executeId = generateID();\n    this._nextSubscriptionId = 0;\n    this._operation = operation;\n    this._operationExecutions = operationExecutions;\n    this._operationLoader = operationLoader;\n    this._operationTracker = operationTracker;\n    this._operationUpdateEpochs = new Map();\n    this._optimisticUpdates = null;\n    this._pendingModulePayloadsCount = 0;\n    this._getPublishQueue = getPublishQueue;\n    this._scheduler = scheduler;\n    this._sink = sink;\n    this._source = new Map();\n    this._state = 'started';\n    this._getStore = getStore;\n    this._subscriptions = new Map();\n    this._updater = updater;\n    this._isClientPayload = isClientPayload === true;\n    this._isSubscriptionOperation = this._operation.request.node.params.operationKind === 'subscription';\n    this._shouldProcessClientComponents = shouldProcessClientComponents;\n    this._retainDisposables = new Map();\n    this._seenActors = new Set();\n    this._completeFns = [];\n    this._normalizeResponse = normalizeResponse;\n    var id = this._nextSubscriptionId++;\n    source.subscribe({\n      complete: function complete() {\n        return _this._complete(id);\n      },\n      error: function error(_error2) {\n        return _this._error(_error2);\n      },\n      next: function next(response) {\n        try {\n          _this._next(id, response);\n        } catch (error) {\n          sink.error(error);\n        }\n      },\n      start: function start(subscription) {\n        var _this$_operation$requ;\n        _this._start(id, subscription);\n        _this._log({\n          name: 'execute.start',\n          executeId: _this._executeId,\n          params: _this._operation.request.node.params,\n          variables: _this._operation.request.variables,\n          cacheConfig: (_this$_operation$requ = _this._operation.request.cacheConfig) !== null && _this$_operation$requ !== void 0 ? _this$_operation$requ : {}\n        });\n      }\n    });\n    if (optimisticConfig != null) {\n      this._processOptimisticResponse(optimisticConfig.response != null ? {\n        data: optimisticConfig.response\n      } : null, optimisticConfig.updater, false);\n    }\n  }\n  var _proto = Executor.prototype;\n  _proto.cancel = function cancel() {\n    var _this2 = this;\n    if (this._state === 'completed') {\n      return;\n    }\n    this._state = 'completed';\n    this._operationExecutions[\"delete\"](this._operation.request.identifier);\n    if (this._subscriptions.size !== 0) {\n      this._subscriptions.forEach(function (sub) {\n        return sub.unsubscribe();\n      });\n      this._subscriptions.clear();\n    }\n    var optimisticUpdates = this._optimisticUpdates;\n    if (optimisticUpdates !== null) {\n      this._optimisticUpdates = null;\n      optimisticUpdates.forEach(function (update) {\n        return _this2._getPublishQueueAndSaveActor().revertUpdate(update);\n      });\n      this._runPublishQueue();\n    }\n    this._incrementalResults.clear();\n    if (this._asyncStoreUpdateDisposable != null) {\n      this._asyncStoreUpdateDisposable.dispose();\n      this._asyncStoreUpdateDisposable = null;\n    }\n    this._completeFns = [];\n    this._completeOperationTracker();\n    this._disposeRetainedData();\n  };\n  _proto._updateActiveState = function _updateActiveState() {\n    var activeState;\n    switch (this._state) {\n      case 'started':\n        {\n          activeState = 'active';\n          break;\n        }\n      case 'loading_incremental':\n        {\n          activeState = 'active';\n          break;\n        }\n      case 'completed':\n        {\n          activeState = 'inactive';\n          break;\n        }\n      case 'loading_final':\n        {\n          activeState = this._pendingModulePayloadsCount > 0 ? 'active' : 'inactive';\n          break;\n        }\n      default:\n        this._state;\n        !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: invalid executor state.') : invariant(false) : void 0;\n    }\n    this._operationExecutions.set(this._operation.request.identifier, activeState);\n  };\n  _proto._schedule = function _schedule(task) {\n    var _this3 = this;\n    var scheduler = this._scheduler;\n    if (scheduler != null) {\n      var id = this._nextSubscriptionId++;\n      RelayObservable.create(function (sink) {\n        var cancellationToken = scheduler.schedule(function () {\n          try {\n            task();\n            sink.complete();\n          } catch (error) {\n            sink.error(error);\n          }\n        });\n        return function () {\n          return scheduler.cancel(cancellationToken);\n        };\n      }).subscribe({\n        complete: function complete() {\n          return _this3._complete(id);\n        },\n        error: function error(_error3) {\n          return _this3._error(_error3);\n        },\n        start: function start(subscription) {\n          return _this3._start(id, subscription);\n        }\n      });\n    } else {\n      task();\n    }\n  };\n  _proto._complete = function _complete(id) {\n    this._subscriptions[\"delete\"](id);\n    if (this._subscriptions.size === 0) {\n      this.cancel();\n      this._sink.complete();\n      this._log({\n        name: 'execute.complete',\n        executeId: this._executeId\n      });\n    }\n  };\n  _proto._error = function _error(error) {\n    this.cancel();\n    this._sink.error(error);\n    this._log({\n      name: 'execute.error',\n      executeId: this._executeId,\n      error: error\n    });\n  };\n  _proto._start = function _start(id, subscription) {\n    this._subscriptions.set(id, subscription);\n    this._updateActiveState();\n  };\n  _proto._next = function _next(_id, response) {\n    var _this4 = this;\n    this._schedule(function () {\n      var _withDuration = withDuration(function () {\n          _this4._handleNext(response);\n          _this4._maybeCompleteSubscriptionOperationTracking();\n        }),\n        duration = _withDuration[0];\n      _this4._log({\n        name: 'execute.next',\n        executeId: _this4._executeId,\n        response: response,\n        duration: duration\n      });\n    });\n  };\n  _proto._handleErrorResponse = function _handleErrorResponse(responses) {\n    var _this5 = this;\n    var results = [];\n    responses.forEach(function (response) {\n      if (response.data === null && response.extensions != null && !response.hasOwnProperty('errors')) {\n        return;\n      } else if (response.data == null) {\n        var errors = response.hasOwnProperty('errors') && response.errors != null ? response.errors : null;\n        var messages = errors ? errors.map(function (_ref3) {\n          var message = _ref3.message;\n          return message;\n        }).join('\\n') : '(No errors)';\n        var error = RelayError.create('RelayNetwork', 'No data returned for operation `' + _this5._operation.request.node.params.name + '`, got error(s):\\n' + messages + '\\n\\nSee the error `source` property for more information.');\n        error.source = {\n          errors: errors,\n          operation: _this5._operation.request.node,\n          variables: _this5._operation.request.variables\n        };\n        error.stack;\n        throw error;\n      } else {\n        var responseWithData = response;\n        results.push(responseWithData);\n      }\n    });\n    return results;\n  };\n  _proto._handleOptimisticResponses = function _handleOptimisticResponses(responses) {\n    var _response$extensions;\n    if (responses.length > 1) {\n      if (responses.some(function (responsePart) {\n        var _responsePart$extensi;\n        return ((_responsePart$extensi = responsePart.extensions) === null || _responsePart$extensi === void 0 ? void 0 : _responsePart$extensi.isOptimistic) === true;\n      })) {\n        !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Optimistic responses cannot be batched.') : invariant(false) : void 0;\n      }\n      return false;\n    }\n    var response = responses[0];\n    var isOptimistic = ((_response$extensions = response.extensions) === null || _response$extensions === void 0 ? void 0 : _response$extensions.isOptimistic) === true;\n    if (isOptimistic && this._state !== 'started') {\n      !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: optimistic payload received after server payload.') : invariant(false) : void 0;\n    }\n    if (isOptimistic) {\n      this._processOptimisticResponse(response, null, this._treatMissingFieldsAsNull);\n      this._sink.next(response);\n      return true;\n    }\n    return false;\n  };\n  _proto._handleNext = function _handleNext(response) {\n    if (this._state === 'completed') {\n      return;\n    }\n    this._seenActors.clear();\n    var responses = Array.isArray(response) ? response : [response];\n    var responsesWithData = this._handleErrorResponse(responses);\n    if (responsesWithData.length === 0) {\n      var isFinal = responses.some(function (x) {\n        var _x$extensions;\n        return ((_x$extensions = x.extensions) === null || _x$extensions === void 0 ? void 0 : _x$extensions.is_final) === true;\n      });\n      if (isFinal) {\n        this._state = 'loading_final';\n        this._updateActiveState();\n        this._incrementalPayloadsPending = false;\n      }\n      this._sink.next(response);\n      return;\n    }\n    var isOptimistic = this._handleOptimisticResponses(responsesWithData);\n    if (isOptimistic) {\n      return;\n    }\n    var _partitionGraphQLResp = partitionGraphQLResponses(responsesWithData),\n      nonIncrementalResponses = _partitionGraphQLResp[0],\n      incrementalResponses = _partitionGraphQLResp[1];\n    var hasNonIncrementalResponses = nonIncrementalResponses.length > 0;\n    if (hasNonIncrementalResponses) {\n      if (this._isSubscriptionOperation) {\n        var nextID = generateUniqueClientID();\n        this._operation = {\n          request: this._operation.request,\n          fragment: createReaderSelector(this._operation.fragment.node, nextID, this._operation.fragment.variables, this._operation.fragment.owner),\n          root: createNormalizationSelector(this._operation.root.node, nextID, this._operation.root.variables)\n        };\n      }\n      var payloadFollowups = this._processResponses(nonIncrementalResponses);\n      this._processPayloadFollowups(payloadFollowups);\n    }\n    if (incrementalResponses.length > 0) {\n      var _payloadFollowups = this._processIncrementalResponses(incrementalResponses);\n      this._processPayloadFollowups(_payloadFollowups);\n    }\n    if (this._isSubscriptionOperation) {\n      if (responsesWithData[0].extensions == null) {\n        responsesWithData[0].extensions = {\n          __relay_subscription_root_id: this._operation.fragment.dataID\n        };\n      } else {\n        responsesWithData[0].extensions.__relay_subscription_root_id = this._operation.fragment.dataID;\n      }\n    }\n    var updatedOwners = this._runPublishQueue(hasNonIncrementalResponses ? this._operation : undefined);\n    if (hasNonIncrementalResponses) {\n      if (this._incrementalPayloadsPending) {\n        this._retainData();\n      }\n    }\n    this._updateOperationTracker(updatedOwners);\n    this._sink.next(response);\n  };\n  _proto._processOptimisticResponse = function _processOptimisticResponse(response, updater, treatMissingFieldsAsNull) {\n    var _this6 = this;\n    !(this._optimisticUpdates === null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: environment.execute: only support one optimistic response per ' + 'execute.') : invariant(false) : void 0;\n    if (response == null && updater == null) {\n      return;\n    }\n    var optimisticUpdates = [];\n    if (response) {\n      var payload = this._normalizeResponse(response, this._operation.root, ROOT_TYPE, {\n        actorIdentifier: this._actorIdentifier,\n        getDataID: this._getDataID,\n        path: [],\n        shouldProcessClientComponents: this._shouldProcessClientComponents,\n        treatMissingFieldsAsNull: treatMissingFieldsAsNull\n      });\n      validateOptimisticResponsePayload(payload);\n      optimisticUpdates.push({\n        operation: this._operation,\n        payload: payload,\n        updater: updater\n      });\n      this._processOptimisticFollowups(payload, optimisticUpdates);\n    } else if (updater) {\n      optimisticUpdates.push({\n        operation: this._operation,\n        payload: {\n          errors: null,\n          fieldPayloads: null,\n          incrementalPlaceholders: null,\n          followupPayloads: null,\n          source: RelayRecordSource.create(),\n          isFinal: false\n        },\n        updater: updater\n      });\n    }\n    this._optimisticUpdates = optimisticUpdates;\n    optimisticUpdates.forEach(function (update) {\n      return _this6._getPublishQueueAndSaveActor().applyUpdate(update);\n    });\n    var updatedOwners = this._runPublishQueue();\n    if (RelayFeatureFlags.ENABLE_OPERATION_TRACKER_OPTIMISTIC_UPDATES) {\n      this._updateOperationTracker(updatedOwners);\n    }\n  };\n  _proto._processOptimisticFollowups = function _processOptimisticFollowups(payload, optimisticUpdates) {\n    if (payload.followupPayloads && payload.followupPayloads.length) {\n      var followupPayloads = payload.followupPayloads;\n      var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(followupPayloads),\n        _step;\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var followupPayload = _step.value;\n          switch (followupPayload.kind) {\n            case 'ModuleImportPayload':\n              var operationLoader = this._expectOperationLoader();\n              var operation = operationLoader.get(followupPayload.operationReference);\n              if (operation == null) {\n                this._processAsyncOptimisticModuleImport(followupPayload);\n              } else {\n                var moduleImportOptimisticUpdates = this._processOptimisticModuleImport(operation, followupPayload);\n                optimisticUpdates.push.apply(optimisticUpdates, (0, _toConsumableArray2[\"default\"])(moduleImportOptimisticUpdates));\n              }\n              break;\n            case 'ActorPayload':\n              process.env.NODE_ENV !== \"production\" ? warning(false, 'OperationExecutor: Unexpected optimistic ActorPayload. These updates are not supported.') : void 0;\n              break;\n            default:\n              followupPayload;\n              !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Unexpected followup kind `%s`. when processing optimistic updates.', followupPayload.kind) : invariant(false) : void 0;\n          }\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n    }\n  };\n  _proto._normalizeFollowupPayload = function _normalizeFollowupPayload(followupPayload, normalizationNode) {\n    var variables;\n    if (normalizationNode.kind === 'SplitOperation' && followupPayload.kind === 'ModuleImportPayload') {\n      variables = getLocalVariables(followupPayload.variables, normalizationNode.argumentDefinitions, followupPayload.args);\n    } else {\n      variables = followupPayload.variables;\n    }\n    var selector = createNormalizationSelector(normalizationNode, followupPayload.dataID, variables);\n    return this._normalizeResponse({\n      data: followupPayload.data\n    }, selector, followupPayload.typeName, {\n      actorIdentifier: this._actorIdentifier,\n      getDataID: this._getDataID,\n      path: followupPayload.path,\n      treatMissingFieldsAsNull: this._treatMissingFieldsAsNull,\n      shouldProcessClientComponents: this._shouldProcessClientComponents\n    });\n  };\n  _proto._processOptimisticModuleImport = function _processOptimisticModuleImport(normalizationRootNode, moduleImportPayload) {\n    var operation = getOperation(normalizationRootNode);\n    var optimisticUpdates = [];\n    var modulePayload = this._normalizeFollowupPayload(moduleImportPayload, operation);\n    validateOptimisticResponsePayload(modulePayload);\n    optimisticUpdates.push({\n      operation: this._operation,\n      payload: modulePayload,\n      updater: null\n    });\n    this._processOptimisticFollowups(modulePayload, optimisticUpdates);\n    return optimisticUpdates;\n  };\n  _proto._processAsyncOptimisticModuleImport = function _processAsyncOptimisticModuleImport(moduleImportPayload) {\n    var _this7 = this;\n    this._expectOperationLoader().load(moduleImportPayload.operationReference).then(function (operation) {\n      if (operation == null || _this7._state !== 'started') {\n        return;\n      }\n      var moduleImportOptimisticUpdates = _this7._processOptimisticModuleImport(operation, moduleImportPayload);\n      moduleImportOptimisticUpdates.forEach(function (update) {\n        return _this7._getPublishQueueAndSaveActor().applyUpdate(update);\n      });\n      if (_this7._optimisticUpdates == null) {\n        process.env.NODE_ENV !== \"production\" ? warning(false, 'OperationExecutor: Unexpected ModuleImport optimistic ' + 'update in operation %s.' + _this7._operation.request.node.params.name) : void 0;\n      } else {\n        var _this$_optimisticUpda;\n        (_this$_optimisticUpda = _this7._optimisticUpdates).push.apply(_this$_optimisticUpda, (0, _toConsumableArray2[\"default\"])(moduleImportOptimisticUpdates));\n        _this7._runPublishQueue();\n      }\n    });\n  };\n  _proto._processResponses = function _processResponses(responses) {\n    var _this8 = this;\n    if (this._optimisticUpdates !== null) {\n      this._optimisticUpdates.forEach(function (update) {\n        _this8._getPublishQueueAndSaveActor().revertUpdate(update);\n      });\n      this._optimisticUpdates = null;\n    }\n    this._incrementalPayloadsPending = false;\n    this._incrementalResults.clear();\n    this._source.clear();\n    return responses.map(function (payloadPart) {\n      var relayPayload = _this8._normalizeResponse(payloadPart, _this8._operation.root, ROOT_TYPE, {\n        actorIdentifier: _this8._actorIdentifier,\n        getDataID: _this8._getDataID,\n        path: [],\n        treatMissingFieldsAsNull: _this8._treatMissingFieldsAsNull,\n        shouldProcessClientComponents: _this8._shouldProcessClientComponents\n      });\n      _this8._getPublishQueueAndSaveActor().commitPayload(_this8._operation, relayPayload, _this8._updater);\n      return relayPayload;\n    });\n  };\n  _proto._processPayloadFollowups = function _processPayloadFollowups(payloads) {\n    var _this9 = this;\n    if (this._state === 'completed') {\n      return;\n    }\n    payloads.forEach(function (payload) {\n      var incrementalPlaceholders = payload.incrementalPlaceholders,\n        followupPayloads = payload.followupPayloads,\n        isFinal = payload.isFinal;\n      _this9._state = isFinal ? 'loading_final' : 'loading_incremental';\n      _this9._updateActiveState();\n      if (isFinal) {\n        _this9._incrementalPayloadsPending = false;\n      }\n      if (followupPayloads && followupPayloads.length !== 0) {\n        followupPayloads.forEach(function (followupPayload) {\n          var _followupPayload$acto;\n          var prevActorIdentifier = _this9._actorIdentifier;\n          _this9._actorIdentifier = (_followupPayload$acto = followupPayload.actorIdentifier) !== null && _followupPayload$acto !== void 0 ? _followupPayload$acto : _this9._actorIdentifier;\n          _this9._processFollowupPayload(followupPayload);\n          _this9._actorIdentifier = prevActorIdentifier;\n        });\n      }\n      if (incrementalPlaceholders && incrementalPlaceholders.length !== 0) {\n        _this9._incrementalPayloadsPending = _this9._state !== 'loading_final';\n        incrementalPlaceholders.forEach(function (incrementalPlaceholder) {\n          var _incrementalPlacehold;\n          var prevActorIdentifier = _this9._actorIdentifier;\n          _this9._actorIdentifier = (_incrementalPlacehold = incrementalPlaceholder.actorIdentifier) !== null && _incrementalPlacehold !== void 0 ? _incrementalPlacehold : _this9._actorIdentifier;\n          _this9._processIncrementalPlaceholder(payload, incrementalPlaceholder);\n          _this9._actorIdentifier = prevActorIdentifier;\n        });\n        if (_this9._isClientPayload || _this9._state === 'loading_final') {\n          process.env.NODE_ENV !== \"production\" ? warning(_this9._isClientPayload, 'RelayModernEnvironment: Operation `%s` contains @defer/@stream ' + 'directives but was executed in non-streaming mode. See ' + 'https://fburl.com/relay-incremental-delivery-non-streaming-warning.', _this9._operation.request.node.params.name) : void 0;\n          var relayPayloads = [];\n          incrementalPlaceholders.forEach(function (placeholder) {\n            if (placeholder.kind === 'defer') {\n              relayPayloads.push(_this9._processDeferResponse(placeholder.label, placeholder.path, placeholder, {\n                data: placeholder.data\n              }));\n            }\n          });\n          if (relayPayloads.length > 0) {\n            _this9._processPayloadFollowups(relayPayloads);\n          }\n        }\n      }\n    });\n  };\n  _proto._maybeCompleteSubscriptionOperationTracking = function _maybeCompleteSubscriptionOperationTracking() {\n    if (!this._isSubscriptionOperation) {\n      return;\n    }\n    if (this._pendingModulePayloadsCount === 0 && this._incrementalPayloadsPending === false) {\n      this._completeOperationTracker();\n    }\n  };\n  _proto._processFollowupPayload = function _processFollowupPayload(followupPayload) {\n    var _this10 = this;\n    switch (followupPayload.kind) {\n      case 'ModuleImportPayload':\n        var operationLoader = this._expectOperationLoader();\n        var node = operationLoader.get(followupPayload.operationReference);\n        if (node != null) {\n          this._processFollowupPayloadWithNormalizationNode(followupPayload, getOperation(node));\n        } else {\n          var id = this._nextSubscriptionId++;\n          this._pendingModulePayloadsCount++;\n          var decrementPendingCount = function decrementPendingCount() {\n            _this10._pendingModulePayloadsCount--;\n            _this10._maybeCompleteSubscriptionOperationTracking();\n          };\n          var networkObservable = RelayObservable.from(new Promise(function (resolve, reject) {\n            operationLoader.load(followupPayload.operationReference).then(resolve, reject);\n          }));\n          RelayObservable.create(function (sink) {\n            var cancellationToken;\n            var subscription = networkObservable.subscribe({\n              next: function next(loadedNode) {\n                if (loadedNode != null) {\n                  var publishModuleImportPayload = function publishModuleImportPayload() {\n                    try {\n                      var operation = getOperation(loadedNode);\n                      var batchAsyncModuleUpdatesFN = RelayFeatureFlags.BATCH_ASYNC_MODULE_UPDATES_FN;\n                      var shouldScheduleAsyncStoreUpdate = batchAsyncModuleUpdatesFN != null && _this10._pendingModulePayloadsCount > 1;\n                      var _withDuration2 = withDuration(function () {\n                          _this10._handleFollowupPayload(followupPayload, operation);\n                          if (shouldScheduleAsyncStoreUpdate) {\n                            _this10._scheduleAsyncStoreUpdate(batchAsyncModuleUpdatesFN, sink.complete);\n                          } else {\n                            var updatedOwners = _this10._runPublishQueue();\n                            _this10._updateOperationTracker(updatedOwners);\n                          }\n                        }),\n                        duration = _withDuration2[0];\n                      _this10._log({\n                        name: 'execute.async.module',\n                        executeId: _this10._executeId,\n                        operationName: operation.name,\n                        duration: duration\n                      });\n                      if (!shouldScheduleAsyncStoreUpdate) {\n                        sink.complete();\n                      }\n                    } catch (error) {\n                      sink.error(error);\n                    }\n                  };\n                  var scheduler = _this10._scheduler;\n                  if (scheduler == null) {\n                    publishModuleImportPayload();\n                  } else {\n                    cancellationToken = scheduler.schedule(publishModuleImportPayload);\n                  }\n                } else {\n                  sink.complete();\n                }\n              },\n              error: sink.error\n            });\n            return function () {\n              subscription.unsubscribe();\n              if (_this10._scheduler != null && cancellationToken != null) {\n                _this10._scheduler.cancel(cancellationToken);\n              }\n            };\n          }).subscribe({\n            complete: function complete() {\n              _this10._complete(id);\n              decrementPendingCount();\n            },\n            error: function error(_error4) {\n              _this10._error(_error4);\n              decrementPendingCount();\n            },\n            start: function start(subscription) {\n              return _this10._start(id, subscription);\n            }\n          });\n        }\n        break;\n      case 'ActorPayload':\n        this._processFollowupPayloadWithNormalizationNode(followupPayload, followupPayload.node);\n        break;\n      default:\n        followupPayload;\n        !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Unexpected followup kind `%s`.', followupPayload.kind) : invariant(false) : void 0;\n    }\n  };\n  _proto._processFollowupPayloadWithNormalizationNode = function _processFollowupPayloadWithNormalizationNode(followupPayload, normalizationNode) {\n    this._handleFollowupPayload(followupPayload, normalizationNode);\n    this._maybeCompleteSubscriptionOperationTracking();\n  };\n  _proto._handleFollowupPayload = function _handleFollowupPayload(followupPayload, normalizationNode) {\n    var relayPayload = this._normalizeFollowupPayload(followupPayload, normalizationNode);\n    this._getPublishQueueAndSaveActor().commitPayload(this._operation, relayPayload);\n    this._processPayloadFollowups([relayPayload]);\n  };\n  _proto._processIncrementalPlaceholder = function _processIncrementalPlaceholder(relayPayload, placeholder) {\n    var _relayPayload$fieldPa;\n    var label = placeholder.label,\n      path = placeholder.path;\n    var pathKey = path.map(String).join('.');\n    var resultForLabel = this._incrementalResults.get(label);\n    if (resultForLabel == null) {\n      resultForLabel = new Map();\n      this._incrementalResults.set(label, resultForLabel);\n    }\n    var resultForPath = resultForLabel.get(pathKey);\n    var pendingResponses = resultForPath != null && resultForPath.kind === 'response' ? resultForPath.responses : null;\n    resultForLabel.set(pathKey, {\n      kind: 'placeholder',\n      placeholder: placeholder\n    });\n    var parentID;\n    if (placeholder.kind === 'stream') {\n      parentID = placeholder.parentID;\n    } else if (placeholder.kind === 'defer') {\n      parentID = placeholder.selector.dataID;\n    } else {\n      placeholder;\n      !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Unsupported incremental placeholder kind `%s`.', placeholder.kind) : invariant(false) : void 0;\n    }\n    var parentRecord = relayPayload.source.get(parentID);\n    var parentPayloads = ((_relayPayload$fieldPa = relayPayload.fieldPayloads) !== null && _relayPayload$fieldPa !== void 0 ? _relayPayload$fieldPa : []).filter(function (fieldPayload) {\n      var fieldID = generateClientID(fieldPayload.dataID, fieldPayload.fieldKey);\n      return fieldPayload.dataID === parentID || fieldID === parentID;\n    });\n    !(parentRecord != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Expected record `%s` to exist.', parentID) : invariant(false) : void 0;\n    var nextParentRecord;\n    var nextParentPayloads;\n    var previousParentEntry = this._source.get(parentID);\n    if (previousParentEntry != null) {\n      nextParentRecord = RelayModernRecord.update(previousParentEntry.record, parentRecord);\n      var handlePayloads = new Map();\n      var dedupePayload = function dedupePayload(payload) {\n        var key = stableStringify(payload);\n        handlePayloads.set(key, payload);\n      };\n      previousParentEntry.fieldPayloads.forEach(dedupePayload);\n      parentPayloads.forEach(dedupePayload);\n      nextParentPayloads = Array.from(handlePayloads.values());\n    } else {\n      nextParentRecord = parentRecord;\n      nextParentPayloads = parentPayloads;\n    }\n    this._source.set(parentID, {\n      record: nextParentRecord,\n      fieldPayloads: nextParentPayloads\n    });\n    if (pendingResponses != null) {\n      var payloadFollowups = this._processIncrementalResponses(pendingResponses);\n      this._processPayloadFollowups(payloadFollowups);\n    }\n  };\n  _proto._processIncrementalResponses = function _processIncrementalResponses(incrementalResponses) {\n    var _this11 = this;\n    var relayPayloads = [];\n    incrementalResponses.forEach(function (incrementalResponse) {\n      var label = incrementalResponse.label,\n        path = incrementalResponse.path,\n        response = incrementalResponse.response;\n      var resultForLabel = _this11._incrementalResults.get(label);\n      if (resultForLabel == null) {\n        resultForLabel = new Map();\n        _this11._incrementalResults.set(label, resultForLabel);\n      }\n      if (label.indexOf('$defer$') !== -1) {\n        var pathKey = path.map(String).join('.');\n        var resultForPath = resultForLabel.get(pathKey);\n        if (resultForPath == null) {\n          resultForPath = {\n            kind: 'response',\n            responses: [incrementalResponse]\n          };\n          resultForLabel.set(pathKey, resultForPath);\n          return;\n        } else if (resultForPath.kind === 'response') {\n          resultForPath.responses.push(incrementalResponse);\n          return;\n        }\n        var placeholder = resultForPath.placeholder;\n        !(placeholder.kind === 'defer') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Expected data for path `%s` for label `%s` ' + 'to be data for @defer, was `@%s`.', pathKey, label, placeholder.kind) : invariant(false) : void 0;\n        relayPayloads.push(_this11._processDeferResponse(label, path, placeholder, response));\n      } else {\n        var _pathKey = path.slice(0, -2).map(String).join('.');\n        var _resultForPath = resultForLabel.get(_pathKey);\n        if (_resultForPath == null) {\n          _resultForPath = {\n            kind: 'response',\n            responses: [incrementalResponse]\n          };\n          resultForLabel.set(_pathKey, _resultForPath);\n          return;\n        } else if (_resultForPath.kind === 'response') {\n          _resultForPath.responses.push(incrementalResponse);\n          return;\n        }\n        var _placeholder = _resultForPath.placeholder;\n        !(_placeholder.kind === 'stream') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Expected data for path `%s` for label `%s` ' + 'to be data for @stream, was `@%s`.', _pathKey, label, _placeholder.kind) : invariant(false) : void 0;\n        relayPayloads.push(_this11._processStreamResponse(label, path, _placeholder, response));\n      }\n    });\n    return relayPayloads;\n  };\n  _proto._processDeferResponse = function _processDeferResponse(label, path, placeholder, response) {\n    var _placeholder$actorIde;\n    var parentID = placeholder.selector.dataID;\n    var prevActorIdentifier = this._actorIdentifier;\n    this._actorIdentifier = (_placeholder$actorIde = placeholder.actorIdentifier) !== null && _placeholder$actorIde !== void 0 ? _placeholder$actorIde : this._actorIdentifier;\n    var relayPayload = this._normalizeResponse(response, placeholder.selector, placeholder.typeName, {\n      actorIdentifier: this._actorIdentifier,\n      getDataID: this._getDataID,\n      path: placeholder.path,\n      treatMissingFieldsAsNull: this._treatMissingFieldsAsNull,\n      shouldProcessClientComponents: this._shouldProcessClientComponents\n    });\n    this._getPublishQueueAndSaveActor().commitPayload(this._operation, relayPayload);\n    var parentEntry = this._source.get(parentID);\n    !(parentEntry != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Expected the parent record `%s` for @defer ' + 'data to exist.', parentID) : invariant(false) : void 0;\n    var fieldPayloads = parentEntry.fieldPayloads;\n    if (fieldPayloads.length !== 0) {\n      var _response$extensions2;\n      var handleFieldsRelayPayload = {\n        errors: null,\n        fieldPayloads: fieldPayloads,\n        incrementalPlaceholders: null,\n        followupPayloads: null,\n        source: RelayRecordSource.create(),\n        isFinal: ((_response$extensions2 = response.extensions) === null || _response$extensions2 === void 0 ? void 0 : _response$extensions2.is_final) === true\n      };\n      this._getPublishQueueAndSaveActor().commitPayload(this._operation, handleFieldsRelayPayload);\n    }\n    this._actorIdentifier = prevActorIdentifier;\n    return relayPayload;\n  };\n  _proto._processStreamResponse = function _processStreamResponse(label, path, placeholder, response) {\n    var parentID = placeholder.parentID,\n      node = placeholder.node,\n      variables = placeholder.variables,\n      actorIdentifier = placeholder.actorIdentifier;\n    var prevActorIdentifier = this._actorIdentifier;\n    this._actorIdentifier = actorIdentifier !== null && actorIdentifier !== void 0 ? actorIdentifier : this._actorIdentifier;\n    var field = node.selections[0];\n    !(field != null && field.kind === 'LinkedField' && field.plural === true) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Expected @stream to be used on a plural field.') : invariant(false) : void 0;\n    var _this$_normalizeStrea = this._normalizeStreamItem(response, parentID, field, variables, path, placeholder.path),\n      fieldPayloads = _this$_normalizeStrea.fieldPayloads,\n      itemID = _this$_normalizeStrea.itemID,\n      itemIndex = _this$_normalizeStrea.itemIndex,\n      prevIDs = _this$_normalizeStrea.prevIDs,\n      relayPayload = _this$_normalizeStrea.relayPayload,\n      storageKey = _this$_normalizeStrea.storageKey;\n    this._getPublishQueueAndSaveActor().commitPayload(this._operation, relayPayload, function (store) {\n      var currentParentRecord = store.get(parentID);\n      if (currentParentRecord == null) {\n        return;\n      }\n      var currentItems = currentParentRecord.getLinkedRecords(storageKey);\n      if (currentItems == null) {\n        return;\n      }\n      if (currentItems.length !== prevIDs.length || currentItems.some(function (currentItem, index) {\n        return prevIDs[index] !== (currentItem && currentItem.getDataID());\n      })) {\n        return;\n      }\n      var nextItems = (0, _toConsumableArray2[\"default\"])(currentItems);\n      nextItems[itemIndex] = store.get(itemID);\n      currentParentRecord.setLinkedRecords(nextItems, storageKey);\n    });\n    if (fieldPayloads.length !== 0) {\n      var handleFieldsRelayPayload = {\n        errors: null,\n        fieldPayloads: fieldPayloads,\n        incrementalPlaceholders: null,\n        followupPayloads: null,\n        source: RelayRecordSource.create(),\n        isFinal: false\n      };\n      this._getPublishQueueAndSaveActor().commitPayload(this._operation, handleFieldsRelayPayload);\n    }\n    this._actorIdentifier = prevActorIdentifier;\n    return relayPayload;\n  };\n  _proto._normalizeStreamItem = function _normalizeStreamItem(response, parentID, field, variables, path, normalizationPath) {\n    var _field$alias, _field$concreteType, _ref, _this$_getDataID;\n    var data = response.data;\n    !(typeof data === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Expected the GraphQL @stream payload `data` ' + 'value to be an object.') : invariant(false) : void 0;\n    var responseKey = (_field$alias = field.alias) !== null && _field$alias !== void 0 ? _field$alias : field.name;\n    var storageKey = getStorageKey(field, variables);\n    var parentEntry = this._source.get(parentID);\n    !(parentEntry != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Expected the parent record `%s` for @stream ' + 'data to exist.', parentID) : invariant(false) : void 0;\n    var parentRecord = parentEntry.record,\n      fieldPayloads = parentEntry.fieldPayloads;\n    var prevIDs = RelayModernRecord.getLinkedRecordIDs(parentRecord, storageKey);\n    !(prevIDs != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Expected record `%s` to have fetched field ' + '`%s` with @stream.', parentID, field.name) : invariant(false) : void 0;\n    var finalPathEntry = path[path.length - 1];\n    var itemIndex = parseInt(finalPathEntry, 10);\n    !(itemIndex === finalPathEntry && itemIndex >= 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Expected path for @stream to end in a ' + 'positive integer index, got `%s`', finalPathEntry) : invariant(false) : void 0;\n    var typeName = (_field$concreteType = field.concreteType) !== null && _field$concreteType !== void 0 ? _field$concreteType : data[TYPENAME_KEY];\n    !(typeof typeName === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Expected @stream field `%s` to have a ' + '__typename.', field.name) : invariant(false) : void 0;\n    var itemID = (_ref = (_this$_getDataID = this._getDataID(data, typeName)) !== null && _this$_getDataID !== void 0 ? _this$_getDataID : prevIDs === null || prevIDs === void 0 ? void 0 : prevIDs[itemIndex]) !== null && _ref !== void 0 ? _ref : generateClientID(parentID, storageKey, itemIndex);\n    !(typeof itemID === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Expected id of elements of field `%s` to ' + 'be strings.', storageKey) : invariant(false) : void 0;\n    var selector = createNormalizationSelector(field, itemID, variables);\n    var nextParentRecord = RelayModernRecord.clone(parentRecord);\n    var nextIDs = (0, _toConsumableArray2[\"default\"])(prevIDs);\n    nextIDs[itemIndex] = itemID;\n    RelayModernRecord.setLinkedRecordIDs(nextParentRecord, storageKey, nextIDs);\n    this._source.set(parentID, {\n      record: nextParentRecord,\n      fieldPayloads: fieldPayloads\n    });\n    var relayPayload = this._normalizeResponse(response, selector, typeName, {\n      actorIdentifier: this._actorIdentifier,\n      getDataID: this._getDataID,\n      path: [].concat((0, _toConsumableArray2[\"default\"])(normalizationPath), [responseKey, String(itemIndex)]),\n      treatMissingFieldsAsNull: this._treatMissingFieldsAsNull,\n      shouldProcessClientComponents: this._shouldProcessClientComponents\n    });\n    return {\n      fieldPayloads: fieldPayloads,\n      itemID: itemID,\n      itemIndex: itemIndex,\n      prevIDs: prevIDs,\n      relayPayload: relayPayload,\n      storageKey: storageKey\n    };\n  };\n  _proto._scheduleAsyncStoreUpdate = function _scheduleAsyncStoreUpdate(scheduleFn, completeFn) {\n    var _this12 = this;\n    this._completeFns.push(completeFn);\n    if (this._asyncStoreUpdateDisposable != null) {\n      return;\n    }\n    this._asyncStoreUpdateDisposable = scheduleFn(function () {\n      _this12._asyncStoreUpdateDisposable = null;\n      var updatedOwners = _this12._runPublishQueue();\n      _this12._updateOperationTracker(updatedOwners);\n      var _iterator2 = (0, _createForOfIteratorHelper2[\"default\"])(_this12._completeFns),\n        _step2;\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var complete = _step2.value;\n          complete();\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n      _this12._completeFns = [];\n    });\n  };\n  _proto._updateOperationTracker = function _updateOperationTracker(updatedOwners) {\n    if (updatedOwners != null && updatedOwners.length > 0) {\n      this._operationTracker.update(this._operation.request, new Set(updatedOwners));\n    }\n  };\n  _proto._completeOperationTracker = function _completeOperationTracker() {\n    this._operationTracker.complete(this._operation.request);\n  };\n  _proto._getPublishQueueAndSaveActor = function _getPublishQueueAndSaveActor() {\n    this._seenActors.add(this._actorIdentifier);\n    return this._getPublishQueue(this._actorIdentifier);\n  };\n  _proto._getActorsToVisit = function _getActorsToVisit() {\n    if (this._seenActors.size === 0) {\n      return new Set([this._actorIdentifier]);\n    } else {\n      return this._seenActors;\n    }\n  };\n  _proto._runPublishQueue = function _runPublishQueue(operation) {\n    var updatedOwners = new Set();\n    var _iterator3 = (0, _createForOfIteratorHelper2[\"default\"])(this._getActorsToVisit()),\n      _step3;\n    try {\n      for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n        var actorIdentifier = _step3.value;\n        var owners = this._getPublishQueue(actorIdentifier).run(operation);\n        owners.forEach(function (owner) {\n          return updatedOwners.add(owner);\n        });\n      }\n    } catch (err) {\n      _iterator3.e(err);\n    } finally {\n      _iterator3.f();\n    }\n    return Array.from(updatedOwners);\n  };\n  _proto._retainData = function _retainData() {\n    var _iterator4 = (0, _createForOfIteratorHelper2[\"default\"])(this._getActorsToVisit()),\n      _step4;\n    try {\n      for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n        var actorIdentifier = _step4.value;\n        if (!this._retainDisposables.has(actorIdentifier)) {\n          this._retainDisposables.set(actorIdentifier, this._getStore(actorIdentifier).retain(this._operation));\n        }\n      }\n    } catch (err) {\n      _iterator4.e(err);\n    } finally {\n      _iterator4.f();\n    }\n  };\n  _proto._disposeRetainedData = function _disposeRetainedData() {\n    var _iterator5 = (0, _createForOfIteratorHelper2[\"default\"])(this._retainDisposables.values()),\n      _step5;\n    try {\n      for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n        var disposable = _step5.value;\n        disposable.dispose();\n      }\n    } catch (err) {\n      _iterator5.e(err);\n    } finally {\n      _iterator5.f();\n    }\n    this._retainDisposables.clear();\n  };\n  _proto._expectOperationLoader = function _expectOperationLoader() {\n    var operationLoader = this._operationLoader;\n    !operationLoader ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Expected an operationLoader to be ' + 'configured when using `@match`.') : invariant(false) : void 0;\n    return operationLoader;\n  };\n  return Executor;\n}();\nfunction partitionGraphQLResponses(responses) {\n  var nonIncrementalResponses = [];\n  var incrementalResponses = [];\n  responses.forEach(function (response) {\n    if (response.path != null || response.label != null) {\n      var label = response.label,\n        path = response.path;\n      if (label == null || path == null) {\n        !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: invalid incremental payload, expected ' + '`path` and `label` to either both be null/undefined, or ' + '`path` to be an `Array<string | number>` and `label` to be a ' + '`string`.') : invariant(false) : void 0;\n      }\n      incrementalResponses.push({\n        label: label,\n        path: path,\n        response: response\n      });\n    } else {\n      nonIncrementalResponses.push(response);\n    }\n  });\n  return [nonIncrementalResponses, incrementalResponses];\n}\nfunction stableStringify(value) {\n  var _JSON$stringify;\n  return (_JSON$stringify = JSON.stringify(stableCopy(value))) !== null && _JSON$stringify !== void 0 ? _JSON$stringify : '';\n}\nfunction validateOptimisticResponsePayload(payload) {\n  var incrementalPlaceholders = payload.incrementalPlaceholders;\n  if (incrementalPlaceholders != null && incrementalPlaceholders.length !== 0) {\n    !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: optimistic responses cannot be returned ' + 'for operations that use incremental data delivery (@defer, ' + '@stream, and @stream_connection).') : invariant(false) : void 0;\n  }\n}\nmodule.exports = {\n  execute: execute\n};","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _require = require('./RelayStoreUtils'),\n  getArgumentValues = _require.getArgumentValues;\nvar invariant = require('invariant');\nfunction getFragmentVariables(fragment, rootVariables, argumentVariables) {\n  if (fragment.argumentDefinitions == null) {\n    return argumentVariables;\n  }\n  var variables;\n  fragment.argumentDefinitions.forEach(function (definition) {\n    if (argumentVariables.hasOwnProperty(definition.name)) {\n      return;\n    }\n    variables = variables || (0, _objectSpread2[\"default\"])({}, argumentVariables);\n    switch (definition.kind) {\n      case 'LocalArgument':\n        variables[definition.name] = definition.defaultValue;\n        break;\n      case 'RootArgument':\n        if (!rootVariables.hasOwnProperty(definition.name)) {\n          variables[definition.name] = undefined;\n          break;\n        }\n        variables[definition.name] = rootVariables[definition.name];\n        break;\n      default:\n        definition;\n        !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayConcreteVariables: Unexpected node kind `%s` in fragment `%s`.', definition.kind, fragment.name) : invariant(false) : void 0;\n    }\n  });\n  return variables || argumentVariables;\n}\nfunction getOperationVariables(operation, providedVariables, variables) {\n  var operationVariables = {};\n  operation.argumentDefinitions.forEach(function (def) {\n    var value = def.defaultValue;\n    if (variables[def.name] != null) {\n      value = variables[def.name];\n    }\n    operationVariables[def.name] = value;\n  });\n  if (providedVariables != null) {\n    Object.keys(providedVariables).forEach(function (varName) {\n      operationVariables[varName] = providedVariables[varName].get();\n    });\n  }\n  return operationVariables;\n}\nfunction getLocalVariables(currentVariables, argumentDefinitions, args) {\n  if (argumentDefinitions == null) {\n    return currentVariables;\n  }\n  var nextVariables = (0, _objectSpread2[\"default\"])({}, currentVariables);\n  var nextArgs = args ? getArgumentValues(args, currentVariables) : {};\n  argumentDefinitions.forEach(function (def) {\n    var _nextArgs$def$name;\n    var value = (_nextArgs$def$name = nextArgs[def.name]) !== null && _nextArgs$def$name !== void 0 ? _nextArgs$def$name : def.defaultValue;\n    nextVariables[def.name] = value;\n  });\n  return nextVariables;\n}\nmodule.exports = {\n  getLocalVariables: getLocalVariables,\n  getFragmentVariables: getFragmentVariables,\n  getOperationVariables: getOperationVariables\n};","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\nvar _wrapNativeSuper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/wrapNativeSuper\"));\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\nvar _excluded = [\"path\", \"locations\"];\nvar RelayFeatureFlags = require('../util/RelayFeatureFlags');\nvar SELF = Symbol('$SELF');\nvar RelayFieldError = /*#__PURE__*/function (_Error) {\n  (0, _inheritsLoose2[\"default\"])(RelayFieldError, _Error);\n  function RelayFieldError(message) {\n    var _this;\n    var errors = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n    _this = _Error.call(this, message) || this;\n    _this.name = 'RelayFieldError';\n    _this.message = message;\n    _this.errors = errors;\n    return _this;\n  }\n  return RelayFieldError;\n}( /*#__PURE__*/(0, _wrapNativeSuper2[\"default\"])(Error));\nfunction buildErrorTrie(errors) {\n  if (errors == null) {\n    return null;\n  }\n  if (!RelayFeatureFlags.ENABLE_FIELD_ERROR_HANDLING) {\n    return null;\n  }\n  var trie = new Map();\n  var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(errors),\n    _step;\n  try {\n    ERRORS: for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var _step$value = _step.value,\n        path = _step$value.path,\n        _ = _step$value.locations,\n        error = (0, _objectWithoutPropertiesLoose2[\"default\"])(_step$value, _excluded);\n      if (path == null) {\n        continue;\n      }\n      var length = path.length;\n      if (length === 0) {\n        continue;\n      }\n      var lastIndex = length - 1;\n      var currentTrie = trie;\n      for (var index = 0; index < lastIndex; index++) {\n        var key = path[index];\n        var existingValue = currentTrie.get(key);\n        if (existingValue instanceof Map) {\n          currentTrie = existingValue;\n          continue;\n        }\n        var newValue = new Map();\n        if (Array.isArray(existingValue)) {\n          newValue.set(SELF, existingValue);\n        }\n        currentTrie.set(key, newValue);\n        currentTrie = newValue;\n      }\n      var lastKey = path[lastIndex];\n      var container = currentTrie.get(lastKey);\n      if (container instanceof Map) {\n        currentTrie = container;\n        container = currentTrie.get(lastKey);\n        lastKey = SELF;\n      }\n      if (Array.isArray(container)) {\n        container.push(error);\n      } else {\n        currentTrie.set(lastKey, [error]);\n      }\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n  return trie;\n}\nfunction getErrorsByKey(trie, key) {\n  var value = trie.get(key);\n  if (value == null) {\n    return null;\n  }\n  if (Array.isArray(value)) {\n    return value;\n  }\n  var errors = [];\n  recursivelyCopyErrorsIntoArray(value, errors);\n  return errors;\n}\nfunction recursivelyCopyErrorsIntoArray(trieOrSet, errors) {\n  var _iterator2 = (0, _createForOfIteratorHelper2[\"default\"])(trieOrSet),\n    _step2;\n  try {\n    for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n      var _step2$value = _step2.value,\n        childKey = _step2$value[0],\n        value = _step2$value[1];\n      var oldLength = errors.length;\n      if (Array.isArray(value)) {\n        errors.push.apply(errors, (0, _toConsumableArray2[\"default\"])(value));\n      } else {\n        recursivelyCopyErrorsIntoArray(value, errors);\n      }\n      if (childKey === SELF) {\n        continue;\n      }\n      var newLength = errors.length;\n      for (var index = oldLength; index < newLength; index++) {\n        var error = errors[index];\n        if (error.path == null) {\n          errors[index] = (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, error), {}, {\n            path: [childKey]\n          });\n        } else {\n          error.path.unshift(childKey);\n        }\n      }\n    }\n  } catch (err) {\n    _iterator2.e(err);\n  } finally {\n    _iterator2.f();\n  }\n}\nfunction getNestedErrorTrieByKey(trie, key) {\n  var value = trie.get(key);\n  if (value instanceof Map) {\n    return value;\n  }\n  return null;\n}\nmodule.exports = {\n  SELF: SELF,\n  buildErrorTrie: buildErrorTrie,\n  getNestedErrorTrieByKey: getNestedErrorTrieByKey,\n  getErrorsByKey: getErrorsByKey,\n  RelayFieldError: RelayFieldError\n};","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar RelayDefaultHandlerProvider = require('../handlers/RelayDefaultHandlerProvider');\nvar _require = require('../multi-actor-environment/ActorIdentifier'),\n  INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE = _require.INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE,\n  assertInternalActorIdentifier = _require.assertInternalActorIdentifier;\nvar RelayObservable = require('../network/RelayObservable');\nvar wrapNetworkWithLogObserver = require('../network/wrapNetworkWithLogObserver');\nvar RelayOperationTracker = require('../store/RelayOperationTracker');\nvar registerEnvironmentWithDevTools = require('../util/registerEnvironmentWithDevTools');\nvar defaultGetDataID = require('./defaultGetDataID');\nvar defaultRelayFieldLogger = require('./defaultRelayFieldLogger');\nvar normalizeResponse = require('./normalizeResponse');\nvar OperationExecutor = require('./OperationExecutor');\nvar RelayPublishQueue = require('./RelayPublishQueue');\nvar RelayRecordSource = require('./RelayRecordSource');\nvar invariant = require('invariant');\nvar RelayModernEnvironment = /*#__PURE__*/function () {\n  function RelayModernEnvironment(config) {\n    var _this = this;\n    var _config$log, _config$relayFieldLog, _config$UNSTABLE_defa, _config$getDataID, _config$missingFieldH, _config$handlerProvid, _config$scheduler, _config$isServer, _config$normalizeResp, _config$operationTrac;\n    this.configName = config.configName;\n    this._treatMissingFieldsAsNull = config.treatMissingFieldsAsNull === true;\n    var operationLoader = config.operationLoader;\n    if (process.env.NODE_ENV !== \"production\") {\n      if (operationLoader != null) {\n        !(typeof operationLoader === 'object' && typeof operationLoader.get === 'function' && typeof operationLoader.load === 'function') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernEnvironment: Expected `operationLoader` to be an object ' + 'with get() and load() functions, got `%s`.', operationLoader) : invariant(false) : void 0;\n      }\n    }\n    this.__log = (_config$log = config.log) !== null && _config$log !== void 0 ? _config$log : emptyFunction;\n    this.relayFieldLogger = (_config$relayFieldLog = config.relayFieldLogger) !== null && _config$relayFieldLog !== void 0 ? _config$relayFieldLog : defaultRelayFieldLogger;\n    this._defaultRenderPolicy = (_config$UNSTABLE_defa = config.UNSTABLE_defaultRenderPolicy) !== null && _config$UNSTABLE_defa !== void 0 ? _config$UNSTABLE_defa : 'partial';\n    this._operationLoader = operationLoader;\n    this._operationExecutions = new Map();\n    this._network = wrapNetworkWithLogObserver(this, config.network);\n    this._getDataID = (_config$getDataID = config.getDataID) !== null && _config$getDataID !== void 0 ? _config$getDataID : defaultGetDataID;\n    this._missingFieldHandlers = (_config$missingFieldH = config.missingFieldHandlers) !== null && _config$missingFieldH !== void 0 ? _config$missingFieldH : [];\n    this._publishQueue = new RelayPublishQueue(config.store, (_config$handlerProvid = config.handlerProvider) !== null && _config$handlerProvid !== void 0 ? _config$handlerProvid : RelayDefaultHandlerProvider, this._getDataID, this._missingFieldHandlers);\n    this._scheduler = (_config$scheduler = config.scheduler) !== null && _config$scheduler !== void 0 ? _config$scheduler : null;\n    this._store = config.store;\n    this.options = config.options;\n    this._isServer = (_config$isServer = config.isServer) !== null && _config$isServer !== void 0 ? _config$isServer : false;\n    this._normalizeResponse = (_config$normalizeResp = config.normalizeResponse) !== null && _config$normalizeResp !== void 0 ? _config$normalizeResp : normalizeResponse;\n    this.__setNet = function (newNet) {\n      return _this._network = wrapNetworkWithLogObserver(_this, newNet);\n    };\n    if (process.env.NODE_ENV !== \"production\") {\n      var _require2 = require('./StoreInspector'),\n        inspect = _require2.inspect;\n      this.DEBUG_inspect = function (dataID) {\n        return inspect(_this, dataID);\n      };\n    }\n    this._operationTracker = (_config$operationTrac = config.operationTracker) !== null && _config$operationTrac !== void 0 ? _config$operationTrac : new RelayOperationTracker();\n    this._shouldProcessClientComponents = config.shouldProcessClientComponents;\n    registerEnvironmentWithDevTools(this);\n  }\n  var _proto = RelayModernEnvironment.prototype;\n  _proto.getStore = function getStore() {\n    return this._store;\n  };\n  _proto.getNetwork = function getNetwork() {\n    return this._network;\n  };\n  _proto.getOperationTracker = function getOperationTracker() {\n    return this._operationTracker;\n  };\n  _proto.getScheduler = function getScheduler() {\n    return this._scheduler;\n  };\n  _proto.isRequestActive = function isRequestActive(requestIdentifier) {\n    var activeState = this._operationExecutions.get(requestIdentifier);\n    return activeState === 'active';\n  };\n  _proto.UNSTABLE_getDefaultRenderPolicy = function UNSTABLE_getDefaultRenderPolicy() {\n    return this._defaultRenderPolicy;\n  };\n  _proto.applyUpdate = function applyUpdate(optimisticUpdate) {\n    var _this2 = this;\n    var dispose = function dispose() {\n      _this2._scheduleUpdates(function () {\n        _this2._publishQueue.revertUpdate(optimisticUpdate);\n        _this2._publishQueue.run();\n      });\n    };\n    this._scheduleUpdates(function () {\n      _this2._publishQueue.applyUpdate(optimisticUpdate);\n      _this2._publishQueue.run();\n    });\n    return {\n      dispose: dispose\n    };\n  };\n  _proto.revertUpdate = function revertUpdate(update) {\n    var _this3 = this;\n    this._scheduleUpdates(function () {\n      _this3._publishQueue.revertUpdate(update);\n      _this3._publishQueue.run();\n    });\n  };\n  _proto.replaceUpdate = function replaceUpdate(update, newUpdate) {\n    var _this4 = this;\n    this._scheduleUpdates(function () {\n      _this4._publishQueue.revertUpdate(update);\n      _this4._publishQueue.applyUpdate(newUpdate);\n      _this4._publishQueue.run();\n    });\n  };\n  _proto.applyMutation = function applyMutation(optimisticConfig) {\n    var subscription = this._execute({\n      createSource: function createSource() {\n        return RelayObservable.create(function (_sink) {});\n      },\n      isClientPayload: false,\n      operation: optimisticConfig.operation,\n      optimisticConfig: optimisticConfig,\n      updater: null\n    }).subscribe({});\n    return {\n      dispose: function dispose() {\n        return subscription.unsubscribe();\n      }\n    };\n  };\n  _proto.check = function check(operation) {\n    if (this._missingFieldHandlers.length === 0 && !operationHasClientAbstractTypes(operation)) {\n      return this._store.check(operation);\n    }\n    return this._checkSelectorAndHandleMissingFields(operation, this._missingFieldHandlers);\n  };\n  _proto.commitPayload = function commitPayload(operation, payload) {\n    this._execute({\n      createSource: function createSource() {\n        return RelayObservable.from({\n          data: payload\n        });\n      },\n      isClientPayload: true,\n      operation: operation,\n      optimisticConfig: null,\n      updater: null\n    }).subscribe({});\n  };\n  _proto.commitUpdate = function commitUpdate(updater) {\n    var _this5 = this;\n    this._scheduleUpdates(function () {\n      _this5._publishQueue.commitUpdate(updater);\n      _this5._publishQueue.run();\n    });\n  };\n  _proto.lookup = function lookup(readSelector) {\n    return this._store.lookup(readSelector);\n  };\n  _proto.subscribe = function subscribe(snapshot, callback) {\n    return this._store.subscribe(snapshot, callback);\n  };\n  _proto.retain = function retain(operation) {\n    return this._store.retain(operation);\n  };\n  _proto.isServer = function isServer() {\n    return this._isServer;\n  };\n  _proto._checkSelectorAndHandleMissingFields = function _checkSelectorAndHandleMissingFields(operation, handlers) {\n    var _this6 = this;\n    var target = RelayRecordSource.create();\n    var source = this._store.getSource();\n    var result = this._store.check(operation, {\n      handlers: handlers,\n      defaultActorIdentifier: INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE,\n      getSourceForActor: function getSourceForActor(actorIdentifier) {\n        assertInternalActorIdentifier(actorIdentifier);\n        return source;\n      },\n      getTargetForActor: function getTargetForActor(actorIdentifier) {\n        assertInternalActorIdentifier(actorIdentifier);\n        return target;\n      }\n    });\n    if (target.size() > 0) {\n      this._scheduleUpdates(function () {\n        _this6._publishQueue.commitSource(target);\n        _this6._publishQueue.run();\n      });\n    }\n    return result;\n  };\n  _proto._scheduleUpdates = function _scheduleUpdates(task) {\n    var scheduler = this._scheduler;\n    if (scheduler != null) {\n      scheduler.schedule(task);\n    } else {\n      task();\n    }\n  };\n  _proto.execute = function execute(_ref) {\n    var _this7 = this;\n    var operation = _ref.operation;\n    return this._execute({\n      createSource: function createSource() {\n        return _this7.getNetwork().execute(operation.request.node.params, operation.request.variables, operation.request.cacheConfig || {}, null);\n      },\n      isClientPayload: false,\n      operation: operation,\n      optimisticConfig: null,\n      updater: null\n    });\n  };\n  _proto.executeSubscription = function executeSubscription(_ref2) {\n    var _this8 = this;\n    var operation = _ref2.operation,\n      updater = _ref2.updater;\n    return this._execute({\n      createSource: function createSource() {\n        return _this8.getNetwork().execute(operation.request.node.params, operation.request.variables, operation.request.cacheConfig || {}, null);\n      },\n      isClientPayload: false,\n      operation: operation,\n      optimisticConfig: null,\n      updater: updater\n    });\n  };\n  _proto.executeMutation = function executeMutation(_ref3) {\n    var _this9 = this;\n    var operation = _ref3.operation,\n      optimisticResponse = _ref3.optimisticResponse,\n      optimisticUpdater = _ref3.optimisticUpdater,\n      updater = _ref3.updater,\n      uploadables = _ref3.uploadables;\n    var optimisticConfig;\n    if (optimisticResponse || optimisticUpdater) {\n      optimisticConfig = {\n        operation: operation,\n        response: optimisticResponse,\n        updater: optimisticUpdater\n      };\n    }\n    return this._execute({\n      createSource: function createSource() {\n        return _this9.getNetwork().execute(operation.request.node.params, operation.request.variables, (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, operation.request.cacheConfig), {}, {\n          force: true\n        }), uploadables);\n      },\n      isClientPayload: false,\n      operation: operation,\n      optimisticConfig: optimisticConfig,\n      updater: updater\n    });\n  };\n  _proto.executeWithSource = function executeWithSource(_ref4) {\n    var operation = _ref4.operation,\n      source = _ref4.source;\n    return this._execute({\n      createSource: function createSource() {\n        return source;\n      },\n      isClientPayload: false,\n      operation: operation,\n      optimisticConfig: null,\n      updater: null\n    });\n  };\n  _proto.toJSON = function toJSON() {\n    var _this$configName;\n    return \"RelayModernEnvironment(\".concat((_this$configName = this.configName) !== null && _this$configName !== void 0 ? _this$configName : '', \")\");\n  };\n  _proto._execute = function _execute(_ref5) {\n    var _this10 = this;\n    var createSource = _ref5.createSource,\n      isClientPayload = _ref5.isClientPayload,\n      operation = _ref5.operation,\n      optimisticConfig = _ref5.optimisticConfig,\n      updater = _ref5.updater;\n    var publishQueue = this._publishQueue;\n    var store = this._store;\n    return RelayObservable.create(function (sink) {\n      var executor = OperationExecutor.execute({\n        actorIdentifier: INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE,\n        getDataID: _this10._getDataID,\n        isClientPayload: isClientPayload,\n        log: _this10.__log,\n        operation: operation,\n        operationExecutions: _this10._operationExecutions,\n        operationLoader: _this10._operationLoader,\n        operationTracker: _this10._operationTracker,\n        optimisticConfig: optimisticConfig,\n        getPublishQueue: function getPublishQueue(actorIdentifier) {\n          assertInternalActorIdentifier(actorIdentifier);\n          return publishQueue;\n        },\n        scheduler: _this10._scheduler,\n        shouldProcessClientComponents: _this10._shouldProcessClientComponents,\n        sink: sink,\n        source: createSource(),\n        getStore: function getStore(actorIdentifier) {\n          assertInternalActorIdentifier(actorIdentifier);\n          return store;\n        },\n        treatMissingFieldsAsNull: _this10._treatMissingFieldsAsNull,\n        updater: updater,\n        normalizeResponse: _this10._normalizeResponse\n      });\n      return function () {\n        return executor.cancel();\n      };\n    });\n  };\n  return RelayModernEnvironment;\n}();\nfunction operationHasClientAbstractTypes(operation) {\n  return operation.root.node.kind === 'Operation' && operation.root.node.clientAbstractTypes != null;\n}\nRelayModernEnvironment.prototype['@@RelayModernEnvironment'] = true;\nfunction emptyFunction() {}\nmodule.exports = RelayModernEnvironment;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar getPendingOperationsForFragment = require('../util/getPendingOperationsForFragment');\nvar handlePotentialSnapshotErrors = require('../util/handlePotentialSnapshotErrors');\nvar isScalarAndEqual = require('../util/isScalarAndEqual');\nvar recycleNodesInto = require('../util/recycleNodesInto');\nvar RelayFeatureFlags = require('../util/RelayFeatureFlags');\nvar _require = require('./RelayModernOperationDescriptor'),\n  createRequestDescriptor = _require.createRequestDescriptor;\nvar _require2 = require('./RelayModernSelector'),\n  areEqualSelectors = _require2.areEqualSelectors,\n  createReaderSelector = _require2.createReaderSelector,\n  getSelectorsFromObject = _require2.getSelectorsFromObject;\nvar areEqual = require(\"fbjs/lib/areEqual\");\nvar invariant = require('invariant');\nvar warning = require(\"fbjs/lib/warning\");\nvar RelayModernFragmentSpecResolver = /*#__PURE__*/function () {\n  function RelayModernFragmentSpecResolver(context, fragments, props, callback, rootIsQueryRenderer) {\n    var _this = this;\n    (0, _defineProperty2[\"default\"])(this, \"_onChange\", function () {\n      _this._stale = true;\n      if (typeof _this._callback === 'function') {\n        _this._callback();\n      }\n    });\n    this._callback = callback;\n    this._context = context;\n    this._data = {};\n    this._fragments = fragments;\n    this._props = {};\n    this._resolvers = {};\n    this._stale = false;\n    this._rootIsQueryRenderer = rootIsQueryRenderer;\n    this.setProps(props);\n  }\n  var _proto = RelayModernFragmentSpecResolver.prototype;\n  _proto.dispose = function dispose() {\n    for (var key in this._resolvers) {\n      if (this._resolvers.hasOwnProperty(key)) {\n        disposeCallback(this._resolvers[key]);\n      }\n    }\n  };\n  _proto.resolve = function resolve() {\n    if (this._stale) {\n      var prevData = this._data;\n      var nextData;\n      for (var key in this._resolvers) {\n        if (this._resolvers.hasOwnProperty(key)) {\n          var resolver = this._resolvers[key];\n          var prevItem = prevData[key];\n          if (resolver) {\n            var nextItem = resolver.resolve();\n            if (nextData || nextItem !== prevItem) {\n              nextData = nextData || (0, _objectSpread2[\"default\"])({}, prevData);\n              nextData[key] = nextItem;\n            }\n          } else {\n            var prop = this._props[key];\n            var _nextItem = prop !== undefined ? prop : null;\n            if (nextData || !isScalarAndEqual(_nextItem, prevItem)) {\n              nextData = nextData || (0, _objectSpread2[\"default\"])({}, prevData);\n              nextData[key] = _nextItem;\n            }\n          }\n        }\n      }\n      this._data = nextData || prevData;\n      this._stale = false;\n    }\n    return this._data;\n  };\n  _proto.setCallback = function setCallback(props, callback) {\n    this._callback = callback;\n    if (RelayFeatureFlags.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT === true) {\n      this.setProps(props);\n    }\n  };\n  _proto.setProps = function setProps(props) {\n    this._props = {};\n    var ownedSelectors = getSelectorsFromObject(this._fragments, props);\n    for (var key in ownedSelectors) {\n      if (ownedSelectors.hasOwnProperty(key)) {\n        var ownedSelector = ownedSelectors[key];\n        var resolver = this._resolvers[key];\n        if (ownedSelector == null) {\n          if (resolver != null) {\n            resolver.dispose();\n          }\n          resolver = null;\n        } else if (ownedSelector.kind === 'PluralReaderSelector') {\n          if (resolver == null) {\n            resolver = new SelectorListResolver(this._context.environment, this._rootIsQueryRenderer, ownedSelector, this._callback != null, this._onChange);\n          } else {\n            !(resolver instanceof SelectorListResolver) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernFragmentSpecResolver: Expected prop `%s` to always be an array.', key) : invariant(false) : void 0;\n            resolver.setSelector(ownedSelector);\n          }\n        } else {\n          if (resolver == null) {\n            resolver = new SelectorResolver(this._context.environment, this._rootIsQueryRenderer, ownedSelector, this._callback != null, this._onChange);\n          } else {\n            !(resolver instanceof SelectorResolver) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernFragmentSpecResolver: Expected prop `%s` to always be an object.', key) : invariant(false) : void 0;\n            resolver.setSelector(ownedSelector);\n          }\n        }\n        this._props[key] = props[key];\n        this._resolvers[key] = resolver;\n      }\n    }\n    this._stale = true;\n  };\n  _proto.setVariables = function setVariables(variables, request) {\n    for (var key in this._resolvers) {\n      if (this._resolvers.hasOwnProperty(key)) {\n        var resolver = this._resolvers[key];\n        if (resolver) {\n          resolver.setVariables(variables, request);\n        }\n      }\n    }\n    this._stale = true;\n  };\n  return RelayModernFragmentSpecResolver;\n}();\nvar SelectorResolver = /*#__PURE__*/function () {\n  function SelectorResolver(environment, rootIsQueryRenderer, selector, subscribeOnConstruction, callback) {\n    var _this2 = this;\n    (0, _defineProperty2[\"default\"])(this, \"_onChange\", function (snapshot) {\n      _this2._data = snapshot.data;\n      _this2._isMissingData = snapshot.isMissingData;\n      _this2._missingRequiredFields = snapshot.missingRequiredFields;\n      _this2._errorResponseFields = snapshot.errorResponseFields;\n      _this2._relayResolverErrors = snapshot.relayResolverErrors;\n      _this2._callback();\n    });\n    var _snapshot = environment.lookup(selector);\n    this._callback = callback;\n    this._data = _snapshot.data;\n    this._isMissingData = _snapshot.isMissingData;\n    this._missingRequiredFields = _snapshot.missingRequiredFields;\n    this._errorResponseFields = _snapshot.errorResponseFields;\n    this._relayResolverErrors = _snapshot.relayResolverErrors;\n    this._environment = environment;\n    this._rootIsQueryRenderer = rootIsQueryRenderer;\n    this._selector = selector;\n    if (RelayFeatureFlags.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT === true) {\n      if (subscribeOnConstruction) {\n        this._subscription = environment.subscribe(_snapshot, this._onChange);\n      }\n    } else {\n      this._subscription = environment.subscribe(_snapshot, this._onChange);\n    }\n  }\n  var _proto2 = SelectorResolver.prototype;\n  _proto2.dispose = function dispose() {\n    if (this._subscription) {\n      this._subscription.dispose();\n      this._subscription = null;\n    }\n  };\n  _proto2.resolve = function resolve() {\n    if (this._isMissingData === true) {\n      var pendingOperationsResult = getPendingOperationsForFragment(this._environment, this._selector.node, this._selector.owner);\n      var promise = pendingOperationsResult === null || pendingOperationsResult === void 0 ? void 0 : pendingOperationsResult.promise;\n      if (promise != null) {\n        if (this._rootIsQueryRenderer) {\n          process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Relay Container for fragment `%s` has missing data and ' + 'would suspend. When using features such as @defer or @module, ' + 'use `useFragment` instead of a Relay Container.', this._selector.node.name) : void 0;\n        } else {\n          var _pendingOperationsRes;\n          var pendingOperations = (_pendingOperationsRes = pendingOperationsResult === null || pendingOperationsResult === void 0 ? void 0 : pendingOperationsResult.pendingOperations) !== null && _pendingOperationsRes !== void 0 ? _pendingOperationsRes : [];\n          process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Relay Container for fragment `%s` suspended. When using ' + 'features such as @defer or @module, use `useFragment` instead ' + 'of a Relay Container.', this._selector.node.name) : void 0;\n          this._environment.__log({\n            name: 'suspense.fragment',\n            data: this._data,\n            fragment: this._selector.node,\n            isRelayHooks: false,\n            isMissingData: this._isMissingData,\n            isPromiseCached: false,\n            pendingOperations: pendingOperations\n          });\n          throw promise;\n        }\n      }\n    }\n    handlePotentialSnapshotErrors(this._environment, this._missingRequiredFields, this._relayResolverErrors, this._errorResponseFields);\n    return this._data;\n  };\n  _proto2.setSelector = function setSelector(selector) {\n    if (this._subscription != null && areEqualSelectors(selector, this._selector)) {\n      return;\n    }\n    this.dispose();\n    var snapshot = this._environment.lookup(selector);\n    this._data = recycleNodesInto(this._data, snapshot.data);\n    this._isMissingData = snapshot.isMissingData;\n    this._missingRequiredFields = snapshot.missingRequiredFields;\n    this._errorResponseFields = snapshot.errorResponseFields;\n    this._relayResolverErrors = snapshot.relayResolverErrors;\n    this._selector = selector;\n    this._subscription = this._environment.subscribe(snapshot, this._onChange);\n  };\n  _proto2.setVariables = function setVariables(variables, request) {\n    if (areEqual(variables, this._selector.variables)) {\n      return;\n    }\n    var requestDescriptor = createRequestDescriptor(request, variables);\n    var selector = createReaderSelector(this._selector.node, this._selector.dataID, variables, requestDescriptor);\n    this.setSelector(selector);\n  };\n  return SelectorResolver;\n}();\nvar SelectorListResolver = /*#__PURE__*/function () {\n  function SelectorListResolver(environment, rootIsQueryRenderer, selector, subscribeOnConstruction, callback) {\n    var _this3 = this;\n    (0, _defineProperty2[\"default\"])(this, \"_onChange\", function (data) {\n      _this3._stale = true;\n      _this3._callback();\n    });\n    this._callback = callback;\n    this._data = [];\n    this._environment = environment;\n    this._resolvers = [];\n    this._stale = true;\n    this._rootIsQueryRenderer = rootIsQueryRenderer;\n    this._subscribeOnConstruction = subscribeOnConstruction;\n    this.setSelector(selector);\n  }\n  var _proto3 = SelectorListResolver.prototype;\n  _proto3.dispose = function dispose() {\n    this._resolvers.forEach(disposeCallback);\n  };\n  _proto3.resolve = function resolve() {\n    if (this._stale) {\n      var prevData = this._data;\n      var nextData;\n      for (var ii = 0; ii < this._resolvers.length; ii++) {\n        var prevItem = prevData[ii];\n        var nextItem = this._resolvers[ii].resolve();\n        if (nextData || nextItem !== prevItem) {\n          nextData = nextData || prevData.slice(0, ii);\n          nextData.push(nextItem);\n        }\n      }\n      if (!nextData && this._resolvers.length !== prevData.length) {\n        nextData = prevData.slice(0, this._resolvers.length);\n      }\n      this._data = nextData || prevData;\n      this._stale = false;\n    }\n    return this._data;\n  };\n  _proto3.setSelector = function setSelector(selector) {\n    var selectors = selector.selectors;\n    while (this._resolvers.length > selectors.length) {\n      var resolver = this._resolvers.pop();\n      resolver.dispose();\n    }\n    for (var ii = 0; ii < selectors.length; ii++) {\n      if (ii < this._resolvers.length) {\n        this._resolvers[ii].setSelector(selectors[ii]);\n      } else {\n        this._resolvers[ii] = new SelectorResolver(this._environment, this._rootIsQueryRenderer, selectors[ii], this._subscribeOnConstruction, this._onChange);\n      }\n    }\n    this._stale = true;\n  };\n  _proto3.setVariables = function setVariables(variables, request) {\n    this._resolvers.forEach(function (resolver) {\n      return resolver.setVariables(variables, request);\n    });\n    this._stale = true;\n  };\n  return SelectorListResolver;\n}();\nfunction disposeCallback(disposable) {\n  disposable && disposable.dispose();\n}\nmodule.exports = RelayModernFragmentSpecResolver;","'use strict';\n\nvar deepFreeze = require('../util/deepFreeze');\nvar getRequestIdentifier = require('../util/getRequestIdentifier');\nvar _require = require('./RelayConcreteVariables'),\n  getOperationVariables = _require.getOperationVariables;\nvar _require2 = require('./RelayModernSelector'),\n  createNormalizationSelector = _require2.createNormalizationSelector,\n  createReaderSelector = _require2.createReaderSelector;\nvar _require3 = require('./RelayStoreUtils'),\n  ROOT_ID = _require3.ROOT_ID;\nfunction createOperationDescriptor(request, variables, cacheConfig) {\n  var dataID = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ROOT_ID;\n  var operation = request.operation;\n  var operationVariables = getOperationVariables(operation, request.params.providedVariables, variables);\n  var requestDescriptor = createRequestDescriptor(request, operationVariables, cacheConfig);\n  var operationDescriptor = {\n    fragment: createReaderSelector(request.fragment, dataID, operationVariables, requestDescriptor),\n    request: requestDescriptor,\n    root: createNormalizationSelector(operation, dataID, operationVariables)\n  };\n  if (process.env.NODE_ENV !== \"production\") {\n    Object.freeze(operationDescriptor.fragment);\n    Object.freeze(operationDescriptor.root);\n    Object.freeze(operationDescriptor);\n  }\n  return operationDescriptor;\n}\nfunction createRequestDescriptor(request, variables, cacheConfig) {\n  var requestDescriptor = {\n    identifier: getRequestIdentifier(request.params, variables),\n    node: request,\n    variables: variables,\n    cacheConfig: cacheConfig\n  };\n  if (process.env.NODE_ENV !== \"production\") {\n    deepFreeze(variables);\n    Object.freeze(request);\n    Object.freeze(requestDescriptor);\n  }\n  return requestDescriptor;\n}\nmodule.exports = {\n  createOperationDescriptor: createOperationDescriptor,\n  createRequestDescriptor: createRequestDescriptor\n};","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\nvar _toPropertyKey2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toPropertyKey\"));\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar deepFreeze = require('../util/deepFreeze');\nvar _require = require('./ClientID'),\n  generateClientObjectClientID = _require.generateClientObjectClientID,\n  isClientID = _require.isClientID;\nvar _require2 = require('./experimental-live-resolvers/LiveResolverSuspenseSentinel'),\n  isSuspenseSentinel = _require2.isSuspenseSentinel;\nvar _require3 = require('./RelayStoreUtils'),\n  ACTOR_IDENTIFIER_KEY = _require3.ACTOR_IDENTIFIER_KEY,\n  ERRORS_KEY = _require3.ERRORS_KEY,\n  ID_KEY = _require3.ID_KEY,\n  INVALIDATED_AT_KEY = _require3.INVALIDATED_AT_KEY,\n  REF_KEY = _require3.REF_KEY,\n  REFS_KEY = _require3.REFS_KEY,\n  RELAY_RESOLVER_VALUE_KEY = _require3.RELAY_RESOLVER_VALUE_KEY,\n  ROOT_ID = _require3.ROOT_ID,\n  TYPENAME_KEY = _require3.TYPENAME_KEY;\nvar areEqual = require(\"fbjs/lib/areEqual\");\nvar invariant = require('invariant');\nvar warning = require(\"fbjs/lib/warning\");\nfunction clone(record) {\n  return (0, _objectSpread2[\"default\"])({}, record);\n}\nfunction copyFields(source, sink) {\n  for (var key in source) {\n    if (source.hasOwnProperty(key)) {\n      if (key !== ID_KEY && key !== TYPENAME_KEY) {\n        sink[key] = source[key];\n      }\n    }\n  }\n}\nfunction create(dataID, typeName) {\n  var record = {};\n  record[ID_KEY] = dataID;\n  record[TYPENAME_KEY] = typeName;\n  return record;\n}\nfunction fromObject(json) {\n  return json;\n}\nfunction getDataID(record) {\n  return record[ID_KEY];\n}\nfunction getFields(record) {\n  if (ERRORS_KEY in record) {\n    return Object.keys(record).filter(function (field) {\n      return field !== ERRORS_KEY;\n    });\n  }\n  return Object.keys(record);\n}\nfunction getType(record) {\n  return record[TYPENAME_KEY];\n}\nfunction getErrors(record, storageKey) {\n  var _record$ERRORS_KEY;\n  return (_record$ERRORS_KEY = record[ERRORS_KEY]) === null || _record$ERRORS_KEY === void 0 ? void 0 : _record$ERRORS_KEY[storageKey];\n}\nfunction getValue(record, storageKey) {\n  var value = record[storageKey];\n  if (value && typeof value === 'object') {\n    !(!value.hasOwnProperty(REF_KEY) && !value.hasOwnProperty(REFS_KEY)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernRecord.getValue(): Expected a scalar (non-link) value for `%s.%s` ' + 'but found %s.', record[ID_KEY], storageKey, value.hasOwnProperty(REF_KEY) ? 'a linked record' : 'plural linked records') : invariant(false) : void 0;\n  }\n  return value;\n}\nfunction hasValue(record, storageKey) {\n  return storageKey in record;\n}\nfunction getLinkedRecordID(record, storageKey) {\n  var maybeLink = record[storageKey];\n  if (maybeLink == null) {\n    return maybeLink;\n  }\n  var link = maybeLink;\n  !(typeof link === 'object' && link && typeof link[REF_KEY] === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernRecord.getLinkedRecordID(): Expected `%s.%s` to be a linked ID, ' + 'was `%s`.%s', record[ID_KEY], storageKey, JSON.stringify(link), typeof link === 'object' && link[REFS_KEY] !== undefined ? ' It appears to be a plural linked record: did you mean to call ' + 'getLinkedRecords() instead of getLinkedRecord()?' : '') : invariant(false) : void 0;\n  return link[REF_KEY];\n}\nfunction hasLinkedRecordID(record, storageKey) {\n  var maybeLink = record[storageKey];\n  if (maybeLink == null) {\n    return false;\n  }\n  var link = maybeLink;\n  return typeof link === 'object' && link && typeof link[REF_KEY] === 'string';\n}\nfunction getLinkedRecordIDs(record, storageKey) {\n  var links = record[storageKey];\n  if (links == null) {\n    return links;\n  }\n  !(typeof links === 'object' && Array.isArray(links[REFS_KEY])) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernRecord.getLinkedRecordIDs(): Expected `%s.%s` to contain an array ' + 'of linked IDs, got `%s`.%s', record[ID_KEY], storageKey, JSON.stringify(links), typeof links === 'object' && links[REF_KEY] !== undefined ? ' It appears to be a singular linked record: did you mean to call ' + 'getLinkedRecord() instead of getLinkedRecords()?' : '') : invariant(false) : void 0;\n  return links[REFS_KEY];\n}\nfunction hasLinkedRecordIDs(record, storageKey) {\n  var links = record[storageKey];\n  if (links == null) {\n    return false;\n  }\n  return typeof links === 'object' && Array.isArray(links[REFS_KEY]) && links[REFS_KEY].every(function (link) {\n    return typeof link === 'string';\n  });\n}\nfunction getInvalidationEpoch(record) {\n  if (record == null) {\n    return null;\n  }\n  var invalidatedAt = record[INVALIDATED_AT_KEY];\n  if (typeof invalidatedAt !== 'number') {\n    return null;\n  }\n  return invalidatedAt;\n}\nfunction update(prevRecord, nextRecord) {\n  var _updated2;\n  if (process.env.NODE_ENV !== \"production\") {\n    var _getType, _getType2;\n    var prevID = getDataID(prevRecord);\n    var nextID = getDataID(nextRecord);\n    process.env.NODE_ENV !== \"production\" ? warning(prevID === nextID, 'RelayModernRecord: Invalid record update, expected both versions of ' + 'the record to have the same id, got `%s` and `%s`.', prevID, nextID) : void 0;\n    var prevType = (_getType = getType(prevRecord)) !== null && _getType !== void 0 ? _getType : null;\n    var nextType = (_getType2 = getType(nextRecord)) !== null && _getType2 !== void 0 ? _getType2 : null;\n    process.env.NODE_ENV !== \"production\" ? warning(isClientID(nextID) && nextID !== ROOT_ID || prevType === nextType, 'RelayModernRecord: Invalid record update, expected both versions of ' + 'record `%s` to have the same `%s` but got conflicting types `%s` ' + 'and `%s`. The GraphQL server likely violated the globally unique ' + 'id requirement by returning the same id for different objects.', prevID, TYPENAME_KEY, prevType, nextType) : void 0;\n  }\n  var prevErrorsByKey = prevRecord[ERRORS_KEY];\n  var nextErrorsByKey = nextRecord[ERRORS_KEY];\n  var updated = null;\n  if (prevErrorsByKey == null && nextErrorsByKey == null) {\n    var _updated;\n    for (var storageKey in nextRecord) {\n      if (updated || !areEqual(prevRecord[storageKey], nextRecord[storageKey])) {\n        updated = updated !== null ? updated : (0, _objectSpread2[\"default\"])({}, prevRecord);\n        updated[storageKey] = nextRecord[storageKey];\n      }\n    }\n    return (_updated = updated) !== null && _updated !== void 0 ? _updated : prevRecord;\n  }\n  for (var _storageKey2 in nextRecord) {\n    if (_storageKey2 === ERRORS_KEY) {\n      continue;\n    }\n    var nextValue = nextRecord[_storageKey2];\n    var nextErrors = nextErrorsByKey === null || nextErrorsByKey === void 0 ? void 0 : nextErrorsByKey[_storageKey2];\n    if (updated == null) {\n      var prevValue = prevRecord[_storageKey2];\n      var prevErrors = prevErrorsByKey === null || prevErrorsByKey === void 0 ? void 0 : prevErrorsByKey[_storageKey2];\n      if (areEqual(prevValue, nextValue) && areEqual(prevErrors, nextErrors)) {\n        continue;\n      }\n      updated = (0, _objectSpread2[\"default\"])({}, prevRecord);\n      if (prevErrorsByKey != null) {\n        updated[ERRORS_KEY] = (0, _objectSpread2[\"default\"])({}, prevErrorsByKey);\n      }\n    }\n    setValue(updated, _storageKey2, nextValue);\n    setErrors(updated, _storageKey2, nextErrors);\n  }\n  return (_updated2 = updated) !== null && _updated2 !== void 0 ? _updated2 : prevRecord;\n}\nfunction merge(record1, record2) {\n  if (process.env.NODE_ENV !== \"production\") {\n    var _getType3, _getType4;\n    var prevID = getDataID(record1);\n    var nextID = getDataID(record2);\n    process.env.NODE_ENV !== \"production\" ? warning(prevID === nextID, 'RelayModernRecord: Invalid record merge, expected both versions of ' + 'the record to have the same id, got `%s` and `%s`.', prevID, nextID) : void 0;\n    var prevType = (_getType3 = getType(record1)) !== null && _getType3 !== void 0 ? _getType3 : null;\n    var nextType = (_getType4 = getType(record2)) !== null && _getType4 !== void 0 ? _getType4 : null;\n    process.env.NODE_ENV !== \"production\" ? warning(isClientID(nextID) && nextID !== ROOT_ID || prevType === nextType, 'RelayModernRecord: Invalid record merge, expected both versions of ' + 'record `%s` to have the same `%s` but got conflicting types `%s` ' + 'and `%s`. The GraphQL server likely violated the globally unique ' + 'id requirement by returning the same id for different objects.', prevID, TYPENAME_KEY, prevType, nextType) : void 0;\n  }\n  if (ERRORS_KEY in record1 || ERRORS_KEY in record2) {\n    var errors1 = record1[ERRORS_KEY],\n      fields1 = (0, _objectWithoutPropertiesLoose2[\"default\"])(record1, [ERRORS_KEY].map(_toPropertyKey2[\"default\"]));\n    var errors2 = record2[ERRORS_KEY],\n      fields2 = (0, _objectWithoutPropertiesLoose2[\"default\"])(record2, [ERRORS_KEY].map(_toPropertyKey2[\"default\"]));\n    var updated = (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, fields1), fields2);\n    if (errors1 == null && errors2 == null) {\n      return updated;\n    }\n    var updatedErrors = {};\n    for (var storageKey in errors1) {\n      if (fields2.hasOwnProperty(storageKey)) {\n        continue;\n      }\n      updatedErrors[storageKey] = errors1[storageKey];\n    }\n    for (var _storageKey3 in errors2) {\n      updatedErrors[_storageKey3] = errors2[_storageKey3];\n    }\n    for (var _storageKey in updatedErrors) {\n      updated[ERRORS_KEY] = updatedErrors;\n      break;\n    }\n    return updated;\n  } else {\n    return (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, record1), record2);\n  }\n}\nfunction freeze(record) {\n  deepFreeze(record);\n}\nfunction setErrors(record, storageKey, errors) {\n  if (process.env.NODE_ENV !== \"production\") {\n    process.env.NODE_ENV !== \"production\" ? warning(storageKey in record, 'RelayModernRecord: Invalid error update, `%s` should not be undefined.', storageKey) : void 0;\n  }\n  var errorsByStorageKey = record[ERRORS_KEY];\n  if (errors != null && errors.length > 0) {\n    if (errorsByStorageKey == null) {\n      record[ERRORS_KEY] = (0, _defineProperty2[\"default\"])({}, storageKey, errors);\n    } else {\n      errorsByStorageKey[storageKey] = errors;\n    }\n  } else if (errorsByStorageKey != null) {\n    if (delete errorsByStorageKey[storageKey]) {\n      for (var otherStorageKey in errorsByStorageKey) {\n        if (errorsByStorageKey.hasOwnProperty(otherStorageKey)) {\n          return;\n        }\n      }\n      delete record[ERRORS_KEY];\n    }\n  }\n}\nfunction setValue(record, storageKey, value) {\n  if (process.env.NODE_ENV !== \"production\") {\n    var prevID = getDataID(record);\n    if (storageKey === ID_KEY) {\n      process.env.NODE_ENV !== \"production\" ? warning(prevID === value, 'RelayModernRecord: Invalid field update, expected both versions of ' + 'the record to have the same id, got `%s` and `%s`.', prevID, value) : void 0;\n    } else if (storageKey === TYPENAME_KEY) {\n      var _getType5;\n      var prevType = (_getType5 = getType(record)) !== null && _getType5 !== void 0 ? _getType5 : null;\n      var nextType = value !== null && value !== void 0 ? value : null;\n      process.env.NODE_ENV !== \"production\" ? warning(isClientID(getDataID(record)) && getDataID(record) !== ROOT_ID || prevType === nextType, 'RelayModernRecord: Invalid field update, expected both versions of ' + 'record `%s` to have the same `%s` but got conflicting types `%s` ' + 'and `%s`. The GraphQL server likely violated the globally unique ' + 'id requirement by returning the same id for different objects.', prevID, TYPENAME_KEY, prevType, nextType) : void 0;\n    }\n  }\n  record[storageKey] = value;\n}\nfunction setLinkedRecordID(record, storageKey, linkedID) {\n  var link = {};\n  link[REF_KEY] = linkedID;\n  record[storageKey] = link;\n}\nfunction setLinkedRecordIDs(record, storageKey, linkedIDs) {\n  var links = {};\n  links[REFS_KEY] = linkedIDs;\n  record[storageKey] = links;\n}\nfunction setActorLinkedRecordID(record, storageKey, actorIdentifier, linkedID) {\n  var link = {};\n  link[REF_KEY] = linkedID;\n  link[ACTOR_IDENTIFIER_KEY] = actorIdentifier;\n  record[storageKey] = link;\n}\nfunction getActorLinkedRecordID(record, storageKey) {\n  var link = record[storageKey];\n  if (link == null) {\n    return link;\n  }\n  !(typeof link === 'object' && typeof link[REF_KEY] === 'string' && link[ACTOR_IDENTIFIER_KEY] != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernRecord.getActorLinkedRecordID(): Expected `%s.%s` to be an actor specific linked ID, ' + 'was `%s`.', record[ID_KEY], storageKey, JSON.stringify(link)) : invariant(false) : void 0;\n  return [link[ACTOR_IDENTIFIER_KEY], link[REF_KEY]];\n}\nfunction getResolverLinkedRecordID(record, typeName) {\n  var id = getValue(record, RELAY_RESOLVER_VALUE_KEY);\n  if (id == null || isSuspenseSentinel(id)) {\n    return null;\n  }\n  if (typeof id === 'object') {\n    id = id.id;\n  }\n  !(typeof id === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernRecord.getResolverLinkedRecordID(): Expected value to be a linked ID, ' + 'was `%s`.', JSON.stringify(id)) : invariant(false) : void 0;\n  return generateClientObjectClientID(typeName, id);\n}\nfunction getResolverLinkedRecordIDs(record, typeName) {\n  var resolverValue = getValue(record, RELAY_RESOLVER_VALUE_KEY);\n  if (resolverValue == null || isSuspenseSentinel(resolverValue)) {\n    return null;\n  }\n  !Array.isArray(resolverValue) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernRecord.getResolverLinkedRecordIDs(): Expected value to be an array of linked IDs, ' + 'was `%s`.', JSON.stringify(resolverValue)) : invariant(false) : void 0;\n  return resolverValue.map(function (id) {\n    if (id == null) {\n      return null;\n    }\n    if (typeof id === 'object') {\n      id = id.id;\n    }\n    !(typeof id === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernRecord.getResolverLinkedRecordIDs(): Expected item within resolver linked field to be a DataID, ' + 'was `%s`.', JSON.stringify(id)) : invariant(false) : void 0;\n    return generateClientObjectClientID(typeName, id);\n  });\n}\nfunction toJSON(record) {\n  return record;\n}\nmodule.exports = {\n  clone: clone,\n  copyFields: copyFields,\n  create: create,\n  freeze: freeze,\n  fromObject: fromObject,\n  getDataID: getDataID,\n  getErrors: getErrors,\n  getFields: getFields,\n  getInvalidationEpoch: getInvalidationEpoch,\n  getLinkedRecordID: getLinkedRecordID,\n  getLinkedRecordIDs: getLinkedRecordIDs,\n  getType: getType,\n  getValue: getValue,\n  hasValue: hasValue,\n  hasLinkedRecordID: hasLinkedRecordID,\n  hasLinkedRecordIDs: hasLinkedRecordIDs,\n  merge: merge,\n  setErrors: setErrors,\n  setValue: setValue,\n  setLinkedRecordID: setLinkedRecordID,\n  setLinkedRecordIDs: setLinkedRecordIDs,\n  update: update,\n  getActorLinkedRecordID: getActorLinkedRecordID,\n  setActorLinkedRecordID: setActorLinkedRecordID,\n  getResolverLinkedRecordID: getResolverLinkedRecordID,\n  getResolverLinkedRecordIDs: getResolverLinkedRecordIDs,\n  toJSON: toJSON\n};","'use strict';\n\nvar RelayFeatureFlags = require('../util/RelayFeatureFlags');\nvar _require = require('./RelayConcreteVariables'),\n  getFragmentVariables = _require.getFragmentVariables;\nvar _require2 = require('./RelayStoreUtils'),\n  CLIENT_EDGE_TRAVERSAL_PATH = _require2.CLIENT_EDGE_TRAVERSAL_PATH,\n  FRAGMENT_OWNER_KEY = _require2.FRAGMENT_OWNER_KEY,\n  FRAGMENT_POINTER_IS_WITHIN_UNMATCHED_TYPE_REFINEMENT = _require2.FRAGMENT_POINTER_IS_WITHIN_UNMATCHED_TYPE_REFINEMENT,\n  FRAGMENTS_KEY = _require2.FRAGMENTS_KEY,\n  ID_KEY = _require2.ID_KEY;\nvar areEqual = require(\"fbjs/lib/areEqual\");\nvar invariant = require('invariant');\nvar warning = require(\"fbjs/lib/warning\");\nfunction getSingularSelector(fragment, item) {\n  !(typeof item === 'object' && item !== null && !Array.isArray(item)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernSelector: Expected value for fragment `%s` to be an object, got ' + '`%s`.', fragment.name, JSON.stringify(item)) : invariant(false) : void 0;\n  var dataID = item[ID_KEY];\n  var fragments = item[FRAGMENTS_KEY];\n  var mixedOwner = item[FRAGMENT_OWNER_KEY];\n  var mixedClientEdgeTraversalPath = item[CLIENT_EDGE_TRAVERSAL_PATH];\n  if (typeof dataID === 'string' && typeof fragments === 'object' && fragments !== null && typeof fragments[fragment.name] === 'object' && fragments[fragment.name] !== null && typeof mixedOwner === 'object' && mixedOwner !== null && (mixedClientEdgeTraversalPath == null || Array.isArray(mixedClientEdgeTraversalPath))) {\n    var owner = mixedOwner;\n    var clientEdgeTraversalPath = mixedClientEdgeTraversalPath;\n    var argumentVariables = fragments[fragment.name];\n    var fragmentVariables = getFragmentVariables(fragment, owner.variables, argumentVariables);\n    var isWithinUnmatchedTypeRefinement = argumentVariables[FRAGMENT_POINTER_IS_WITHIN_UNMATCHED_TYPE_REFINEMENT] === true;\n    return createReaderSelector(fragment, dataID, fragmentVariables, owner, isWithinUnmatchedTypeRefinement, clientEdgeTraversalPath);\n  }\n  if (process.env.NODE_ENV !== \"production\") {\n    var stringifiedItem = JSON.stringify(item);\n    if (stringifiedItem.length > 499) {\n      stringifiedItem = stringifiedItem.substr(0, 498) + \"\\u2026\";\n    }\n    process.env.NODE_ENV !== \"production\" ? warning(false, 'RelayModernSelector: Expected object to contain data for fragment `%s`, got ' + '`%s`. Make sure that the parent operation/fragment included fragment ' + '`...%s` without `@relay(mask: false)`.', fragment.name, stringifiedItem, fragment.name) : void 0;\n  }\n  return null;\n}\nfunction getPluralSelector(fragment, items) {\n  var selectors = null;\n  items.forEach(function (item, ii) {\n    var selector = item != null ? getSingularSelector(fragment, item) : null;\n    if (selector != null) {\n      selectors = selectors || [];\n      selectors.push(selector);\n    }\n  });\n  if (selectors == null) {\n    return null;\n  } else {\n    return {\n      kind: 'PluralReaderSelector',\n      selectors: selectors\n    };\n  }\n}\nfunction getSelector(fragment, item) {\n  if (item == null) {\n    return item;\n  } else if (fragment.metadata && fragment.metadata.plural === true) {\n    !Array.isArray(item) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernSelector: Expected value for fragment `%s` to be an array, got `%s`. ' + 'Remove `@relay(plural: true)` from fragment `%s` to allow the prop to be an object.', fragment.name, JSON.stringify(item), fragment.name) : invariant(false) : void 0;\n    return getPluralSelector(fragment, item);\n  } else {\n    !!Array.isArray(item) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernSelector: Expected value for fragment `%s` to be an object, got `%s`. ' + 'Add `@relay(plural: true)` to fragment `%s` to allow the prop to be an array of items.', fragment.name, JSON.stringify(item), fragment.name) : invariant(false) : void 0;\n    return getSingularSelector(fragment, item);\n  }\n}\nfunction getSelectorsFromObject(fragments, object) {\n  var selectors = {};\n  for (var key in fragments) {\n    if (fragments.hasOwnProperty(key)) {\n      var fragment = fragments[key];\n      var item = object[key];\n      selectors[key] = getSelector(fragment, item);\n    }\n  }\n  return selectors;\n}\nfunction getDataIDsFromObject(fragments, object) {\n  var ids = {};\n  for (var key in fragments) {\n    if (fragments.hasOwnProperty(key)) {\n      var fragment = fragments[key];\n      var item = object[key];\n      ids[key] = getDataIDsFromFragment(fragment, item);\n    }\n  }\n  return ids;\n}\nfunction getDataIDsFromFragment(fragment, item) {\n  if (item == null) {\n    return item;\n  } else if (fragment.metadata && fragment.metadata.plural === true) {\n    !Array.isArray(item) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernSelector: Expected value for fragment `%s` to be an array, got `%s`. ' + 'Remove `@relay(plural: true)` from fragment `%s` to allow the prop to be an object.', fragment.name, JSON.stringify(item), fragment.name) : invariant(false) : void 0;\n    return getDataIDs(fragment, item);\n  } else {\n    !!Array.isArray(item) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernFragmentSpecResolver: Expected value for fragment `%s` to be an object, got `%s`. ' + 'Add `@relay(plural: true)` to fragment `%s` to allow the prop to be an array of items.', fragment.name, JSON.stringify(item), fragment.name) : invariant(false) : void 0;\n    return getDataID(fragment, item);\n  }\n}\nfunction getDataIDs(fragment, items) {\n  var ids = null;\n  items.forEach(function (item) {\n    var id = item != null ? getDataID(fragment, item) : null;\n    if (id != null) {\n      ids = ids || [];\n      ids.push(id);\n    }\n  });\n  return ids;\n}\nfunction getDataID(fragment, item) {\n  !(typeof item === 'object' && item !== null && !Array.isArray(item)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernSelector: Expected value for fragment `%s` to be an object, got ' + '`%s`.', fragment.name, JSON.stringify(item)) : invariant(false) : void 0;\n  var dataID = item[ID_KEY];\n  if (typeof dataID === 'string') {\n    return dataID;\n  }\n  process.env.NODE_ENV !== \"production\" ? warning(false, 'RelayModernSelector: Expected object to contain data for fragment `%s`, got ' + '`%s`. Make sure that the parent operation/fragment included fragment ' + '`...%s` without `@relay(mask: false)`, or `null` is passed as the fragment ' + \"reference for `%s` if it's conditonally included and the condition isn't met.\", fragment.name, JSON.stringify(item), fragment.name, fragment.name) : void 0;\n  return null;\n}\nfunction getVariablesFromObject(fragments, object) {\n  var variables = {};\n  for (var key in fragments) {\n    if (fragments.hasOwnProperty(key)) {\n      var fragment = fragments[key];\n      var item = object[key];\n      var itemVariables = getVariablesFromFragment(fragment, item);\n      Object.assign(variables, itemVariables);\n    }\n  }\n  return variables;\n}\nfunction getVariablesFromFragment(fragment, item) {\n  var _fragment$metadata;\n  if (item == null) {\n    return {};\n  } else if (((_fragment$metadata = fragment.metadata) === null || _fragment$metadata === void 0 ? void 0 : _fragment$metadata.plural) === true) {\n    !Array.isArray(item) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernSelector: Expected value for fragment `%s` to be an array, got `%s`. ' + 'Remove `@relay(plural: true)` from fragment `%s` to allow the prop to be an object.', fragment.name, JSON.stringify(item), fragment.name) : invariant(false) : void 0;\n    return getVariablesFromPluralFragment(fragment, item);\n  } else {\n    !!Array.isArray(item) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernFragmentSpecResolver: Expected value for fragment `%s` to be an object, got `%s`. ' + 'Add `@relay(plural: true)` to fragment `%s` to allow the prop to be an array of items.', fragment.name, JSON.stringify(item), fragment.name) : invariant(false) : void 0;\n    return getVariablesFromSingularFragment(fragment, item) || {};\n  }\n}\nfunction getVariablesFromSingularFragment(fragment, item) {\n  var selector = getSingularSelector(fragment, item);\n  if (!selector) {\n    return null;\n  }\n  return selector.variables;\n}\nfunction getVariablesFromPluralFragment(fragment, items) {\n  var variables = {};\n  items.forEach(function (value, ii) {\n    if (value != null) {\n      var itemVariables = getVariablesFromSingularFragment(fragment, value);\n      if (itemVariables != null) {\n        Object.assign(variables, itemVariables);\n      }\n    }\n  });\n  return variables;\n}\nfunction areEqualSingularSelectors(thisSelector, thatSelector) {\n  return thisSelector.dataID === thatSelector.dataID && thisSelector.node === thatSelector.node && areEqual(thisSelector.variables, thatSelector.variables) && areEqualOwners(thisSelector.owner, thatSelector.owner) && (!RelayFeatureFlags.ENABLE_STRICT_EQUAL_SELECTORS || thisSelector.isWithinUnmatchedTypeRefinement === thatSelector.isWithinUnmatchedTypeRefinement && areEqualClientEdgeTraversalPaths(thisSelector.clientEdgeTraversalPath, thatSelector.clientEdgeTraversalPath));\n}\nfunction areEqualOwners(thisOwner, thatOwner) {\n  if (thisOwner === thatOwner) {\n    return true;\n  } else {\n    return thisOwner.identifier === thatOwner.identifier && areEqual(thisOwner.cacheConfig, thatOwner.cacheConfig);\n  }\n}\nfunction areEqualClientEdgeTraversalPaths(thisPath, thatPath) {\n  if (thisPath === thatPath) {\n    return true;\n  }\n  if (thisPath == null || thatPath == null || thisPath.length !== thatPath.length) {\n    return false;\n  }\n  var idx = thisPath.length;\n  while (idx--) {\n    var a = thisPath[idx];\n    var b = thatPath[idx];\n    if (a === b) {\n      continue;\n    }\n    if (a == null || b == null || a.clientEdgeDestinationID !== b.clientEdgeDestinationID || a.readerClientEdge !== b.readerClientEdge) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction areEqualSelectors(a, b) {\n  if (a === b) {\n    return true;\n  } else if (a == null) {\n    return b == null;\n  } else if (b == null) {\n    return a == null;\n  } else if (a.kind === 'SingularReaderSelector' && b.kind === 'SingularReaderSelector') {\n    return areEqualSingularSelectors(a, b);\n  } else if (a.kind === 'PluralReaderSelector' && b.kind === 'PluralReaderSelector') {\n    return a.selectors.length === b.selectors.length && a.selectors.every(function (s, i) {\n      return areEqualSingularSelectors(s, b.selectors[i]);\n    });\n  } else {\n    return false;\n  }\n}\nfunction createReaderSelector(fragment, dataID, variables, request) {\n  var isWithinUnmatchedTypeRefinement = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n  var clientEdgeTraversalPath = arguments.length > 5 ? arguments[5] : undefined;\n  return {\n    kind: 'SingularReaderSelector',\n    dataID: dataID,\n    isWithinUnmatchedTypeRefinement: isWithinUnmatchedTypeRefinement,\n    clientEdgeTraversalPath: clientEdgeTraversalPath !== null && clientEdgeTraversalPath !== void 0 ? clientEdgeTraversalPath : null,\n    node: fragment,\n    variables: variables,\n    owner: request\n  };\n}\nfunction createNormalizationSelector(node, dataID, variables) {\n  return {\n    dataID: dataID,\n    node: node,\n    variables: variables\n  };\n}\nmodule.exports = {\n  areEqualSelectors: areEqualSelectors,\n  createReaderSelector: createReaderSelector,\n  createNormalizationSelector: createNormalizationSelector,\n  getDataIDsFromFragment: getDataIDsFromFragment,\n  getDataIDsFromObject: getDataIDsFromObject,\n  getSingularSelector: getSingularSelector,\n  getPluralSelector: getPluralSelector,\n  getSelector: getSelector,\n  getSelectorsFromObject: getSelectorsFromObject,\n  getVariablesFromSingularFragment: getVariablesFromSingularFragment,\n  getVariablesFromPluralFragment: getVariablesFromPluralFragment,\n  getVariablesFromFragment: getVariablesFromFragment,\n  getVariablesFromObject: getVariablesFromObject\n};","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _require = require('../multi-actor-environment/ActorIdentifier'),\n  INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE = _require.INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE,\n  assertInternalActorIdentifier = _require.assertInternalActorIdentifier;\nvar deepFreeze = require('../util/deepFreeze');\nvar RelayFeatureFlags = require('../util/RelayFeatureFlags');\nvar resolveImmediate = require('../util/resolveImmediate');\nvar DataChecker = require('./DataChecker');\nvar defaultGetDataID = require('./defaultGetDataID');\nvar RelayModernRecord = require('./RelayModernRecord');\nvar RelayOptimisticRecordSource = require('./RelayOptimisticRecordSource');\nvar RelayReader = require('./RelayReader');\nvar RelayReferenceMarker = require('./RelayReferenceMarker');\nvar RelayStoreSubscriptions = require('./RelayStoreSubscriptions');\nvar RelayStoreUtils = require('./RelayStoreUtils');\nvar _require2 = require('./RelayStoreUtils'),\n  ROOT_ID = _require2.ROOT_ID,\n  ROOT_TYPE = _require2.ROOT_TYPE;\nvar _require3 = require('./ResolverCache'),\n  RecordResolverCache = _require3.RecordResolverCache;\nvar invariant = require('invariant');\nvar DEFAULT_RELEASE_BUFFER_SIZE = 10;\nvar RelayModernStore = /*#__PURE__*/function () {\n  function RelayModernStore(source, options) {\n    var _this = this;\n    var _options$gcReleaseBuf, _options$gcScheduler, _options$getDataID, _options$log, _options$operationLoa;\n    (0, _defineProperty2[\"default\"])(this, \"_gcStep\", function () {\n      if (_this._gcRun) {\n        if (_this._gcRun.next().done) {\n          _this._gcRun = null;\n        } else {\n          _this._gcScheduler(_this._gcStep);\n        }\n      }\n    });\n    if (process.env.NODE_ENV !== \"production\") {\n      var storeIDs = source.getRecordIDs();\n      for (var ii = 0; ii < storeIDs.length; ii++) {\n        var record = source.get(storeIDs[ii]);\n        if (record) {\n          RelayModernRecord.freeze(record);\n        }\n      }\n    }\n    this._currentWriteEpoch = 0;\n    this._gcHoldCounter = 0;\n    this._gcReleaseBufferSize = (_options$gcReleaseBuf = options === null || options === void 0 ? void 0 : options.gcReleaseBufferSize) !== null && _options$gcReleaseBuf !== void 0 ? _options$gcReleaseBuf : DEFAULT_RELEASE_BUFFER_SIZE;\n    this._gcRun = null;\n    this._gcScheduler = (_options$gcScheduler = options === null || options === void 0 ? void 0 : options.gcScheduler) !== null && _options$gcScheduler !== void 0 ? _options$gcScheduler : resolveImmediate;\n    this._getDataID = (_options$getDataID = options === null || options === void 0 ? void 0 : options.getDataID) !== null && _options$getDataID !== void 0 ? _options$getDataID : defaultGetDataID;\n    this._globalInvalidationEpoch = null;\n    this._invalidationSubscriptions = new Set();\n    this._invalidatedRecordIDs = new Set();\n    this.__log = (_options$log = options === null || options === void 0 ? void 0 : options.log) !== null && _options$log !== void 0 ? _options$log : null;\n    this._queryCacheExpirationTime = options === null || options === void 0 ? void 0 : options.queryCacheExpirationTime;\n    this._operationLoader = (_options$operationLoa = options === null || options === void 0 ? void 0 : options.operationLoader) !== null && _options$operationLoa !== void 0 ? _options$operationLoa : null;\n    this._optimisticSource = null;\n    this._recordSource = source;\n    this._releaseBuffer = [];\n    this._roots = new Map();\n    this._shouldScheduleGC = false;\n    this._resolverCache = new RecordResolverCache(function () {\n      return _this._getMutableRecordSource();\n    });\n    this._storeSubscriptions = new RelayStoreSubscriptions(options === null || options === void 0 ? void 0 : options.log, this._resolverCache);\n    this._updatedRecordIDs = new Set();\n    this._shouldProcessClientComponents = options === null || options === void 0 ? void 0 : options.shouldProcessClientComponents;\n    initializeRecordSource(this._recordSource);\n  }\n  var _proto = RelayModernStore.prototype;\n  _proto.getSource = function getSource() {\n    var _this$_optimisticSour;\n    return (_this$_optimisticSour = this._optimisticSource) !== null && _this$_optimisticSour !== void 0 ? _this$_optimisticSour : this._recordSource;\n  };\n  _proto._getMutableRecordSource = function _getMutableRecordSource() {\n    var _this$_optimisticSour2;\n    return (_this$_optimisticSour2 = this._optimisticSource) !== null && _this$_optimisticSour2 !== void 0 ? _this$_optimisticSour2 : this._recordSource;\n  };\n  _proto.check = function check(operation, options) {\n    var _options$handlers, _options$getSourceFor, _options$getTargetFor, _options$defaultActor;\n    var selector = operation.root;\n    var source = this._getMutableRecordSource();\n    var globalInvalidationEpoch = this._globalInvalidationEpoch;\n    var rootEntry = this._roots.get(operation.request.identifier);\n    var operationLastWrittenAt = rootEntry != null ? rootEntry.epoch : null;\n    if (globalInvalidationEpoch != null) {\n      if (operationLastWrittenAt == null || operationLastWrittenAt <= globalInvalidationEpoch) {\n        return {\n          status: 'stale'\n        };\n      }\n    }\n    var handlers = (_options$handlers = options === null || options === void 0 ? void 0 : options.handlers) !== null && _options$handlers !== void 0 ? _options$handlers : [];\n    var getSourceForActor = (_options$getSourceFor = options === null || options === void 0 ? void 0 : options.getSourceForActor) !== null && _options$getSourceFor !== void 0 ? _options$getSourceFor : function (actorIdentifier) {\n      assertInternalActorIdentifier(actorIdentifier);\n      return source;\n    };\n    var getTargetForActor = (_options$getTargetFor = options === null || options === void 0 ? void 0 : options.getTargetForActor) !== null && _options$getTargetFor !== void 0 ? _options$getTargetFor : function (actorIdentifier) {\n      assertInternalActorIdentifier(actorIdentifier);\n      return source;\n    };\n    var operationAvailability = DataChecker.check(getSourceForActor, getTargetForActor, (_options$defaultActor = options === null || options === void 0 ? void 0 : options.defaultActorIdentifier) !== null && _options$defaultActor !== void 0 ? _options$defaultActor : INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE, selector, handlers, this._operationLoader, this._getDataID, this._shouldProcessClientComponents);\n    return getAvailabilityStatus(operationAvailability, operationLastWrittenAt, rootEntry === null || rootEntry === void 0 ? void 0 : rootEntry.fetchTime, this._queryCacheExpirationTime);\n  };\n  _proto.retain = function retain(operation) {\n    var _this2 = this;\n    var id = operation.request.identifier;\n    var disposed = false;\n    var dispose = function dispose() {\n      if (disposed) {\n        return;\n      }\n      disposed = true;\n      var rootEntry = _this2._roots.get(id);\n      if (rootEntry == null) {\n        return;\n      }\n      rootEntry.refCount--;\n      if (rootEntry.refCount === 0) {\n        var _queryCacheExpirationTime = _this2._queryCacheExpirationTime;\n        var rootEntryIsStale = rootEntry.fetchTime != null && _queryCacheExpirationTime != null && rootEntry.fetchTime <= Date.now() - _queryCacheExpirationTime;\n        if (rootEntryIsStale) {\n          _this2._roots[\"delete\"](id);\n          _this2.scheduleGC();\n        } else {\n          _this2._releaseBuffer.push(id);\n          if (_this2._releaseBuffer.length > _this2._gcReleaseBufferSize) {\n            var _id = _this2._releaseBuffer.shift();\n            _this2._roots[\"delete\"](_id);\n            _this2.scheduleGC();\n          }\n        }\n      }\n    };\n    var rootEntry = this._roots.get(id);\n    if (rootEntry != null) {\n      if (rootEntry.refCount === 0) {\n        this._releaseBuffer = this._releaseBuffer.filter(function (_id) {\n          return _id !== id;\n        });\n      }\n      rootEntry.refCount += 1;\n    } else {\n      this._roots.set(id, {\n        operation: operation,\n        refCount: 1,\n        epoch: null,\n        fetchTime: null\n      });\n    }\n    return {\n      dispose: dispose\n    };\n  };\n  _proto.lookup = function lookup(selector) {\n    var source = this.getSource();\n    var snapshot = RelayReader.read(source, selector, this._resolverCache);\n    if (process.env.NODE_ENV !== \"production\") {\n      deepFreeze(snapshot);\n    }\n    return snapshot;\n  };\n  _proto.notify = function notify(sourceOperation, invalidateStore) {\n    var _this3 = this;\n    var log = this.__log;\n    if (log != null) {\n      log({\n        name: 'store.notify.start',\n        sourceOperation: sourceOperation\n      });\n    }\n    this._currentWriteEpoch++;\n    if (invalidateStore === true) {\n      this._globalInvalidationEpoch = this._currentWriteEpoch;\n    }\n    if (RelayFeatureFlags.ENABLE_RELAY_RESOLVERS) {\n      this._resolverCache.invalidateDataIDs(this._updatedRecordIDs);\n    }\n    var source = this.getSource();\n    var updatedOwners = [];\n    this._storeSubscriptions.updateSubscriptions(source, this._updatedRecordIDs, updatedOwners, sourceOperation);\n    this._invalidationSubscriptions.forEach(function (subscription) {\n      _this3._updateInvalidationSubscription(subscription, invalidateStore === true);\n    });\n    if (log != null) {\n      log({\n        name: 'store.notify.complete',\n        sourceOperation: sourceOperation,\n        updatedRecordIDs: this._updatedRecordIDs,\n        invalidatedRecordIDs: this._invalidatedRecordIDs\n      });\n    }\n    this._updatedRecordIDs.clear();\n    this._invalidatedRecordIDs.clear();\n    if (sourceOperation != null) {\n      var id = sourceOperation.request.identifier;\n      var rootEntry = this._roots.get(id);\n      if (rootEntry != null) {\n        rootEntry.epoch = this._currentWriteEpoch;\n        rootEntry.fetchTime = Date.now();\n      } else if (sourceOperation.request.node.params.operationKind === 'query' && this._gcReleaseBufferSize > 0 && this._releaseBuffer.length < this._gcReleaseBufferSize) {\n        var temporaryRootEntry = {\n          operation: sourceOperation,\n          refCount: 0,\n          epoch: this._currentWriteEpoch,\n          fetchTime: Date.now()\n        };\n        this._releaseBuffer.push(id);\n        this._roots.set(id, temporaryRootEntry);\n      }\n    }\n    return updatedOwners;\n  };\n  _proto.publish = function publish(source, idsMarkedForInvalidation) {\n    var target = this._getMutableRecordSource();\n    updateTargetFromSource(target, source, this._currentWriteEpoch + 1, idsMarkedForInvalidation, this._updatedRecordIDs, this._invalidatedRecordIDs);\n    var log = this.__log;\n    if (log != null) {\n      log({\n        name: 'store.publish',\n        source: source,\n        optimistic: target === this._optimisticSource\n      });\n    }\n  };\n  _proto.subscribe = function subscribe(snapshot, callback) {\n    return this._storeSubscriptions.subscribe(snapshot, callback);\n  };\n  _proto.holdGC = function holdGC() {\n    var _this4 = this;\n    if (this._gcRun) {\n      this._gcRun = null;\n      this._shouldScheduleGC = true;\n    }\n    this._gcHoldCounter++;\n    var dispose = function dispose() {\n      if (_this4._gcHoldCounter > 0) {\n        _this4._gcHoldCounter--;\n        if (_this4._gcHoldCounter === 0 && _this4._shouldScheduleGC) {\n          _this4.scheduleGC();\n          _this4._shouldScheduleGC = false;\n        }\n      }\n    };\n    return {\n      dispose: dispose\n    };\n  };\n  _proto.toJSON = function toJSON() {\n    return 'RelayModernStore()';\n  };\n  _proto.getEpoch = function getEpoch() {\n    return this._currentWriteEpoch;\n  };\n  _proto.__getUpdatedRecordIDs = function __getUpdatedRecordIDs() {\n    return this._updatedRecordIDs;\n  };\n  _proto.lookupInvalidationState = function lookupInvalidationState(dataIDs) {\n    var _this5 = this;\n    var invalidations = new Map();\n    dataIDs.forEach(function (dataID) {\n      var _RelayModernRecord$ge;\n      var record = _this5.getSource().get(dataID);\n      invalidations.set(dataID, (_RelayModernRecord$ge = RelayModernRecord.getInvalidationEpoch(record)) !== null && _RelayModernRecord$ge !== void 0 ? _RelayModernRecord$ge : null);\n    });\n    invalidations.set('global', this._globalInvalidationEpoch);\n    return {\n      dataIDs: dataIDs,\n      invalidations: invalidations\n    };\n  };\n  _proto.checkInvalidationState = function checkInvalidationState(prevInvalidationState) {\n    var latestInvalidationState = this.lookupInvalidationState(prevInvalidationState.dataIDs);\n    var currentInvalidations = latestInvalidationState.invalidations;\n    var prevInvalidations = prevInvalidationState.invalidations;\n    if (currentInvalidations.get('global') !== prevInvalidations.get('global')) {\n      return true;\n    }\n    var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(prevInvalidationState.dataIDs),\n      _step;\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var dataID = _step.value;\n        if (currentInvalidations.get(dataID) !== prevInvalidations.get(dataID)) {\n          return true;\n        }\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n    return false;\n  };\n  _proto.subscribeToInvalidationState = function subscribeToInvalidationState(invalidationState, callback) {\n    var _this6 = this;\n    var subscription = {\n      callback: callback,\n      invalidationState: invalidationState\n    };\n    var dispose = function dispose() {\n      _this6._invalidationSubscriptions[\"delete\"](subscription);\n    };\n    this._invalidationSubscriptions.add(subscription);\n    return {\n      dispose: dispose\n    };\n  };\n  _proto._updateInvalidationSubscription = function _updateInvalidationSubscription(subscription, invalidatedStore) {\n    var _this7 = this;\n    var callback = subscription.callback,\n      invalidationState = subscription.invalidationState;\n    var dataIDs = invalidationState.dataIDs;\n    var isSubscribedToInvalidatedIDs = invalidatedStore || dataIDs.some(function (dataID) {\n      return _this7._invalidatedRecordIDs.has(dataID);\n    });\n    if (!isSubscribedToInvalidatedIDs) {\n      return;\n    }\n    callback();\n  };\n  _proto.snapshot = function snapshot() {\n    !(this._optimisticSource == null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernStore: Unexpected call to snapshot() while a previous ' + 'snapshot exists.') : invariant(false) : void 0;\n    var log = this.__log;\n    if (log != null) {\n      log({\n        name: 'store.snapshot'\n      });\n    }\n    this._storeSubscriptions.snapshotSubscriptions(this.getSource());\n    if (this._gcRun) {\n      this._gcRun = null;\n      this._shouldScheduleGC = true;\n    }\n    this._optimisticSource = RelayOptimisticRecordSource.create(this.getSource());\n  };\n  _proto.restore = function restore() {\n    !(this._optimisticSource != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernStore: Unexpected call to restore(), expected a snapshot ' + 'to exist (make sure to call snapshot()).') : invariant(false) : void 0;\n    var log = this.__log;\n    if (log != null) {\n      log({\n        name: 'store.restore'\n      });\n    }\n    this._optimisticSource = null;\n    if (this._shouldScheduleGC) {\n      this.scheduleGC();\n    }\n    this._storeSubscriptions.restoreSubscriptions();\n  };\n  _proto.scheduleGC = function scheduleGC() {\n    if (this._gcHoldCounter > 0) {\n      this._shouldScheduleGC = true;\n      return;\n    }\n    if (this._gcRun) {\n      return;\n    }\n    this._gcRun = this._collect();\n    this._gcScheduler(this._gcStep);\n  };\n  _proto.__gc = function __gc() {\n    if (this._optimisticSource != null) {\n      return;\n    }\n    var gcRun = this._collect();\n    while (!gcRun.next().done) {}\n  };\n  _proto._collect = function* _collect() {\n    top: while (true) {\n      var startEpoch = this._currentWriteEpoch;\n      var references = new Set();\n      var _iterator2 = (0, _createForOfIteratorHelper2[\"default\"])(this._roots.values()),\n        _step2;\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var operation = _step2.value.operation;\n          var selector = operation.root;\n          RelayReferenceMarker.mark(this._recordSource, selector, references, this._operationLoader, this._shouldProcessClientComponents);\n          yield;\n          if (startEpoch !== this._currentWriteEpoch) {\n            continue top;\n          }\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n      var log = this.__log;\n      if (log != null) {\n        log({\n          name: 'store.gc',\n          references: references\n        });\n      }\n      if (references.size === 0) {\n        this._recordSource.clear();\n      } else {\n        var storeIDs = this._recordSource.getRecordIDs();\n        for (var ii = 0; ii < storeIDs.length; ii++) {\n          var dataID = storeIDs[ii];\n          if (!references.has(dataID)) {\n            this._recordSource.remove(dataID);\n          }\n        }\n      }\n      return;\n    }\n  };\n  return RelayModernStore;\n}();\nfunction initializeRecordSource(target) {\n  if (!target.has(ROOT_ID)) {\n    var rootRecord = RelayModernRecord.create(ROOT_ID, ROOT_TYPE);\n    target.set(ROOT_ID, rootRecord);\n  }\n}\nfunction updateTargetFromSource(target, source, currentWriteEpoch, idsMarkedForInvalidation, updatedRecordIDs, invalidatedRecordIDs) {\n  if (idsMarkedForInvalidation) {\n    idsMarkedForInvalidation.forEach(function (dataID) {\n      var targetRecord = target.get(dataID);\n      var sourceRecord = source.get(dataID);\n      if (sourceRecord === null) {\n        return;\n      }\n      var nextRecord;\n      if (targetRecord != null) {\n        nextRecord = RelayModernRecord.clone(targetRecord);\n      } else {\n        nextRecord = sourceRecord != null ? RelayModernRecord.clone(sourceRecord) : null;\n      }\n      if (!nextRecord) {\n        return;\n      }\n      RelayModernRecord.setValue(nextRecord, RelayStoreUtils.INVALIDATED_AT_KEY, currentWriteEpoch);\n      invalidatedRecordIDs.add(dataID);\n      target.set(dataID, nextRecord);\n    });\n  }\n  var dataIDs = source.getRecordIDs();\n  for (var ii = 0; ii < dataIDs.length; ii++) {\n    var dataID = dataIDs[ii];\n    var sourceRecord = source.get(dataID);\n    var targetRecord = target.get(dataID);\n    if (process.env.NODE_ENV !== \"production\") {\n      if (sourceRecord) {\n        RelayModernRecord.freeze(sourceRecord);\n      }\n    }\n    if (sourceRecord && targetRecord) {\n      var nextRecord = RelayModernRecord.update(targetRecord, sourceRecord);\n      if (nextRecord !== targetRecord) {\n        if (process.env.NODE_ENV !== \"production\") {\n          RelayModernRecord.freeze(nextRecord);\n        }\n        updatedRecordIDs.add(dataID);\n        target.set(dataID, nextRecord);\n      }\n    } else if (sourceRecord === null) {\n      target[\"delete\"](dataID);\n      if (targetRecord !== null) {\n        updatedRecordIDs.add(dataID);\n      }\n    } else if (sourceRecord) {\n      target.set(dataID, sourceRecord);\n      updatedRecordIDs.add(dataID);\n    }\n  }\n}\nfunction getAvailabilityStatus(operationAvailability, operationLastWrittenAt, operationFetchTime, queryCacheExpirationTime) {\n  var mostRecentlyInvalidatedAt = operationAvailability.mostRecentlyInvalidatedAt,\n    status = operationAvailability.status;\n  if (typeof mostRecentlyInvalidatedAt === 'number') {\n    if (operationLastWrittenAt == null || mostRecentlyInvalidatedAt > operationLastWrittenAt) {\n      return {\n        status: 'stale'\n      };\n    }\n  }\n  if (status === 'missing') {\n    return {\n      status: 'missing'\n    };\n  }\n  if (operationFetchTime != null && queryCacheExpirationTime != null) {\n    var isStale = operationFetchTime <= Date.now() - queryCacheExpirationTime;\n    if (isStale) {\n      return {\n        status: 'stale'\n      };\n    }\n  }\n  return {\n    status: 'available',\n    fetchTime: operationFetchTime !== null && operationFetchTime !== void 0 ? operationFetchTime : null\n  };\n}\nmodule.exports = RelayModernStore;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\nvar invariant = require('invariant');\nvar RelayOperationTracker = /*#__PURE__*/function () {\n  function RelayOperationTracker() {\n    this._ownersToPendingOperations = new Map();\n    this._pendingOperationsToOwners = new Map();\n    this._ownersToPendingPromise = new Map();\n  }\n  var _proto = RelayOperationTracker.prototype;\n  _proto.update = function update(pendingOperation, affectedOwners) {\n    if (affectedOwners.size === 0) {\n      return;\n    }\n    var pendingOperationIdentifier = pendingOperation.identifier;\n    var newlyAffectedOwnersIdentifier = new Set();\n    var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(affectedOwners),\n      _step;\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var owner = _step.value;\n        var ownerIdentifier = owner.identifier;\n        var pendingOperationsAffectingOwner = this._ownersToPendingOperations.get(ownerIdentifier);\n        if (pendingOperationsAffectingOwner != null) {\n          if (!pendingOperationsAffectingOwner.has(pendingOperationIdentifier)) {\n            pendingOperationsAffectingOwner.set(pendingOperationIdentifier, pendingOperation);\n            newlyAffectedOwnersIdentifier.add(ownerIdentifier);\n          }\n        } else {\n          this._ownersToPendingOperations.set(ownerIdentifier, new Map([[pendingOperationIdentifier, pendingOperation]]));\n          newlyAffectedOwnersIdentifier.add(ownerIdentifier);\n        }\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n    if (newlyAffectedOwnersIdentifier.size === 0) {\n      return;\n    }\n    var ownersAffectedByPendingOperation = this._pendingOperationsToOwners.get(pendingOperationIdentifier) || new Set();\n    var _iterator2 = (0, _createForOfIteratorHelper2[\"default\"])(newlyAffectedOwnersIdentifier),\n      _step2;\n    try {\n      for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n        var _ownerIdentifier = _step2.value;\n        this._resolveOwnerResolvers(_ownerIdentifier);\n        ownersAffectedByPendingOperation.add(_ownerIdentifier);\n      }\n    } catch (err) {\n      _iterator2.e(err);\n    } finally {\n      _iterator2.f();\n    }\n    this._pendingOperationsToOwners.set(pendingOperationIdentifier, ownersAffectedByPendingOperation);\n  };\n  _proto.complete = function complete(pendingOperation) {\n    var pendingOperationIdentifier = pendingOperation.identifier;\n    var affectedOwnersIdentifier = this._pendingOperationsToOwners.get(pendingOperationIdentifier);\n    if (affectedOwnersIdentifier == null) {\n      return;\n    }\n    var completedOwnersIdentifier = new Set();\n    var updatedOwnersIdentifier = new Set();\n    var _iterator3 = (0, _createForOfIteratorHelper2[\"default\"])(affectedOwnersIdentifier),\n      _step3;\n    try {\n      for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n        var ownerIdentifier = _step3.value;\n        var pendingOperationsAffectingOwner = this._ownersToPendingOperations.get(ownerIdentifier);\n        if (!pendingOperationsAffectingOwner) {\n          continue;\n        }\n        pendingOperationsAffectingOwner[\"delete\"](pendingOperationIdentifier);\n        if (pendingOperationsAffectingOwner.size > 0) {\n          updatedOwnersIdentifier.add(ownerIdentifier);\n        } else {\n          completedOwnersIdentifier.add(ownerIdentifier);\n        }\n      }\n    } catch (err) {\n      _iterator3.e(err);\n    } finally {\n      _iterator3.f();\n    }\n    var _iterator4 = (0, _createForOfIteratorHelper2[\"default\"])(completedOwnersIdentifier),\n      _step4;\n    try {\n      for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n        var _ownerIdentifier2 = _step4.value;\n        this._resolveOwnerResolvers(_ownerIdentifier2);\n        this._ownersToPendingOperations[\"delete\"](_ownerIdentifier2);\n      }\n    } catch (err) {\n      _iterator4.e(err);\n    } finally {\n      _iterator4.f();\n    }\n    var _iterator5 = (0, _createForOfIteratorHelper2[\"default\"])(updatedOwnersIdentifier),\n      _step5;\n    try {\n      for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n        var _ownerIdentifier3 = _step5.value;\n        this._resolveOwnerResolvers(_ownerIdentifier3);\n      }\n    } catch (err) {\n      _iterator5.e(err);\n    } finally {\n      _iterator5.f();\n    }\n    this._pendingOperationsToOwners[\"delete\"](pendingOperationIdentifier);\n  };\n  _proto._resolveOwnerResolvers = function _resolveOwnerResolvers(ownerIdentifier) {\n    var promiseEntry = this._ownersToPendingPromise.get(ownerIdentifier);\n    if (promiseEntry != null) {\n      promiseEntry.resolve();\n    }\n    this._ownersToPendingPromise[\"delete\"](ownerIdentifier);\n  };\n  _proto.getPendingOperationsAffectingOwner = function getPendingOperationsAffectingOwner(owner) {\n    var ownerIdentifier = owner.identifier;\n    var pendingOperationsForOwner = this._ownersToPendingOperations.get(ownerIdentifier);\n    if (pendingOperationsForOwner == null || pendingOperationsForOwner.size === 0) {\n      return null;\n    }\n    var cachedPromiseEntry = this._ownersToPendingPromise.get(ownerIdentifier);\n    if (cachedPromiseEntry != null) {\n      return {\n        promise: cachedPromiseEntry.promise,\n        pendingOperations: cachedPromiseEntry.pendingOperations\n      };\n    }\n    var resolve;\n    var promise = new Promise(function (r) {\n      resolve = r;\n    });\n    !(resolve != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayOperationTracker: Expected resolver to be defined. If you' + 'are seeing this, it is likely a bug in Relay.') : invariant(false) : void 0;\n    var pendingOperations = Array.from(pendingOperationsForOwner.values());\n    this._ownersToPendingPromise.set(ownerIdentifier, {\n      promise: promise,\n      resolve: resolve,\n      pendingOperations: pendingOperations\n    });\n    return {\n      promise: promise,\n      pendingOperations: pendingOperations\n    };\n  };\n  return RelayOperationTracker;\n}();\nmodule.exports = RelayOperationTracker;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar RelayModernRecord = require('./RelayModernRecord');\nvar RelayRecordSource = require('./RelayRecordSource');\nvar invariant = require('invariant');\nvar UNPUBLISH_RECORD_SENTINEL = RelayModernRecord.fromObject(Object.freeze({\n  __UNPUBLISH_RECORD_SENTINEL: true\n}));\nvar RelayOptimisticRecordSource = /*#__PURE__*/function () {\n  function RelayOptimisticRecordSource(base) {\n    this._base = base;\n    this._sink = RelayRecordSource.create();\n  }\n  var _proto = RelayOptimisticRecordSource.prototype;\n  _proto.has = function has(dataID) {\n    if (this._sink.has(dataID)) {\n      var sinkRecord = this._sink.get(dataID);\n      return sinkRecord !== UNPUBLISH_RECORD_SENTINEL;\n    } else {\n      return this._base.has(dataID);\n    }\n  };\n  _proto.get = function get(dataID) {\n    if (this._sink.has(dataID)) {\n      var sinkRecord = this._sink.get(dataID);\n      if (sinkRecord === UNPUBLISH_RECORD_SENTINEL) {\n        return undefined;\n      } else {\n        return sinkRecord;\n      }\n    } else {\n      return this._base.get(dataID);\n    }\n  };\n  _proto.getStatus = function getStatus(dataID) {\n    var record = this.get(dataID);\n    if (record === undefined) {\n      return 'UNKNOWN';\n    } else if (record === null) {\n      return 'NONEXISTENT';\n    } else {\n      return 'EXISTENT';\n    }\n  };\n  _proto.clear = function clear() {\n    this._base = RelayRecordSource.create();\n    this._sink.clear();\n  };\n  _proto[\"delete\"] = function _delete(dataID) {\n    this._sink[\"delete\"](dataID);\n  };\n  _proto.remove = function remove(dataID) {\n    this._sink.set(dataID, UNPUBLISH_RECORD_SENTINEL);\n  };\n  _proto.set = function set(dataID, record) {\n    this._sink.set(dataID, record);\n  };\n  _proto.getRecordIDs = function getRecordIDs() {\n    return Object.keys(this.toJSON());\n  };\n  _proto.size = function size() {\n    return Object.keys(this.toJSON()).length;\n  };\n  _proto.toJSON = function toJSON() {\n    var _this = this;\n    var merged = (0, _objectSpread2[\"default\"])({}, this._base.toJSON());\n    this._sink.getRecordIDs().forEach(function (dataID) {\n      var record = _this.get(dataID);\n      if (record === undefined) {\n        delete merged[dataID];\n      } else {\n        merged[dataID] = RelayModernRecord.toJSON(record);\n      }\n    });\n    return merged;\n  };\n  _proto.getOptimisticRecordIDs = function getOptimisticRecordIDs() {\n    return new Set(this._sink.getRecordIDs());\n  };\n  return RelayOptimisticRecordSource;\n}();\nfunction create(base) {\n  return new RelayOptimisticRecordSource(base);\n}\nfunction getOptimisticRecordIDs(source) {\n  !(source instanceof RelayOptimisticRecordSource) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'getOptimisticRecordIDs: Instance of RelayOptimisticRecordSource is expected') : invariant(false) : void 0;\n  return source.getOptimisticRecordIDs();\n}\nmodule.exports = {\n  create: create,\n  getOptimisticRecordIDs: getOptimisticRecordIDs\n};","'use strict';\n\nvar _global$ErrorUtils$ap, _global$ErrorUtils;\nvar RelayRecordSourceMutator = require('../mutations/RelayRecordSourceMutator');\nvar RelayRecordSourceProxy = require('../mutations/RelayRecordSourceProxy');\nvar RelayRecordSourceSelectorProxy = require('../mutations/RelayRecordSourceSelectorProxy');\nvar RelayReader = require('./RelayReader');\nvar RelayRecordSource = require('./RelayRecordSource');\nvar invariant = require('invariant');\nvar warning = require(\"fbjs/lib/warning\");\nvar _global = typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : undefined;\nvar applyWithGuard = (_global$ErrorUtils$ap = _global === null || _global === void 0 ? void 0 : (_global$ErrorUtils = _global.ErrorUtils) === null || _global$ErrorUtils === void 0 ? void 0 : _global$ErrorUtils.applyWithGuard) !== null && _global$ErrorUtils$ap !== void 0 ? _global$ErrorUtils$ap : function (callback, context, args, onError, name) {\n  return callback.apply(context, args);\n};\nvar RelayPublishQueue = /*#__PURE__*/function () {\n  function RelayPublishQueue(store, handlerProvider, getDataID, missingFieldHandlers) {\n    this._hasStoreSnapshot = false;\n    this._handlerProvider = handlerProvider || null;\n    this._pendingBackupRebase = false;\n    this._pendingData = new Set();\n    this._pendingOptimisticUpdates = new Set();\n    this._store = store;\n    this._appliedOptimisticUpdates = new Set();\n    this._gcHold = null;\n    this._getDataID = getDataID;\n    this._missingFieldHandlers = missingFieldHandlers;\n  }\n  var _proto = RelayPublishQueue.prototype;\n  _proto.applyUpdate = function applyUpdate(updater) {\n    !(!this._appliedOptimisticUpdates.has(updater) && !this._pendingOptimisticUpdates.has(updater)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayPublishQueue: Cannot apply the same update function more than ' + 'once concurrently.') : invariant(false) : void 0;\n    this._pendingOptimisticUpdates.add(updater);\n  };\n  _proto.revertUpdate = function revertUpdate(updater) {\n    if (this._pendingOptimisticUpdates.has(updater)) {\n      this._pendingOptimisticUpdates[\"delete\"](updater);\n    } else if (this._appliedOptimisticUpdates.has(updater)) {\n      this._pendingBackupRebase = true;\n      this._appliedOptimisticUpdates[\"delete\"](updater);\n    }\n  };\n  _proto.revertAll = function revertAll() {\n    this._pendingBackupRebase = true;\n    this._pendingOptimisticUpdates.clear();\n    this._appliedOptimisticUpdates.clear();\n  };\n  _proto.commitPayload = function commitPayload(operation, payload, updater) {\n    this._pendingBackupRebase = true;\n    this._pendingData.add({\n      kind: 'payload',\n      operation: operation,\n      payload: payload,\n      updater: updater\n    });\n  };\n  _proto.commitUpdate = function commitUpdate(updater) {\n    this._pendingBackupRebase = true;\n    this._pendingData.add({\n      kind: 'updater',\n      updater: updater\n    });\n  };\n  _proto.commitSource = function commitSource(source) {\n    this._pendingBackupRebase = true;\n    this._pendingData.add({\n      kind: 'source',\n      source: source\n    });\n  };\n  _proto.run = function run(sourceOperation) {\n    var runWillClearGcHold = this._appliedOptimisticUpdates === 0 && !!this._gcHold;\n    var runIsANoop = !this._pendingBackupRebase && this._pendingOptimisticUpdates.size === 0 && !runWillClearGcHold;\n    if (process.env.NODE_ENV !== \"production\") {\n      process.env.NODE_ENV !== \"production\" ? warning(!runIsANoop, 'RelayPublishQueue.run was called, but the call would have been a noop.') : void 0;\n      process.env.NODE_ENV !== \"production\" ? warning(this._isRunning !== true, 'A store update was detected within another store update. Please ' + \"make sure new store updates aren't being executed within an \" + 'updater function for a different update.') : void 0;\n      this._isRunning = true;\n    }\n    if (runIsANoop) {\n      if (process.env.NODE_ENV !== \"production\") {\n        this._isRunning = false;\n      }\n      return [];\n    }\n    if (this._pendingBackupRebase) {\n      if (this._hasStoreSnapshot) {\n        this._store.restore();\n        this._hasStoreSnapshot = false;\n      }\n    }\n    var invalidatedStore = this._commitData();\n    if (this._pendingOptimisticUpdates.size || this._pendingBackupRebase && this._appliedOptimisticUpdates.size) {\n      if (!this._hasStoreSnapshot) {\n        this._store.snapshot();\n        this._hasStoreSnapshot = true;\n      }\n      this._applyUpdates();\n    }\n    this._pendingBackupRebase = false;\n    if (this._appliedOptimisticUpdates.size > 0) {\n      if (!this._gcHold) {\n        this._gcHold = this._store.holdGC();\n      }\n    } else {\n      if (this._gcHold) {\n        this._gcHold.dispose();\n        this._gcHold = null;\n      }\n    }\n    if (process.env.NODE_ENV !== \"production\") {\n      this._isRunning = false;\n    }\n    return this._store.notify(sourceOperation, invalidatedStore);\n  };\n  _proto._publishSourceFromPayload = function _publishSourceFromPayload(pendingPayload) {\n    var _this = this;\n    var payload = pendingPayload.payload,\n      operation = pendingPayload.operation,\n      updater = pendingPayload.updater;\n    var source = payload.source,\n      fieldPayloads = payload.fieldPayloads;\n    var mutator = new RelayRecordSourceMutator(this._store.getSource(), source);\n    var recordSourceProxy = new RelayRecordSourceProxy(mutator, this._getDataID, this._handlerProvider, this._missingFieldHandlers);\n    if (fieldPayloads && fieldPayloads.length) {\n      fieldPayloads.forEach(function (fieldPayload) {\n        var handler = _this._handlerProvider && _this._handlerProvider(fieldPayload.handle);\n        !handler ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernEnvironment: Expected a handler to be provided for ' + 'handle `%s`.', fieldPayload.handle) : invariant(false) : void 0;\n        handler.update(recordSourceProxy, fieldPayload);\n      });\n    }\n    if (updater) {\n      var selector = operation.fragment;\n      !(selector != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernEnvironment: Expected a selector to be provided with updater function.') : invariant(false) : void 0;\n      var recordSourceSelectorProxy = new RelayRecordSourceSelectorProxy(mutator, recordSourceProxy, selector, this._missingFieldHandlers);\n      var selectorData = lookupSelector(source, selector);\n      updater(recordSourceSelectorProxy, selectorData);\n    }\n    var idsMarkedForInvalidation = recordSourceProxy.getIDsMarkedForInvalidation();\n    this._store.publish(source, idsMarkedForInvalidation);\n    return recordSourceProxy.isStoreMarkedForInvalidation();\n  };\n  _proto._commitData = function _commitData() {\n    var _this2 = this;\n    if (!this._pendingData.size) {\n      return false;\n    }\n    var invalidatedStore = false;\n    this._pendingData.forEach(function (data) {\n      if (data.kind === 'payload') {\n        var payloadInvalidatedStore = _this2._publishSourceFromPayload(data);\n        invalidatedStore = invalidatedStore || payloadInvalidatedStore;\n      } else if (data.kind === 'source') {\n        var source = data.source;\n        _this2._store.publish(source);\n      } else {\n        var updater = data.updater;\n        var sink = RelayRecordSource.create();\n        var mutator = new RelayRecordSourceMutator(_this2._store.getSource(), sink);\n        var recordSourceProxy = new RelayRecordSourceProxy(mutator, _this2._getDataID, _this2._handlerProvider, _this2._missingFieldHandlers);\n        applyWithGuard(updater, null, [recordSourceProxy], null, 'RelayPublishQueue:commitData');\n        invalidatedStore = invalidatedStore || recordSourceProxy.isStoreMarkedForInvalidation();\n        var idsMarkedForInvalidation = recordSourceProxy.getIDsMarkedForInvalidation();\n        _this2._store.publish(sink, idsMarkedForInvalidation);\n      }\n    });\n    this._pendingData.clear();\n    return invalidatedStore;\n  };\n  _proto._applyUpdates = function _applyUpdates() {\n    var _this3 = this;\n    var sink = RelayRecordSource.create();\n    var mutator = new RelayRecordSourceMutator(this._store.getSource(), sink);\n    var recordSourceProxy = new RelayRecordSourceProxy(mutator, this._getDataID, this._handlerProvider, this._missingFieldHandlers);\n    var processUpdate = function processUpdate(optimisticUpdate) {\n      if (optimisticUpdate.storeUpdater) {\n        var storeUpdater = optimisticUpdate.storeUpdater;\n        applyWithGuard(storeUpdater, null, [recordSourceProxy], null, 'RelayPublishQueue:applyUpdates');\n      } else {\n        var operation = optimisticUpdate.operation,\n          payload = optimisticUpdate.payload,\n          updater = optimisticUpdate.updater;\n        var source = payload.source,\n          fieldPayloads = payload.fieldPayloads;\n        if (source) {\n          recordSourceProxy.publishSource(source, fieldPayloads);\n        }\n        if (updater) {\n          var selectorData;\n          if (source) {\n            selectorData = lookupSelector(source, operation.fragment);\n          }\n          var recordSourceSelectorProxy = new RelayRecordSourceSelectorProxy(mutator, recordSourceProxy, operation.fragment, _this3._missingFieldHandlers);\n          applyWithGuard(updater, null, [recordSourceSelectorProxy, selectorData], null, 'RelayPublishQueue:applyUpdates');\n        }\n      }\n    };\n    if (this._pendingBackupRebase && this._appliedOptimisticUpdates.size) {\n      this._appliedOptimisticUpdates.forEach(processUpdate);\n    }\n    if (this._pendingOptimisticUpdates.size) {\n      this._pendingOptimisticUpdates.forEach(function (optimisticUpdate) {\n        processUpdate(optimisticUpdate);\n        _this3._appliedOptimisticUpdates.add(optimisticUpdate);\n      });\n      this._pendingOptimisticUpdates.clear();\n    }\n    this._store.publish(sink);\n  };\n  return RelayPublishQueue;\n}();\nfunction lookupSelector(source, selector) {\n  var selectorData = RelayReader.read(source, selector).data;\n  if (process.env.NODE_ENV !== \"production\") {\n    var deepFreeze = require('../util/deepFreeze');\n    if (selectorData) {\n      deepFreeze(selectorData);\n    }\n  }\n  return selectorData;\n}\nmodule.exports = RelayPublishQueue;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\nvar _require = require('../util/RelayConcreteNode'),\n  ACTOR_CHANGE = _require.ACTOR_CHANGE,\n  ALIASED_FRAGMENT_SPREAD = _require.ALIASED_FRAGMENT_SPREAD,\n  ALIASED_INLINE_FRAGMENT_SPREAD = _require.ALIASED_INLINE_FRAGMENT_SPREAD,\n  CLIENT_EDGE_TO_CLIENT_OBJECT = _require.CLIENT_EDGE_TO_CLIENT_OBJECT,\n  CLIENT_EDGE_TO_SERVER_OBJECT = _require.CLIENT_EDGE_TO_SERVER_OBJECT,\n  CLIENT_EXTENSION = _require.CLIENT_EXTENSION,\n  CONDITION = _require.CONDITION,\n  DEFER = _require.DEFER,\n  FRAGMENT_SPREAD = _require.FRAGMENT_SPREAD,\n  INLINE_DATA_FRAGMENT_SPREAD = _require.INLINE_DATA_FRAGMENT_SPREAD,\n  INLINE_FRAGMENT = _require.INLINE_FRAGMENT,\n  LINKED_FIELD = _require.LINKED_FIELD,\n  MODULE_IMPORT = _require.MODULE_IMPORT,\n  RELAY_LIVE_RESOLVER = _require.RELAY_LIVE_RESOLVER,\n  RELAY_RESOLVER = _require.RELAY_RESOLVER,\n  REQUIRED_FIELD = _require.REQUIRED_FIELD,\n  SCALAR_FIELD = _require.SCALAR_FIELD,\n  STREAM = _require.STREAM;\nvar RelayFeatureFlags = require('../util/RelayFeatureFlags');\nvar _require2 = require('./experimental-live-resolvers/LiveResolverSuspenseSentinel'),\n  isSuspenseSentinel = _require2.isSuspenseSentinel;\nvar RelayConcreteVariables = require('./RelayConcreteVariables');\nvar RelayModernRecord = require('./RelayModernRecord');\nvar _require3 = require('./RelayStoreUtils'),\n  CLIENT_EDGE_TRAVERSAL_PATH = _require3.CLIENT_EDGE_TRAVERSAL_PATH,\n  FRAGMENT_OWNER_KEY = _require3.FRAGMENT_OWNER_KEY,\n  FRAGMENT_PROP_NAME_KEY = _require3.FRAGMENT_PROP_NAME_KEY,\n  FRAGMENTS_KEY = _require3.FRAGMENTS_KEY,\n  ID_KEY = _require3.ID_KEY,\n  MODULE_COMPONENT_KEY = _require3.MODULE_COMPONENT_KEY,\n  ROOT_ID = _require3.ROOT_ID,\n  getArgumentValues = _require3.getArgumentValues,\n  getModuleComponentKey = _require3.getModuleComponentKey,\n  getStorageKey = _require3.getStorageKey;\nvar _require4 = require('./ResolverCache'),\n  NoopResolverCache = _require4.NoopResolverCache;\nvar _require5 = require('./ResolverFragments'),\n  RESOLVER_FRAGMENT_MISSING_DATA_SENTINEL = _require5.RESOLVER_FRAGMENT_MISSING_DATA_SENTINEL,\n  withResolverContext = _require5.withResolverContext;\nvar _require6 = require('./TypeID'),\n  generateTypeID = _require6.generateTypeID;\nvar invariant = require('invariant');\nfunction read(recordSource, selector, resolverCache) {\n  var reader = new RelayReader(recordSource, selector, resolverCache !== null && resolverCache !== void 0 ? resolverCache : new NoopResolverCache());\n  return reader.read();\n}\nvar RelayReader = /*#__PURE__*/function () {\n  function RelayReader(recordSource, selector, resolverCache) {\n    var _selector$clientEdgeT;\n    this._clientEdgeTraversalPath = RelayFeatureFlags.ENABLE_CLIENT_EDGES && (_selector$clientEdgeT = selector.clientEdgeTraversalPath) !== null && _selector$clientEdgeT !== void 0 && _selector$clientEdgeT.length ? (0, _toConsumableArray2[\"default\"])(selector.clientEdgeTraversalPath) : [];\n    this._missingClientEdges = [];\n    this._missingLiveResolverFields = [];\n    this._isMissingData = false;\n    this._isWithinUnmatchedTypeRefinement = false;\n    this._missingRequiredFields = null;\n    this._errorResponseFields = null;\n    this._owner = selector.owner;\n    this._recordSource = recordSource;\n    this._seenRecords = new Set();\n    this._selector = selector;\n    this._variables = selector.variables;\n    this._resolverCache = resolverCache;\n    this._resolverErrors = [];\n    this._fragmentName = selector.node.name;\n    this._updatedDataIDs = new Set();\n  }\n  var _proto = RelayReader.prototype;\n  _proto.read = function read() {\n    var _this$_selector = this._selector,\n      node = _this$_selector.node,\n      dataID = _this$_selector.dataID,\n      isWithinUnmatchedTypeRefinement = _this$_selector.isWithinUnmatchedTypeRefinement;\n    var abstractKey = node.abstractKey;\n    var record = this._recordSource.get(dataID);\n    var isDataExpectedToBePresent = !isWithinUnmatchedTypeRefinement;\n    if (isDataExpectedToBePresent && abstractKey == null && record != null) {\n      var recordType = RelayModernRecord.getType(record);\n      if (recordType !== node.type && dataID !== ROOT_ID) {\n        isDataExpectedToBePresent = false;\n      }\n    }\n    if (isDataExpectedToBePresent && abstractKey != null && record != null) {\n      var implementsInterface = this._implementsInterface(record, abstractKey);\n      if (implementsInterface === false) {\n        isDataExpectedToBePresent = false;\n      } else if (implementsInterface == null) {\n        this._isMissingData = true;\n      }\n    }\n    this._isWithinUnmatchedTypeRefinement = !isDataExpectedToBePresent;\n    var data = this._traverse(node, dataID, null);\n    if (this._updatedDataIDs.size > 0) {\n      this._resolverCache.notifyUpdatedSubscribers(this._updatedDataIDs);\n      this._updatedDataIDs.clear();\n    }\n    return {\n      data: data,\n      isMissingData: this._isMissingData && isDataExpectedToBePresent,\n      missingClientEdges: RelayFeatureFlags.ENABLE_CLIENT_EDGES && this._missingClientEdges.length ? this._missingClientEdges : null,\n      missingLiveResolverFields: this._missingLiveResolverFields,\n      seenRecords: this._seenRecords,\n      selector: this._selector,\n      missingRequiredFields: this._missingRequiredFields,\n      relayResolverErrors: this._resolverErrors,\n      errorResponseFields: this._errorResponseFields\n    };\n  };\n  _proto._maybeAddErrorResponseFields = function _maybeAddErrorResponseFields(record, storageKey) {\n    if (!RelayFeatureFlags.ENABLE_FIELD_ERROR_HANDLING) {\n      return;\n    }\n    var errors = RelayModernRecord.getErrors(record, storageKey);\n    if (errors == null) {\n      return;\n    }\n    var owner = this._fragmentName;\n    if (this._errorResponseFields == null) {\n      this._errorResponseFields = [];\n    }\n    var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(errors),\n      _step;\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var _error$path;\n        var error = _step.value;\n        this._errorResponseFields.push({\n          owner: owner,\n          path: ((_error$path = error.path) !== null && _error$path !== void 0 ? _error$path : []).join('.'),\n          error: error\n        });\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n  };\n  _proto._markDataAsMissing = function _markDataAsMissing() {\n    this._isMissingData = true;\n    if (RelayFeatureFlags.ENABLE_CLIENT_EDGES && this._clientEdgeTraversalPath.length) {\n      var top = this._clientEdgeTraversalPath[this._clientEdgeTraversalPath.length - 1];\n      if (top !== null) {\n        this._missingClientEdges.push({\n          request: top.readerClientEdge.operation,\n          clientEdgeDestinationID: top.clientEdgeDestinationID\n        });\n      }\n    }\n  };\n  _proto._traverse = function _traverse(node, dataID, prevData) {\n    var record = this._recordSource.get(dataID);\n    this._seenRecords.add(dataID);\n    if (record == null) {\n      if (record === undefined) {\n        this._markDataAsMissing();\n      }\n      return record;\n    }\n    var data = prevData || {};\n    var hadRequiredData = this._traverseSelections(node.selections, record, data);\n    return hadRequiredData ? data : null;\n  };\n  _proto._getVariableValue = function _getVariableValue(name) {\n    !this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReader(): Undefined variable `%s`.', name) : invariant(false) : void 0;\n    return this._variables[name];\n  };\n  _proto._maybeReportUnexpectedNull = function _maybeReportUnexpectedNull(fieldPath, action) {\n    var _this$_missingRequire;\n    if (((_this$_missingRequire = this._missingRequiredFields) === null || _this$_missingRequire === void 0 ? void 0 : _this$_missingRequire.action) === 'THROW') {\n      return;\n    }\n    var owner = this._fragmentName;\n    switch (action) {\n      case 'THROW':\n        this._missingRequiredFields = {\n          action: action,\n          field: {\n            path: fieldPath,\n            owner: owner\n          }\n        };\n        return;\n      case 'LOG':\n        if (this._missingRequiredFields == null) {\n          this._missingRequiredFields = {\n            action: action,\n            fields: [{\n              path: fieldPath,\n              owner: owner\n            }]\n          };\n        } else {\n          this._missingRequiredFields = {\n            action: action,\n            fields: [].concat((0, _toConsumableArray2[\"default\"])(this._missingRequiredFields.fields), [{\n              path: fieldPath,\n              owner: owner\n            }])\n          };\n        }\n        return;\n      default:\n        action;\n    }\n  };\n  _proto._traverseSelections = function _traverseSelections(selections, record, data) {\n    for (var i = 0; i < selections.length; i++) {\n      var selection = selections[i];\n      switch (selection.kind) {\n        case REQUIRED_FIELD:\n          {\n            var fieldValue = this._readRequiredField(selection, record, data);\n            if (fieldValue == null) {\n              var action = selection.action;\n              if (action !== 'NONE') {\n                this._maybeReportUnexpectedNull(selection.path, action);\n              }\n              return false;\n            }\n            break;\n          }\n        case SCALAR_FIELD:\n          this._readScalar(selection, record, data);\n          break;\n        case LINKED_FIELD:\n          if (selection.plural) {\n            this._readPluralLink(selection, record, data);\n          } else {\n            this._readLink(selection, record, data);\n          }\n          break;\n        case CONDITION:\n          var conditionValue = Boolean(this._getVariableValue(selection.condition));\n          if (conditionValue === selection.passingValue) {\n            var hasExpectedData = this._traverseSelections(selection.selections, record, data);\n            if (!hasExpectedData) {\n              return false;\n            }\n          }\n          break;\n        case INLINE_FRAGMENT:\n          {\n            if (this._readInlineFragment(selection, record, data) === false) {\n              return false;\n            }\n            break;\n          }\n        case RELAY_LIVE_RESOLVER:\n        case RELAY_RESOLVER:\n          {\n            if (!RelayFeatureFlags.ENABLE_RELAY_RESOLVERS) {\n              throw new Error('Relay Resolver fields are not yet supported.');\n            }\n            this._readResolverField(selection, record, data);\n            break;\n          }\n        case FRAGMENT_SPREAD:\n          this._createFragmentPointer(selection, record, data);\n          break;\n        case ALIASED_FRAGMENT_SPREAD:\n          data[selection.name] = this._createAliasedFragmentSpread(selection, record);\n          break;\n        case ALIASED_INLINE_FRAGMENT_SPREAD:\n          {\n            var _fieldValue = this._readInlineFragment(selection.fragment, record, {});\n            if (_fieldValue === false) {\n              _fieldValue = null;\n            }\n            data[selection.name] = _fieldValue;\n            break;\n          }\n        case MODULE_IMPORT:\n          this._readModuleImport(selection, record, data);\n          break;\n        case INLINE_DATA_FRAGMENT_SPREAD:\n          this._createInlineDataOrResolverFragmentPointer(selection, record, data);\n          break;\n        case DEFER:\n        case CLIENT_EXTENSION:\n          {\n            var isMissingData = this._isMissingData;\n            var alreadyMissingClientEdges = this._missingClientEdges.length;\n            if (RelayFeatureFlags.ENABLE_CLIENT_EDGES) {\n              this._clientEdgeTraversalPath.push(null);\n            }\n            var _hasExpectedData = this._traverseSelections(selection.selections, record, data);\n            this._isMissingData = isMissingData || this._missingClientEdges.length > alreadyMissingClientEdges || this._missingLiveResolverFields.length > 0;\n            if (RelayFeatureFlags.ENABLE_CLIENT_EDGES) {\n              this._clientEdgeTraversalPath.pop();\n            }\n            if (!_hasExpectedData) {\n              return false;\n            }\n            break;\n          }\n        case STREAM:\n          {\n            var _hasExpectedData2 = this._traverseSelections(selection.selections, record, data);\n            if (!_hasExpectedData2) {\n              return false;\n            }\n            break;\n          }\n        case ACTOR_CHANGE:\n          this._readActorChange(selection, record, data);\n          break;\n        case CLIENT_EDGE_TO_CLIENT_OBJECT:\n        case CLIENT_EDGE_TO_SERVER_OBJECT:\n          if (RelayFeatureFlags.ENABLE_CLIENT_EDGES) {\n            this._readClientEdge(selection, record, data);\n          } else {\n            throw new Error('Client edges are not yet supported.');\n          }\n          break;\n        default:\n          selection;\n          !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReader(): Unexpected ast kind `%s`.', selection.kind) : invariant(false) : void 0;\n      }\n    }\n    return true;\n  };\n  _proto._readRequiredField = function _readRequiredField(selection, record, data) {\n    switch (selection.field.kind) {\n      case SCALAR_FIELD:\n        return this._readScalar(selection.field, record, data);\n      case LINKED_FIELD:\n        if (selection.field.plural) {\n          return this._readPluralLink(selection.field, record, data);\n        } else {\n          return this._readLink(selection.field, record, data);\n        }\n      case RELAY_RESOLVER:\n        if (!RelayFeatureFlags.ENABLE_RELAY_RESOLVERS) {\n          throw new Error('Relay Resolver fields are not yet supported.');\n        }\n        return this._readResolverField(selection.field, record, data);\n      case RELAY_LIVE_RESOLVER:\n        if (!RelayFeatureFlags.ENABLE_RELAY_RESOLVERS) {\n          throw new Error('Relay Resolver fields are not yet supported.');\n        }\n        return this._readResolverField(selection.field, record, data);\n      case CLIENT_EDGE_TO_CLIENT_OBJECT:\n      case CLIENT_EDGE_TO_SERVER_OBJECT:\n        if (!RelayFeatureFlags.ENABLE_RELAY_RESOLVERS) {\n          throw new Error('Relay Resolver fields are not yet supported.');\n        }\n        return this._readClientEdge(selection.field, record, data);\n      default:\n        selection.field.kind;\n        !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReader(): Unexpected ast kind `%s`.', selection.kind) : invariant(false) : void 0;\n    }\n  };\n  _proto._readResolverField = function _readResolverField(field, record, data) {\n    var _field$alias;\n    var parentRecordID = RelayModernRecord.getDataID(record);\n    var result = this._readResolverFieldImpl(field, parentRecordID);\n    var applicationName = (_field$alias = field.alias) !== null && _field$alias !== void 0 ? _field$alias : field.name;\n    data[applicationName] = result;\n    return result;\n  };\n  _proto._readResolverFieldImpl = function _readResolverFieldImpl(field, parentRecordID) {\n    var _this = this;\n    var fragment = field.fragment;\n    var snapshot;\n    var getDataForResolverFragment = function getDataForResolverFragment(singularReaderSelector) {\n      if (snapshot != null) {\n        return {\n          data: snapshot.data,\n          isMissingData: snapshot.isMissingData\n        };\n      }\n      snapshot = read(_this._recordSource, singularReaderSelector, _this._resolverCache);\n      return {\n        data: snapshot.data,\n        isMissingData: snapshot.isMissingData\n      };\n    };\n    var evaluate = function evaluate() {\n      if (fragment != null) {\n        var key = {\n          __id: parentRecordID,\n          __fragmentOwner: _this._owner,\n          __fragments: (0, _defineProperty2[\"default\"])({}, fragment.name, fragment.args ? getArgumentValues(fragment.args, _this._variables) : {})\n        };\n        var resolverContext = {\n          getDataForResolverFragment: getDataForResolverFragment\n        };\n        return withResolverContext(resolverContext, function () {\n          var _getResolverValue = getResolverValue(field, _this._variables, key),\n            resolverResult = _getResolverValue[0],\n            resolverError = _getResolverValue[1];\n          return {\n            resolverResult: resolverResult,\n            snapshot: snapshot,\n            error: resolverError\n          };\n        });\n      } else {\n        var _getResolverValue2 = getResolverValue(field, _this._variables, null),\n          resolverResult = _getResolverValue2[0],\n          _resolverError = _getResolverValue2[1];\n        return {\n          resolverResult: resolverResult,\n          snapshot: undefined,\n          error: _resolverError\n        };\n      }\n    };\n    var _this$_resolverCache$ = this._resolverCache.readFromCacheOrEvaluate(parentRecordID, field, this._variables, evaluate, getDataForResolverFragment),\n      result = _this$_resolverCache$[0],\n      seenRecord = _this$_resolverCache$[1],\n      resolverError = _this$_resolverCache$[2],\n      cachedSnapshot = _this$_resolverCache$[3],\n      suspenseID = _this$_resolverCache$[4],\n      updatedDataIDs = _this$_resolverCache$[5];\n    this._propogateResolverMetadata(field.path, cachedSnapshot, resolverError, seenRecord, suspenseID, updatedDataIDs);\n    return result;\n  };\n  _proto._propogateResolverMetadata = function _propogateResolverMetadata(fieldPath, cachedSnapshot, resolverError, seenRecord, suspenseID, updatedDataIDs) {\n    if (cachedSnapshot != null) {\n      if (cachedSnapshot.missingRequiredFields != null) {\n        this._addMissingRequiredFields(cachedSnapshot.missingRequiredFields);\n      }\n      if (cachedSnapshot.missingClientEdges != null) {\n        var _iterator2 = (0, _createForOfIteratorHelper2[\"default\"])(cachedSnapshot.missingClientEdges),\n          _step2;\n        try {\n          for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n            var missing = _step2.value;\n            this._missingClientEdges.push(missing);\n          }\n        } catch (err) {\n          _iterator2.e(err);\n        } finally {\n          _iterator2.f();\n        }\n      }\n      if (cachedSnapshot.missingLiveResolverFields != null) {\n        this._isMissingData = this._isMissingData || cachedSnapshot.missingLiveResolverFields.length > 0;\n        var _iterator3 = (0, _createForOfIteratorHelper2[\"default\"])(cachedSnapshot.missingLiveResolverFields),\n          _step3;\n        try {\n          for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n            var missingResolverField = _step3.value;\n            this._missingLiveResolverFields.push(missingResolverField);\n          }\n        } catch (err) {\n          _iterator3.e(err);\n        } finally {\n          _iterator3.f();\n        }\n      }\n      var _iterator4 = (0, _createForOfIteratorHelper2[\"default\"])(cachedSnapshot.relayResolverErrors),\n        _step4;\n      try {\n        for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n          var error = _step4.value;\n          this._resolverErrors.push(error);\n        }\n      } catch (err) {\n        _iterator4.e(err);\n      } finally {\n        _iterator4.f();\n      }\n      this._isMissingData = this._isMissingData || cachedSnapshot.isMissingData;\n    }\n    if (resolverError) {\n      this._resolverErrors.push({\n        field: {\n          path: fieldPath,\n          owner: this._fragmentName\n        },\n        error: resolverError\n      });\n    }\n    if (seenRecord != null) {\n      this._seenRecords.add(seenRecord);\n    }\n    if (suspenseID != null) {\n      this._isMissingData = true;\n      this._missingLiveResolverFields.push({\n        path: \"\".concat(this._fragmentName, \".\").concat(fieldPath),\n        liveStateID: suspenseID\n      });\n    }\n    if (updatedDataIDs != null) {\n      var _iterator5 = (0, _createForOfIteratorHelper2[\"default\"])(updatedDataIDs),\n        _step5;\n      try {\n        for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n          var recordID = _step5.value;\n          this._updatedDataIDs.add(recordID);\n        }\n      } catch (err) {\n        _iterator5.e(err);\n      } finally {\n        _iterator5.f();\n      }\n    }\n  };\n  _proto._readClientEdge = function _readClientEdge(field, record, data) {\n    var _this2 = this;\n    var _backingField$alias;\n    var backingField = field.backingField;\n    !(backingField.kind !== 'ClientExtension') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Client extension client edges are not yet implemented.') : invariant(false) : void 0;\n    var applicationName = (_backingField$alias = backingField.alias) !== null && _backingField$alias !== void 0 ? _backingField$alias : backingField.name;\n    var backingFieldData = {};\n    this._traverseSelections([backingField], record, backingFieldData);\n    var clientEdgeResolverResponse = backingFieldData[applicationName];\n    if (clientEdgeResolverResponse == null || isSuspenseSentinel(clientEdgeResolverResponse)) {\n      data[applicationName] = clientEdgeResolverResponse;\n      return clientEdgeResolverResponse;\n    }\n    var validClientEdgeResolverResponse = assertValidClientEdgeResolverResponse(field, clientEdgeResolverResponse);\n    switch (validClientEdgeResolverResponse.kind) {\n      case 'PluralConcrete':\n        var storeIDs = getStoreIDsForPluralClientEdgeResolver(field, validClientEdgeResolverResponse.ids, this._resolverCache);\n        var validStoreIDs = storeIDs;\n        if (field.modelResolver != null) {\n          var modelResolver = field.modelResolver;\n          validStoreIDs = storeIDs.map(function (storeID) {\n            var model = _this2._readResolverFieldImpl(modelResolver, storeID);\n            return model != null ? storeID : null;\n          });\n        }\n        this._clientEdgeTraversalPath.push(null);\n        var edgeValues = this._readLinkedIds(field.linkedField, validStoreIDs, record, data);\n        this._clientEdgeTraversalPath.pop();\n        data[applicationName] = edgeValues;\n        return edgeValues;\n      case 'SingularConcrete':\n        var _getStoreIDAndTravers = getStoreIDAndTraversalPathSegmentForSingularClientEdgeResolver(field, validClientEdgeResolverResponse.id, this._resolverCache),\n          storeID = _getStoreIDAndTravers[0],\n          traversalPathSegment = _getStoreIDAndTravers[1];\n        if (field.modelResolver != null) {\n          var model = this._readResolverFieldImpl(field.modelResolver, storeID);\n          if (model == null) {\n            data[applicationName] = null;\n            return null;\n          }\n        }\n        this._clientEdgeTraversalPath.push(traversalPathSegment);\n        var prevData = data[applicationName];\n        !(prevData == null || typeof prevData === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReader(): Expected data for field `%s` on record `%s` ' + 'to be an object, got `%s`.', applicationName, RelayModernRecord.getDataID(record), prevData) : invariant(false) : void 0;\n        var edgeValue = this._traverse(field.linkedField, storeID, prevData);\n        this._clientEdgeTraversalPath.pop();\n        data[applicationName] = edgeValue;\n        return edgeValue;\n      default:\n        validClientEdgeResolverResponse.kind;\n    }\n  };\n  _proto._readScalar = function _readScalar(field, record, data) {\n    var _field$alias2;\n    var applicationName = (_field$alias2 = field.alias) !== null && _field$alias2 !== void 0 ? _field$alias2 : field.name;\n    var storageKey = getStorageKey(field, this._variables);\n    var value = RelayModernRecord.getValue(record, storageKey);\n    if (value === null) {\n      this._maybeAddErrorResponseFields(record, storageKey);\n    } else if (value === undefined) {\n      this._markDataAsMissing();\n    }\n    data[applicationName] = value;\n    return value;\n  };\n  _proto._readLink = function _readLink(field, record, data) {\n    var _field$alias3;\n    var applicationName = (_field$alias3 = field.alias) !== null && _field$alias3 !== void 0 ? _field$alias3 : field.name;\n    var storageKey = getStorageKey(field, this._variables);\n    var linkedID = RelayModernRecord.getLinkedRecordID(record, storageKey);\n    if (linkedID == null) {\n      data[applicationName] = linkedID;\n      if (linkedID === null) {\n        this._maybeAddErrorResponseFields(record, storageKey);\n      } else if (linkedID === undefined) {\n        this._markDataAsMissing();\n      }\n      return linkedID;\n    }\n    var prevData = data[applicationName];\n    !(prevData == null || typeof prevData === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReader(): Expected data for field `%s` on record `%s` ' + 'to be an object, got `%s`.', applicationName, RelayModernRecord.getDataID(record), prevData) : invariant(false) : void 0;\n    var value = this._traverse(field, linkedID, prevData);\n    data[applicationName] = value;\n    return value;\n  };\n  _proto._readActorChange = function _readActorChange(field, record, data) {\n    var _field$alias4;\n    var applicationName = (_field$alias4 = field.alias) !== null && _field$alias4 !== void 0 ? _field$alias4 : field.name;\n    var storageKey = getStorageKey(field, this._variables);\n    var externalRef = RelayModernRecord.getActorLinkedRecordID(record, storageKey);\n    if (externalRef == null) {\n      data[applicationName] = externalRef;\n      if (externalRef === undefined) {\n        this._markDataAsMissing();\n      } else if (externalRef === null) {\n        this._maybeAddErrorResponseFields(record, storageKey);\n      }\n      return data[applicationName];\n    }\n    var actorIdentifier = externalRef[0],\n      dataID = externalRef[1];\n    var fragmentRef = {};\n    this._createFragmentPointer(field.fragmentSpread, RelayModernRecord.fromObject({\n      __id: dataID\n    }), fragmentRef);\n    data[applicationName] = {\n      __fragmentRef: fragmentRef,\n      __viewer: actorIdentifier\n    };\n    return data[applicationName];\n  };\n  _proto._readPluralLink = function _readPluralLink(field, record, data) {\n    var storageKey = getStorageKey(field, this._variables);\n    var linkedIDs = RelayModernRecord.getLinkedRecordIDs(record, storageKey);\n    if (linkedIDs === null) {\n      this._maybeAddErrorResponseFields(record, storageKey);\n    }\n    return this._readLinkedIds(field, linkedIDs, record, data);\n  };\n  _proto._readLinkedIds = function _readLinkedIds(field, linkedIDs, record, data) {\n    var _this3 = this;\n    var _field$alias5;\n    var applicationName = (_field$alias5 = field.alias) !== null && _field$alias5 !== void 0 ? _field$alias5 : field.name;\n    if (linkedIDs == null) {\n      data[applicationName] = linkedIDs;\n      if (linkedIDs === undefined) {\n        this._markDataAsMissing();\n      }\n      return linkedIDs;\n    }\n    var prevData = data[applicationName];\n    !(prevData == null || Array.isArray(prevData)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReader(): Expected data for field `%s` on record `%s` ' + 'to be an array, got `%s`.', applicationName, RelayModernRecord.getDataID(record), prevData) : invariant(false) : void 0;\n    var linkedArray = prevData || [];\n    linkedIDs.forEach(function (linkedID, nextIndex) {\n      if (linkedID == null) {\n        if (linkedID === undefined) {\n          _this3._markDataAsMissing();\n        }\n        linkedArray[nextIndex] = linkedID;\n        return;\n      }\n      var prevItem = linkedArray[nextIndex];\n      !(prevItem == null || typeof prevItem === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReader(): Expected data for field `%s` on record `%s` ' + 'to be an object, got `%s`.', applicationName, RelayModernRecord.getDataID(record), prevItem) : invariant(false) : void 0;\n      linkedArray[nextIndex] = _this3._traverse(field, linkedID, prevItem);\n    });\n    data[applicationName] = linkedArray;\n    return linkedArray;\n  };\n  _proto._readModuleImport = function _readModuleImport(moduleImport, record, data) {\n    var componentKey = getModuleComponentKey(moduleImport.documentName);\n    var component = RelayModernRecord.getValue(record, componentKey);\n    if (component == null) {\n      if (component === undefined) {\n        this._markDataAsMissing();\n      }\n      return;\n    }\n    this._createFragmentPointer({\n      kind: 'FragmentSpread',\n      name: moduleImport.fragmentName,\n      args: moduleImport.args\n    }, record, data);\n    data[FRAGMENT_PROP_NAME_KEY] = moduleImport.fragmentPropName;\n    data[MODULE_COMPONENT_KEY] = component;\n  };\n  _proto._createAliasedFragmentSpread = function _createAliasedFragmentSpread(namedFragmentSpread, record) {\n    var abstractKey = namedFragmentSpread.abstractKey;\n    if (abstractKey == null) {\n      var typeName = RelayModernRecord.getType(record);\n      if (typeName == null || typeName !== namedFragmentSpread.type) {\n        return null;\n      }\n    } else {\n      var implementsInterface = this._implementsInterface(record, abstractKey);\n      if (implementsInterface === false) {\n        return null;\n      } else if (implementsInterface == null) {\n        this._markDataAsMissing();\n        return undefined;\n      }\n    }\n    var fieldData = {};\n    this._createFragmentPointer(namedFragmentSpread.fragment, record, fieldData);\n    return RelayModernRecord.fromObject(fieldData);\n  };\n  _proto._readInlineFragment = function _readInlineFragment(inlineFragment, record, data) {\n    var abstractKey = inlineFragment.abstractKey;\n    if (abstractKey == null) {\n      var typeName = RelayModernRecord.getType(record);\n      if (typeName == null || typeName !== inlineFragment.type) {\n        return null;\n      } else {\n        var hasExpectedData = this._traverseSelections(inlineFragment.selections, record, data);\n        if (!hasExpectedData) {\n          return false;\n        }\n      }\n    } else {\n      var implementsInterface = this._implementsInterface(record, abstractKey);\n      var parentIsMissingData = this._isMissingData;\n      var parentIsWithinUnmatchedTypeRefinement = this._isWithinUnmatchedTypeRefinement;\n      this._isWithinUnmatchedTypeRefinement = parentIsWithinUnmatchedTypeRefinement || implementsInterface === false;\n      this._traverseSelections(inlineFragment.selections, record, data);\n      this._isWithinUnmatchedTypeRefinement = parentIsWithinUnmatchedTypeRefinement;\n      if (implementsInterface === false) {\n        this._isMissingData = parentIsMissingData;\n        return undefined;\n      } else if (implementsInterface == null) {\n        this._markDataAsMissing();\n        return null;\n      }\n    }\n    return data;\n  };\n  _proto._createFragmentPointer = function _createFragmentPointer(fragmentSpread, record, data) {\n    var fragmentPointers = data[FRAGMENTS_KEY];\n    if (fragmentPointers == null) {\n      fragmentPointers = data[FRAGMENTS_KEY] = {};\n    }\n    !(typeof fragmentPointers === 'object' && fragmentPointers != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReader: Expected fragment spread data to be an object, got `%s`.', fragmentPointers) : invariant(false) : void 0;\n    if (data[ID_KEY] == null) {\n      data[ID_KEY] = RelayModernRecord.getDataID(record);\n    }\n    fragmentPointers[fragmentSpread.name] = getArgumentValues(fragmentSpread.args, this._variables, this._isWithinUnmatchedTypeRefinement);\n    data[FRAGMENT_OWNER_KEY] = this._owner;\n    if (RelayFeatureFlags.ENABLE_CLIENT_EDGES) {\n      if (this._clientEdgeTraversalPath.length > 0 && this._clientEdgeTraversalPath[this._clientEdgeTraversalPath.length - 1] !== null) {\n        data[CLIENT_EDGE_TRAVERSAL_PATH] = (0, _toConsumableArray2[\"default\"])(this._clientEdgeTraversalPath);\n      }\n    }\n  };\n  _proto._createInlineDataOrResolverFragmentPointer = function _createInlineDataOrResolverFragmentPointer(fragmentSpreadOrFragment, record, data) {\n    var fragmentPointers = data[FRAGMENTS_KEY];\n    if (fragmentPointers == null) {\n      fragmentPointers = data[FRAGMENTS_KEY] = {};\n    }\n    !(typeof fragmentPointers === 'object' && fragmentPointers != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReader: Expected fragment spread data to be an object, got `%s`.', fragmentPointers) : invariant(false) : void 0;\n    if (data[ID_KEY] == null) {\n      data[ID_KEY] = RelayModernRecord.getDataID(record);\n    }\n    var inlineData = {};\n    var parentFragmentName = this._fragmentName;\n    this._fragmentName = fragmentSpreadOrFragment.name;\n    var parentVariables = this._variables;\n    var argumentVariables = fragmentSpreadOrFragment.args ? getArgumentValues(fragmentSpreadOrFragment.args, this._variables) : {};\n    this._variables = RelayConcreteVariables.getFragmentVariables(fragmentSpreadOrFragment, this._owner.variables, argumentVariables);\n    this._traverseSelections(fragmentSpreadOrFragment.selections, record, inlineData);\n    this._variables = parentVariables;\n    this._fragmentName = parentFragmentName;\n    fragmentPointers[fragmentSpreadOrFragment.name] = inlineData;\n  };\n  _proto._addMissingRequiredFields = function _addMissingRequiredFields(additional) {\n    if (this._missingRequiredFields == null) {\n      this._missingRequiredFields = additional;\n      return;\n    }\n    if (this._missingRequiredFields.action === 'THROW') {\n      return;\n    }\n    if (additional.action === 'THROW') {\n      this._missingRequiredFields = additional;\n      return;\n    }\n    this._missingRequiredFields = {\n      action: 'LOG',\n      fields: [].concat((0, _toConsumableArray2[\"default\"])(this._missingRequiredFields.fields), (0, _toConsumableArray2[\"default\"])(additional.fields))\n    };\n  };\n  _proto._implementsInterface = function _implementsInterface(record, abstractKey) {\n    var typeName = RelayModernRecord.getType(record);\n    var typeRecord = this._recordSource.get(generateTypeID(typeName));\n    var implementsInterface = typeRecord != null ? RelayModernRecord.getValue(typeRecord, abstractKey) : null;\n    return implementsInterface;\n  };\n  return RelayReader;\n}();\nfunction getResolverValue(field, variables, fragmentKey) {\n  var resolverFunction = typeof field.resolverModule === 'function' ? field.resolverModule : field.resolverModule[\"default\"];\n  var resolverResult = null;\n  var resolverError = null;\n  try {\n    var resolverFunctionArgs = [];\n    if (field.fragment != null) {\n      resolverFunctionArgs.push(fragmentKey);\n    }\n    var args = field.args ? getArgumentValues(field.args, variables) : undefined;\n    resolverFunctionArgs.push(args);\n    resolverResult = resolverFunction.apply(null, resolverFunctionArgs);\n  } catch (e) {\n    if (e === RESOLVER_FRAGMENT_MISSING_DATA_SENTINEL) {\n      resolverResult = undefined;\n    } else {\n      resolverError = e;\n    }\n  }\n  return [resolverResult, resolverError];\n}\nfunction assertValidClientEdgeResolverResponse(field, clientEdgeResolverResponse) {\n  if (field.linkedField.plural) {\n    !Array.isArray(clientEdgeResolverResponse) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected plural Client Edge Relay Resolver to return an array containing IDs or objects with shape {id}.') : invariant(false) : void 0;\n    return {\n      kind: 'PluralConcrete',\n      ids: clientEdgeResolverResponse.map(function (response) {\n        return extractIdFromResponse(response, 'Expected this plural Client Edge Relay Resolver to return an array containing IDs or objects with shape {id}.');\n      })\n    };\n  } else {\n    return {\n      kind: 'SingularConcrete',\n      id: extractIdFromResponse(clientEdgeResolverResponse, 'Expected this Client Edge Relay Resolver to return an ID of type `string` or an object with shape {id}.')\n    };\n  }\n}\nfunction getStoreIDAndTraversalPathSegmentForSingularClientEdgeResolver(field, clientEdgeResolverResponse, resolverCache) {\n  if (field.kind === CLIENT_EDGE_TO_CLIENT_OBJECT) {\n    if (field.backingField.normalizationInfo == null) {\n      var concreteType = field.concreteType;\n      !(concreteType != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected at least one of backingField.normalizationInfo or field.concreteType to be non-null. ' + 'This indicates a bug in Relay.') : invariant(false) : void 0;\n      return [resolverCache.ensureClientRecord(clientEdgeResolverResponse, concreteType), null];\n    } else {\n      return [clientEdgeResolverResponse, null];\n    }\n  } else {\n    return [clientEdgeResolverResponse, {\n      readerClientEdge: field,\n      clientEdgeDestinationID: clientEdgeResolverResponse\n    }];\n  }\n}\nfunction getStoreIDsForPluralClientEdgeResolver(field, clientEdgeResolverResponse, resolverCache) {\n  if (field.kind === CLIENT_EDGE_TO_CLIENT_OBJECT) {\n    if (field.backingField.normalizationInfo == null) {\n      var concreteType = field.concreteType;\n      !(concreteType != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected at least one of backingField.normalizationInfo or field.concreteType to be non-null. ' + 'This indicates a bug in Relay.') : invariant(false) : void 0;\n      return clientEdgeResolverResponse.map(function (id) {\n        return resolverCache.ensureClientRecord(id, concreteType);\n      });\n    } else {\n      return clientEdgeResolverResponse;\n    }\n  } else {\n    !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Unexpected Client Edge to plural server type. This should be prevented by the compiler.') : invariant(false) : void 0;\n  }\n}\nfunction extractIdFromResponse(individualResponse, errorMessage) {\n  if (typeof individualResponse === 'string') {\n    return individualResponse;\n  } else if (typeof individualResponse === 'object' && individualResponse != null && typeof individualResponse.id === 'string') {\n    return individualResponse.id;\n  }\n  !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, errorMessage) : invariant(false) : void 0;\n}\nmodule.exports = {\n  read: read\n};","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\nvar RelayModernRecord = require('./RelayModernRecord');\nvar RelayRecordState = require('./RelayRecordState');\nvar EXISTENT = RelayRecordState.EXISTENT,\n  NONEXISTENT = RelayRecordState.NONEXISTENT,\n  UNKNOWN = RelayRecordState.UNKNOWN;\nvar RelayRecordSource = /*#__PURE__*/function () {\n  function RelayRecordSource(records) {\n    var _this = this;\n    this._records = new Map();\n    if (records != null) {\n      Object.keys(records).forEach(function (key) {\n        var object = records[key];\n        var record = RelayModernRecord.fromObject(object);\n        _this._records.set(key, record);\n      });\n    }\n  }\n  RelayRecordSource.create = function create(records) {\n    return new RelayRecordSource(records);\n  };\n  var _proto = RelayRecordSource.prototype;\n  _proto.clear = function clear() {\n    this._records = new Map();\n  };\n  _proto[\"delete\"] = function _delete(dataID) {\n    this._records.set(dataID, null);\n  };\n  _proto.get = function get(dataID) {\n    return this._records.get(dataID);\n  };\n  _proto.getRecordIDs = function getRecordIDs() {\n    return Array.from(this._records.keys());\n  };\n  _proto.getStatus = function getStatus(dataID) {\n    if (!this._records.has(dataID)) {\n      return UNKNOWN;\n    }\n    return this._records.get(dataID) == null ? NONEXISTENT : EXISTENT;\n  };\n  _proto.has = function has(dataID) {\n    return this._records.has(dataID);\n  };\n  _proto.remove = function remove(dataID) {\n    this._records[\"delete\"](dataID);\n  };\n  _proto.set = function set(dataID, record) {\n    this._records.set(dataID, record);\n  };\n  _proto.size = function size() {\n    return this._records.size;\n  };\n  _proto.toJSON = function toJSON() {\n    var obj = {};\n    var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(this._records),\n      _step;\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var _step$value = _step.value,\n          key = _step$value[0],\n          record = _step$value[1];\n        obj[key] = RelayModernRecord.toJSON(record);\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n    return obj;\n  };\n  return RelayRecordSource;\n}();\nmodule.exports = RelayRecordSource;","'use strict';\n\nvar RelayRecordState = {\n  EXISTENT: 'EXISTENT',\n  NONEXISTENT: 'NONEXISTENT',\n  UNKNOWN: 'UNKNOWN'\n};\nmodule.exports = RelayRecordState;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\nvar getOperation = require('../util/getOperation');\nvar RelayConcreteNode = require('../util/RelayConcreteNode');\nvar cloneRelayHandleSourceField = require('./cloneRelayHandleSourceField');\nvar getOutputTypeRecordIDs = require('./experimental-live-resolvers/getOutputTypeRecordIDs');\nvar _require = require('./RelayConcreteVariables'),\n  getLocalVariables = _require.getLocalVariables;\nvar RelayModernRecord = require('./RelayModernRecord');\nvar RelayStoreUtils = require('./RelayStoreUtils');\nvar _require2 = require('./TypeID'),\n  generateTypeID = _require2.generateTypeID;\nvar invariant = require('invariant');\nvar ACTOR_CHANGE = RelayConcreteNode.ACTOR_CHANGE,\n  CONDITION = RelayConcreteNode.CONDITION,\n  CLIENT_COMPONENT = RelayConcreteNode.CLIENT_COMPONENT,\n  CLIENT_EXTENSION = RelayConcreteNode.CLIENT_EXTENSION,\n  DEFER = RelayConcreteNode.DEFER,\n  FRAGMENT_SPREAD = RelayConcreteNode.FRAGMENT_SPREAD,\n  INLINE_FRAGMENT = RelayConcreteNode.INLINE_FRAGMENT,\n  LINKED_FIELD = RelayConcreteNode.LINKED_FIELD,\n  MODULE_IMPORT = RelayConcreteNode.MODULE_IMPORT,\n  LINKED_HANDLE = RelayConcreteNode.LINKED_HANDLE,\n  SCALAR_FIELD = RelayConcreteNode.SCALAR_FIELD,\n  SCALAR_HANDLE = RelayConcreteNode.SCALAR_HANDLE,\n  STREAM = RelayConcreteNode.STREAM,\n  TYPE_DISCRIMINATOR = RelayConcreteNode.TYPE_DISCRIMINATOR,\n  RELAY_RESOLVER = RelayConcreteNode.RELAY_RESOLVER,\n  RELAY_LIVE_RESOLVER = RelayConcreteNode.RELAY_LIVE_RESOLVER,\n  CLIENT_EDGE_TO_CLIENT_OBJECT = RelayConcreteNode.CLIENT_EDGE_TO_CLIENT_OBJECT;\nvar getStorageKey = RelayStoreUtils.getStorageKey,\n  getModuleOperationKey = RelayStoreUtils.getModuleOperationKey;\nfunction mark(recordSource, selector, references, operationLoader, shouldProcessClientComponents) {\n  var dataID = selector.dataID,\n    node = selector.node,\n    variables = selector.variables;\n  var marker = new RelayReferenceMarker(recordSource, variables, references, operationLoader, shouldProcessClientComponents);\n  marker.mark(node, dataID);\n}\nvar RelayReferenceMarker = /*#__PURE__*/function () {\n  function RelayReferenceMarker(recordSource, variables, references, operationLoader, shouldProcessClientComponents) {\n    this._operationLoader = operationLoader !== null && operationLoader !== void 0 ? operationLoader : null;\n    this._operationName = null;\n    this._recordSource = recordSource;\n    this._references = references;\n    this._variables = variables;\n    this._shouldProcessClientComponents = shouldProcessClientComponents;\n  }\n  var _proto = RelayReferenceMarker.prototype;\n  _proto.mark = function mark(node, dataID) {\n    if (node.kind === 'Operation' || node.kind === 'SplitOperation') {\n      this._operationName = node.name;\n    }\n    this._traverse(node, dataID);\n  };\n  _proto._traverse = function _traverse(node, dataID) {\n    this._references.add(dataID);\n    var record = this._recordSource.get(dataID);\n    if (record == null) {\n      return;\n    }\n    this._traverseSelections(node.selections, record);\n  };\n  _proto._getVariableValue = function _getVariableValue(name) {\n    !this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReferenceMarker(): Undefined variable `%s`.', name) : invariant(false) : void 0;\n    return this._variables[name];\n  };\n  _proto._traverseSelections = function _traverseSelections(selections, record) {\n    var _this = this;\n    selections.forEach(function (selection) {\n      switch (selection.kind) {\n        case ACTOR_CHANGE:\n          _this._traverseLink(selection.linkedField, record);\n          break;\n        case LINKED_FIELD:\n          if (selection.plural) {\n            _this._traversePluralLink(selection, record);\n          } else {\n            _this._traverseLink(selection, record);\n          }\n          break;\n        case CONDITION:\n          var conditionValue = Boolean(_this._getVariableValue(selection.condition));\n          if (conditionValue === selection.passingValue) {\n            _this._traverseSelections(selection.selections, record);\n          }\n          break;\n        case INLINE_FRAGMENT:\n          if (selection.abstractKey == null) {\n            var typeName = RelayModernRecord.getType(record);\n            if (typeName != null && typeName === selection.type || typeName === RelayStoreUtils.ROOT_TYPE) {\n              _this._traverseSelections(selection.selections, record);\n            }\n          } else {\n            var _typeName = RelayModernRecord.getType(record);\n            var typeID = generateTypeID(_typeName);\n            _this._references.add(typeID);\n            _this._traverseSelections(selection.selections, record);\n          }\n          break;\n        case FRAGMENT_SPREAD:\n          var prevVariables = _this._variables;\n          _this._variables = getLocalVariables(_this._variables, selection.fragment.argumentDefinitions, selection.args);\n          _this._traverseSelections(selection.fragment.selections, record);\n          _this._variables = prevVariables;\n          break;\n        case LINKED_HANDLE:\n          var handleField = cloneRelayHandleSourceField(selection, selections, _this._variables);\n          if (handleField.plural) {\n            _this._traversePluralLink(handleField, record);\n          } else {\n            _this._traverseLink(handleField, record);\n          }\n          break;\n        case DEFER:\n        case STREAM:\n          _this._traverseSelections(selection.selections, record);\n          break;\n        case SCALAR_FIELD:\n        case SCALAR_HANDLE:\n          break;\n        case TYPE_DISCRIMINATOR:\n          {\n            var _typeName2 = RelayModernRecord.getType(record);\n            var _typeID = generateTypeID(_typeName2);\n            _this._references.add(_typeID);\n            break;\n          }\n        case MODULE_IMPORT:\n          _this._traverseModuleImport(selection, record);\n          break;\n        case CLIENT_EXTENSION:\n          _this._traverseSelections(selection.selections, record);\n          break;\n        case CLIENT_COMPONENT:\n          if (_this._shouldProcessClientComponents === false) {\n            break;\n          }\n          _this._traverseSelections(selection.fragment.selections, record);\n          break;\n        case RELAY_RESOLVER:\n          _this._traverseResolverField(selection, record);\n          break;\n        case RELAY_LIVE_RESOLVER:\n          _this._traverseResolverField(selection, record);\n          break;\n        case CLIENT_EDGE_TO_CLIENT_OBJECT:\n          _this._traverseClientEdgeToClientObject(selection, record);\n          break;\n        default:\n          selection;\n          !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReferenceMarker: Unknown AST node `%s`.', selection) : invariant(false) : void 0;\n      }\n    });\n  };\n  _proto._traverseClientEdgeToClientObject = function _traverseClientEdgeToClientObject(field, record) {\n    var dataID = this._traverseResolverField(field.backingField, record);\n    if (dataID == null) {\n      return;\n    }\n    var resolverRecord = this._recordSource.get(dataID);\n    if (resolverRecord == null) {\n      return;\n    }\n    if (field.backingField.isOutputType) {\n      var outputTypeRecordIDs = getOutputTypeRecordIDs(resolverRecord);\n      if (outputTypeRecordIDs != null) {\n        var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(outputTypeRecordIDs),\n          _step;\n        try {\n          for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            var _dataID = _step.value;\n            this._references.add(_dataID);\n          }\n        } catch (err) {\n          _iterator.e(err);\n        } finally {\n          _iterator.f();\n        }\n      }\n    } else {\n      var linkedField = field.linkedField;\n      var concreteType = linkedField.concreteType;\n      if (concreteType == null) {\n        return;\n      }\n      if (linkedField.plural) {\n        var dataIDs = RelayModernRecord.getResolverLinkedRecordIDs(resolverRecord, concreteType);\n        if (dataIDs != null) {\n          var _iterator2 = (0, _createForOfIteratorHelper2[\"default\"])(dataIDs),\n            _step2;\n          try {\n            for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n              var _dataID2 = _step2.value;\n              if (_dataID2 != null) {\n                this._traverse(linkedField, _dataID2);\n              }\n            }\n          } catch (err) {\n            _iterator2.e(err);\n          } finally {\n            _iterator2.f();\n          }\n        }\n      } else {\n        var _dataID3 = RelayModernRecord.getResolverLinkedRecordID(resolverRecord, concreteType);\n        if (_dataID3 != null) {\n          this._traverse(linkedField, _dataID3);\n        }\n      }\n    }\n  };\n  _proto._traverseResolverField = function _traverseResolverField(field, record) {\n    var storageKey = getStorageKey(field, this._variables);\n    var dataID = RelayModernRecord.getLinkedRecordID(record, storageKey);\n    if (dataID != null) {\n      this._references.add(dataID);\n    }\n    var fragment = field.fragment;\n    if (fragment != null) {\n      this._traverseSelections([fragment], record);\n    }\n    return dataID;\n  };\n  _proto._traverseModuleImport = function _traverseModuleImport(moduleImport, record) {\n    var _this$_operationName;\n    var operationLoader = this._operationLoader;\n    !(operationLoader !== null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReferenceMarker: Expected an operationLoader to be configured when using `@module`. ' + 'Could not load fragment `%s` in operation `%s`.', moduleImport.fragmentName, (_this$_operationName = this._operationName) !== null && _this$_operationName !== void 0 ? _this$_operationName : '(unknown)') : invariant(false) : void 0;\n    var operationKey = getModuleOperationKey(moduleImport.documentName);\n    var operationReference = RelayModernRecord.getValue(record, operationKey);\n    if (operationReference == null) {\n      return;\n    }\n    var normalizationRootNode = operationLoader.get(operationReference);\n    if (normalizationRootNode != null) {\n      var operation = getOperation(normalizationRootNode);\n      var prevVariables = this._variables;\n      this._variables = getLocalVariables(this._variables, operation.argumentDefinitions, moduleImport.args);\n      this._traverseSelections(operation.selections, record);\n      this._variables = prevVariables;\n    }\n  };\n  _proto._traverseLink = function _traverseLink(field, record) {\n    var storageKey = getStorageKey(field, this._variables);\n    var linkedID = RelayModernRecord.getLinkedRecordID(record, storageKey);\n    if (linkedID == null) {\n      return;\n    }\n    this._traverse(field, linkedID);\n  };\n  _proto._traversePluralLink = function _traversePluralLink(field, record) {\n    var _this2 = this;\n    var storageKey = getStorageKey(field, this._variables);\n    var linkedIDs = RelayModernRecord.getLinkedRecordIDs(record, storageKey);\n    if (linkedIDs == null) {\n      return;\n    }\n    linkedIDs.forEach(function (linkedID) {\n      if (linkedID != null) {\n        _this2._traverse(field, linkedID);\n      }\n    });\n  };\n  return RelayReferenceMarker;\n}();\nmodule.exports = {\n  mark: mark\n};","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\nvar _require = require('../multi-actor-environment/ActorUtils'),\n  ACTOR_IDENTIFIER_FIELD_NAME = _require.ACTOR_IDENTIFIER_FIELD_NAME,\n  getActorIdentifierFromPayload = _require.getActorIdentifierFromPayload;\nvar _require2 = require('../util/RelayConcreteNode'),\n  ACTOR_CHANGE = _require2.ACTOR_CHANGE,\n  CLIENT_COMPONENT = _require2.CLIENT_COMPONENT,\n  CLIENT_EDGE_TO_CLIENT_OBJECT = _require2.CLIENT_EDGE_TO_CLIENT_OBJECT,\n  CLIENT_EXTENSION = _require2.CLIENT_EXTENSION,\n  CONDITION = _require2.CONDITION,\n  DEFER = _require2.DEFER,\n  FRAGMENT_SPREAD = _require2.FRAGMENT_SPREAD,\n  INLINE_FRAGMENT = _require2.INLINE_FRAGMENT,\n  LINKED_FIELD = _require2.LINKED_FIELD,\n  LINKED_HANDLE = _require2.LINKED_HANDLE,\n  MODULE_IMPORT = _require2.MODULE_IMPORT,\n  RELAY_LIVE_RESOLVER = _require2.RELAY_LIVE_RESOLVER,\n  RELAY_RESOLVER = _require2.RELAY_RESOLVER,\n  SCALAR_FIELD = _require2.SCALAR_FIELD,\n  SCALAR_HANDLE = _require2.SCALAR_HANDLE,\n  STREAM = _require2.STREAM,\n  TYPE_DISCRIMINATOR = _require2.TYPE_DISCRIMINATOR;\nvar _require3 = require('./ClientID'),\n  generateClientID = _require3.generateClientID,\n  isClientID = _require3.isClientID;\nvar _require4 = require('./RelayConcreteVariables'),\n  getLocalVariables = _require4.getLocalVariables;\nvar _require5 = require('./RelayErrorTrie'),\n  buildErrorTrie = _require5.buildErrorTrie,\n  getErrorsByKey = _require5.getErrorsByKey,\n  getNestedErrorTrieByKey = _require5.getNestedErrorTrieByKey;\nvar RelayModernRecord = require('./RelayModernRecord');\nvar _require6 = require('./RelayModernSelector'),\n  createNormalizationSelector = _require6.createNormalizationSelector;\nvar _require7 = require('./RelayStoreUtils'),\n  ROOT_ID = _require7.ROOT_ID,\n  TYPENAME_KEY = _require7.TYPENAME_KEY,\n  getArgumentValues = _require7.getArgumentValues,\n  getHandleStorageKey = _require7.getHandleStorageKey,\n  getModuleComponentKey = _require7.getModuleComponentKey,\n  getModuleOperationKey = _require7.getModuleOperationKey,\n  getStorageKey = _require7.getStorageKey;\nvar _require8 = require('./TypeID'),\n  TYPE_SCHEMA_TYPE = _require8.TYPE_SCHEMA_TYPE,\n  generateTypeID = _require8.generateTypeID;\nvar areEqual = require(\"fbjs/lib/areEqual\");\nvar invariant = require('invariant');\nvar warning = require(\"fbjs/lib/warning\");\nfunction normalize(recordSource, selector, response, options, errors) {\n  var dataID = selector.dataID,\n    node = selector.node,\n    variables = selector.variables;\n  var normalizer = new RelayResponseNormalizer(recordSource, variables, options);\n  return normalizer.normalizeResponse(node, dataID, response, errors);\n}\nvar RelayResponseNormalizer = /*#__PURE__*/function () {\n  function RelayResponseNormalizer(recordSource, variables, options) {\n    this._actorIdentifier = options.actorIdentifier;\n    this._getDataId = options.getDataID;\n    this._handleFieldPayloads = [];\n    this._treatMissingFieldsAsNull = options.treatMissingFieldsAsNull;\n    this._incrementalPlaceholders = [];\n    this._isClientExtension = false;\n    this._isUnmatchedAbstractType = false;\n    this._followupPayloads = [];\n    this._path = options.path ? (0, _toConsumableArray2[\"default\"])(options.path) : [];\n    this._recordSource = recordSource;\n    this._variables = variables;\n    this._shouldProcessClientComponents = options.shouldProcessClientComponents;\n  }\n  var _proto = RelayResponseNormalizer.prototype;\n  _proto.normalizeResponse = function normalizeResponse(node, dataID, data, errors) {\n    var record = this._recordSource.get(dataID);\n    !record ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer(): Expected root record `%s` to exist.', dataID) : invariant(false) : void 0;\n    this._assignClientAbstractTypes(node);\n    this._errorTrie = buildErrorTrie(errors);\n    this._traverseSelections(node, record, data);\n    return {\n      errors: errors,\n      fieldPayloads: this._handleFieldPayloads,\n      incrementalPlaceholders: this._incrementalPlaceholders,\n      followupPayloads: this._followupPayloads,\n      source: this._recordSource,\n      isFinal: false\n    };\n  };\n  _proto._assignClientAbstractTypes = function _assignClientAbstractTypes(node) {\n    var clientAbstractTypes = node.clientAbstractTypes;\n    if (clientAbstractTypes != null) {\n      for (var _i = 0, _Object$keys = Object.keys(clientAbstractTypes); _i < _Object$keys.length; _i++) {\n        var abstractType = _Object$keys[_i];\n        var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(clientAbstractTypes[abstractType]),\n          _step;\n        try {\n          for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            var concreteType = _step.value;\n            var typeID = generateTypeID(concreteType);\n            var typeRecord = this._recordSource.get(typeID);\n            if (typeRecord == null) {\n              typeRecord = RelayModernRecord.create(typeID, TYPE_SCHEMA_TYPE);\n              this._recordSource.set(typeID, typeRecord);\n            }\n            RelayModernRecord.setValue(typeRecord, abstractType, true);\n          }\n        } catch (err) {\n          _iterator.e(err);\n        } finally {\n          _iterator.f();\n        }\n      }\n    }\n  };\n  _proto._getVariableValue = function _getVariableValue(name) {\n    !this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer(): Undefined variable `%s`.', name) : invariant(false) : void 0;\n    return this._variables[name];\n  };\n  _proto._getRecordType = function _getRecordType(data) {\n    var typeName = data[TYPENAME_KEY];\n    !(typeName != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer(): Expected a typename for record `%s`.', JSON.stringify(data, null, 2)) : invariant(false) : void 0;\n    return typeName;\n  };\n  _proto._traverseSelections = function _traverseSelections(node, record, data) {\n    for (var i = 0; i < node.selections.length; i++) {\n      var selection = node.selections[i];\n      switch (selection.kind) {\n        case SCALAR_FIELD:\n        case LINKED_FIELD:\n          this._normalizeField(selection, record, data);\n          break;\n        case CONDITION:\n          var conditionValue = Boolean(this._getVariableValue(selection.condition));\n          if (conditionValue === selection.passingValue) {\n            this._traverseSelections(selection, record, data);\n          }\n          break;\n        case FRAGMENT_SPREAD:\n          {\n            var prevVariables = this._variables;\n            this._variables = getLocalVariables(this._variables, selection.fragment.argumentDefinitions, selection.args);\n            this._traverseSelections(selection.fragment, record, data);\n            this._variables = prevVariables;\n            break;\n          }\n        case INLINE_FRAGMENT:\n          {\n            var abstractKey = selection.abstractKey;\n            if (abstractKey == null) {\n              var typeName = RelayModernRecord.getType(record);\n              if (typeName === selection.type) {\n                this._traverseSelections(selection, record, data);\n              }\n            } else {\n              var implementsInterface = data.hasOwnProperty(abstractKey);\n              var _typeName = RelayModernRecord.getType(record);\n              var typeID = generateTypeID(_typeName);\n              var typeRecord = this._recordSource.get(typeID);\n              if (typeRecord == null) {\n                typeRecord = RelayModernRecord.create(typeID, TYPE_SCHEMA_TYPE);\n                this._recordSource.set(typeID, typeRecord);\n              }\n              RelayModernRecord.setValue(typeRecord, abstractKey, implementsInterface);\n              if (implementsInterface) {\n                this._traverseSelections(selection, record, data);\n              }\n            }\n            break;\n          }\n        case TYPE_DISCRIMINATOR:\n          {\n            var _abstractKey = selection.abstractKey;\n            var _implementsInterface = data.hasOwnProperty(_abstractKey);\n            var _typeName2 = RelayModernRecord.getType(record);\n            var _typeID = generateTypeID(_typeName2);\n            var _typeRecord = this._recordSource.get(_typeID);\n            if (_typeRecord == null) {\n              _typeRecord = RelayModernRecord.create(_typeID, TYPE_SCHEMA_TYPE);\n              this._recordSource.set(_typeID, _typeRecord);\n            }\n            RelayModernRecord.setValue(_typeRecord, _abstractKey, _implementsInterface);\n            break;\n          }\n        case LINKED_HANDLE:\n        case SCALAR_HANDLE:\n          var args = selection.args ? getArgumentValues(selection.args, this._variables) : {};\n          var fieldKey = getStorageKey(selection, this._variables);\n          var handleKey = getHandleStorageKey(selection, this._variables);\n          this._handleFieldPayloads.push({\n            args: args,\n            dataID: RelayModernRecord.getDataID(record),\n            fieldKey: fieldKey,\n            handle: selection.handle,\n            handleKey: handleKey,\n            handleArgs: selection.handleArgs ? getArgumentValues(selection.handleArgs, this._variables) : {}\n          });\n          break;\n        case MODULE_IMPORT:\n          this._normalizeModuleImport(selection, record, data);\n          break;\n        case DEFER:\n          this._normalizeDefer(selection, record, data);\n          break;\n        case STREAM:\n          this._normalizeStream(selection, record, data);\n          break;\n        case CLIENT_EXTENSION:\n          var isClientExtension = this._isClientExtension;\n          this._isClientExtension = true;\n          this._traverseSelections(selection, record, data);\n          this._isClientExtension = isClientExtension;\n          break;\n        case CLIENT_COMPONENT:\n          if (this._shouldProcessClientComponents === false) {\n            break;\n          }\n          this._traverseSelections(selection.fragment, record, data);\n          break;\n        case ACTOR_CHANGE:\n          this._normalizeActorChange(selection, record, data);\n          break;\n        case RELAY_RESOLVER:\n          this._normalizeResolver(selection, record, data);\n          break;\n        case RELAY_LIVE_RESOLVER:\n          this._normalizeResolver(selection, record, data);\n          break;\n        case CLIENT_EDGE_TO_CLIENT_OBJECT:\n          this._normalizeResolver(selection.backingField, record, data);\n          break;\n        default:\n          selection;\n          !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer(): Unexpected ast kind `%s`.', selection.kind) : invariant(false) : void 0;\n      }\n    }\n  };\n  _proto._normalizeResolver = function _normalizeResolver(resolver, record, data) {\n    if (resolver.fragment != null) {\n      this._traverseSelections(resolver.fragment, record, data);\n    }\n  };\n  _proto._normalizeDefer = function _normalizeDefer(defer, record, data) {\n    var isDeferred = defer[\"if\"] === null || this._getVariableValue(defer[\"if\"]);\n    if (process.env.NODE_ENV !== \"production\") {\n      process.env.NODE_ENV !== \"production\" ? warning(typeof isDeferred === 'boolean', 'RelayResponseNormalizer: Expected value for @defer `if` argument to ' + 'be a boolean, got `%s`.', isDeferred) : void 0;\n    }\n    if (isDeferred === false) {\n      this._traverseSelections(defer, record, data);\n    } else {\n      this._incrementalPlaceholders.push({\n        kind: 'defer',\n        data: data,\n        label: defer.label,\n        path: (0, _toConsumableArray2[\"default\"])(this._path),\n        selector: createNormalizationSelector(defer, RelayModernRecord.getDataID(record), this._variables),\n        typeName: RelayModernRecord.getType(record),\n        actorIdentifier: this._actorIdentifier\n      });\n    }\n  };\n  _proto._normalizeStream = function _normalizeStream(stream, record, data) {\n    this._traverseSelections(stream, record, data);\n    var isStreamed = stream[\"if\"] === null || this._getVariableValue(stream[\"if\"]);\n    if (process.env.NODE_ENV !== \"production\") {\n      process.env.NODE_ENV !== \"production\" ? warning(typeof isStreamed === 'boolean', 'RelayResponseNormalizer: Expected value for @stream `if` argument ' + 'to be a boolean, got `%s`.', isStreamed) : void 0;\n    }\n    if (isStreamed === true) {\n      this._incrementalPlaceholders.push({\n        kind: 'stream',\n        label: stream.label,\n        path: (0, _toConsumableArray2[\"default\"])(this._path),\n        parentID: RelayModernRecord.getDataID(record),\n        node: stream,\n        variables: this._variables,\n        actorIdentifier: this._actorIdentifier\n      });\n    }\n  };\n  _proto._normalizeModuleImport = function _normalizeModuleImport(moduleImport, record, data) {\n    !(typeof data === 'object' && data) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer: Expected data for @module to be an object.') : invariant(false) : void 0;\n    var typeName = RelayModernRecord.getType(record);\n    var componentKey = getModuleComponentKey(moduleImport.documentName);\n    var componentReference = moduleImport.componentModuleProvider || data[componentKey];\n    RelayModernRecord.setValue(record, componentKey, componentReference !== null && componentReference !== void 0 ? componentReference : null);\n    var operationKey = getModuleOperationKey(moduleImport.documentName);\n    var operationReference = moduleImport.operationModuleProvider || data[operationKey];\n    RelayModernRecord.setValue(record, operationKey, operationReference !== null && operationReference !== void 0 ? operationReference : null);\n    if (operationReference != null) {\n      this._followupPayloads.push({\n        kind: 'ModuleImportPayload',\n        args: moduleImport.args,\n        data: data,\n        dataID: RelayModernRecord.getDataID(record),\n        operationReference: operationReference,\n        path: (0, _toConsumableArray2[\"default\"])(this._path),\n        typeName: typeName,\n        variables: this._variables,\n        actorIdentifier: this._actorIdentifier\n      });\n    }\n  };\n  _proto._normalizeField = function _normalizeField(selection, record, data) {\n    !(typeof data === 'object' && data) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'writeField(): Expected data for field `%s` to be an object.', selection.name) : invariant(false) : void 0;\n    var responseKey = selection.alias || selection.name;\n    var storageKey = getStorageKey(selection, this._variables);\n    var fieldValue = data[responseKey];\n    if (fieldValue == null) {\n      if (fieldValue === undefined) {\n        var isOptionalField = this._isClientExtension || this._isUnmatchedAbstractType;\n        if (isOptionalField) {\n          return;\n        } else if (!this._treatMissingFieldsAsNull) {\n          if (process.env.NODE_ENV !== \"production\") {\n            process.env.NODE_ENV !== \"production\" ? warning(false, 'RelayResponseNormalizer: Payload did not contain a value ' + 'for field `%s: %s`. Check that you are parsing with the same ' + 'query that was used to fetch the payload.', responseKey, storageKey) : void 0;\n          }\n          return;\n        }\n      }\n      if (process.env.NODE_ENV !== \"production\") {\n        if (selection.kind === SCALAR_FIELD) {\n          this._validateConflictingFieldsWithIdenticalId(record, storageKey, null);\n        }\n      }\n      RelayModernRecord.setValue(record, storageKey, null);\n      var errorTrie = this._errorTrie;\n      if (errorTrie != null) {\n        var errors = getErrorsByKey(errorTrie, responseKey);\n        if (errors != null) {\n          RelayModernRecord.setErrors(record, storageKey, errors);\n        }\n      }\n      return;\n    }\n    if (selection.kind === SCALAR_FIELD) {\n      if (process.env.NODE_ENV !== \"production\") {\n        this._validateConflictingFieldsWithIdenticalId(record, storageKey, fieldValue);\n      }\n      RelayModernRecord.setValue(record, storageKey, fieldValue);\n    } else if (selection.kind === LINKED_FIELD) {\n      this._path.push(responseKey);\n      var oldErrorTrie = this._errorTrie;\n      this._errorTrie = oldErrorTrie == null ? null : getNestedErrorTrieByKey(oldErrorTrie, responseKey);\n      if (selection.plural) {\n        this._normalizePluralLink(selection, record, storageKey, fieldValue);\n      } else {\n        this._normalizeLink(selection, record, storageKey, fieldValue);\n      }\n      this._errorTrie = oldErrorTrie;\n      this._path.pop();\n    } else {\n      selection;\n      !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer(): Unexpected ast kind `%s` during normalization.', selection.kind) : invariant(false) : void 0;\n    }\n  };\n  _proto._normalizeActorChange = function _normalizeActorChange(selection, record, data) {\n    var _field$concreteType;\n    var field = selection.linkedField;\n    !(typeof data === 'object' && data) ? process.env.NODE_ENV !== \"production\" ? invariant(false, '_normalizeActorChange(): Expected data for field `%s` to be an object.', field.name) : invariant(false) : void 0;\n    var responseKey = field.alias || field.name;\n    var storageKey = getStorageKey(field, this._variables);\n    var fieldValue = data[responseKey];\n    if (fieldValue == null) {\n      if (fieldValue === undefined) {\n        var isOptionalField = this._isClientExtension || this._isUnmatchedAbstractType;\n        if (isOptionalField) {\n          return;\n        } else if (!this._treatMissingFieldsAsNull) {\n          if (process.env.NODE_ENV !== \"production\") {\n            process.env.NODE_ENV !== \"production\" ? warning(false, 'RelayResponseNormalizer: Payload did not contain a value ' + 'for field `%s: %s`. Check that you are parsing with the same ' + 'query that was used to fetch the payload.', responseKey, storageKey) : void 0;\n          }\n          return;\n        }\n      }\n      RelayModernRecord.setValue(record, storageKey, null);\n      return;\n    }\n    var actorIdentifier = getActorIdentifierFromPayload(fieldValue);\n    if (actorIdentifier == null) {\n      if (process.env.NODE_ENV !== \"production\") {\n        process.env.NODE_ENV !== \"production\" ? warning(false, 'RelayResponseNormalizer: Payload did not contain a value ' + 'for field `%s`. Check that you are parsing with the same ' + 'query that was used to fetch the payload. Payload is `%s`.', ACTOR_IDENTIFIER_FIELD_NAME, JSON.stringify(fieldValue, null, 2)) : void 0;\n      }\n      RelayModernRecord.setValue(record, storageKey, null);\n      return;\n    }\n    var typeName = (_field$concreteType = field.concreteType) !== null && _field$concreteType !== void 0 ? _field$concreteType : this._getRecordType(fieldValue);\n    var nextID = this._getDataId(fieldValue, typeName) || RelayModernRecord.getLinkedRecordID(record, storageKey) || generateClientID(RelayModernRecord.getDataID(record), storageKey);\n    !(typeof nextID === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer: Expected id on field `%s` to be a string.', storageKey) : invariant(false) : void 0;\n    RelayModernRecord.setActorLinkedRecordID(record, storageKey, actorIdentifier, nextID);\n    this._followupPayloads.push({\n      kind: 'ActorPayload',\n      data: fieldValue,\n      dataID: nextID,\n      path: [].concat((0, _toConsumableArray2[\"default\"])(this._path), [responseKey]),\n      typeName: typeName,\n      variables: this._variables,\n      node: field,\n      actorIdentifier: actorIdentifier\n    });\n  };\n  _proto._normalizeLink = function _normalizeLink(field, record, storageKey, fieldValue) {\n    var _field$concreteType2;\n    !(typeof fieldValue === 'object' && fieldValue) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer: Expected data for field `%s` to be an object.', storageKey) : invariant(false) : void 0;\n    var nextID = this._getDataId(fieldValue, (_field$concreteType2 = field.concreteType) !== null && _field$concreteType2 !== void 0 ? _field$concreteType2 : this._getRecordType(fieldValue)) || RelayModernRecord.getLinkedRecordID(record, storageKey) || generateClientID(RelayModernRecord.getDataID(record), storageKey);\n    !(typeof nextID === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer: Expected id on field `%s` to be a string.', storageKey) : invariant(false) : void 0;\n    if (process.env.NODE_ENV !== \"production\") {\n      this._validateConflictingLinkedFieldsWithIdenticalId(RelayModernRecord.getLinkedRecordID(record, storageKey), nextID, storageKey);\n    }\n    RelayModernRecord.setLinkedRecordID(record, storageKey, nextID);\n    var nextRecord = this._recordSource.get(nextID);\n    if (!nextRecord) {\n      var typeName = field.concreteType || this._getRecordType(fieldValue);\n      nextRecord = RelayModernRecord.create(nextID, typeName);\n      this._recordSource.set(nextID, nextRecord);\n    } else if (process.env.NODE_ENV !== \"production\") {\n      this._validateRecordType(nextRecord, field, fieldValue);\n    }\n    this._traverseSelections(field, nextRecord, fieldValue);\n  };\n  _proto._normalizePluralLink = function _normalizePluralLink(field, record, storageKey, fieldValue) {\n    var _this = this;\n    !Array.isArray(fieldValue) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer: Expected data for field `%s` to be an array ' + 'of objects.', storageKey) : invariant(false) : void 0;\n    var prevIDs = RelayModernRecord.getLinkedRecordIDs(record, storageKey);\n    var nextIDs = [];\n    fieldValue.forEach(function (item, nextIndex) {\n      var _field$concreteType3;\n      if (item == null) {\n        nextIDs.push(item);\n        return;\n      }\n      _this._path.push(String(nextIndex));\n      var oldErrorTrie = _this._errorTrie;\n      _this._errorTrie = oldErrorTrie == null ? null : getNestedErrorTrieByKey(oldErrorTrie, nextIndex);\n      !(typeof item === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer: Expected elements for field `%s` to be ' + 'objects.', storageKey) : invariant(false) : void 0;\n      var nextID = _this._getDataId(item, (_field$concreteType3 = field.concreteType) !== null && _field$concreteType3 !== void 0 ? _field$concreteType3 : _this._getRecordType(item)) || prevIDs && prevIDs[nextIndex] || generateClientID(RelayModernRecord.getDataID(record), storageKey, nextIndex);\n      !(typeof nextID === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer: Expected id of elements of field `%s` to ' + 'be strings.', storageKey) : invariant(false) : void 0;\n      nextIDs.push(nextID);\n      var nextRecord = _this._recordSource.get(nextID);\n      if (!nextRecord) {\n        var typeName = field.concreteType || _this._getRecordType(item);\n        nextRecord = RelayModernRecord.create(nextID, typeName);\n        _this._recordSource.set(nextID, nextRecord);\n      } else if (process.env.NODE_ENV !== \"production\") {\n        _this._validateRecordType(nextRecord, field, item);\n      }\n      if (process.env.NODE_ENV !== \"production\") {\n        if (prevIDs) {\n          _this._validateConflictingLinkedFieldsWithIdenticalId(prevIDs[nextIndex], nextID, storageKey);\n        }\n      }\n      _this._traverseSelections(field, nextRecord, item);\n      _this._errorTrie = oldErrorTrie;\n      _this._path.pop();\n    });\n    RelayModernRecord.setLinkedRecordIDs(record, storageKey, nextIDs);\n  };\n  _proto._validateRecordType = function _validateRecordType(record, field, payload) {\n    var _field$concreteType4;\n    var typeName = (_field$concreteType4 = field.concreteType) !== null && _field$concreteType4 !== void 0 ? _field$concreteType4 : this._getRecordType(payload);\n    var dataID = RelayModernRecord.getDataID(record);\n    process.env.NODE_ENV !== \"production\" ? warning(isClientID(dataID) && dataID !== ROOT_ID || RelayModernRecord.getType(record) === typeName, 'RelayResponseNormalizer: Invalid record `%s`. Expected %s to be ' + 'consistent, but the record was assigned conflicting types `%s` ' + 'and `%s`. The GraphQL server likely violated the globally unique ' + 'id requirement by returning the same id for different objects.', dataID, TYPENAME_KEY, RelayModernRecord.getType(record), typeName) : void 0;\n  };\n  _proto._validateConflictingFieldsWithIdenticalId = function _validateConflictingFieldsWithIdenticalId(record, storageKey, fieldValue) {\n    if (process.env.NODE_ENV !== \"production\") {\n      var dataID = RelayModernRecord.getDataID(record);\n      var previousValue = RelayModernRecord.getValue(record, storageKey);\n      process.env.NODE_ENV !== \"production\" ? warning(storageKey === TYPENAME_KEY || previousValue === undefined || areEqual(previousValue, fieldValue), 'RelayResponseNormalizer: Invalid record. The record contains two ' + 'instances of the same id: `%s` with conflicting field, %s and its values: %s and %s. ' + 'If two fields are different but share ' + 'the same id, one field will overwrite the other.', dataID, storageKey, previousValue, fieldValue) : void 0;\n    }\n  };\n  _proto._validateConflictingLinkedFieldsWithIdenticalId = function _validateConflictingLinkedFieldsWithIdenticalId(prevID, nextID, storageKey) {\n    if (process.env.NODE_ENV !== \"production\") {\n      process.env.NODE_ENV !== \"production\" ? warning(prevID === undefined || prevID === nextID, 'RelayResponseNormalizer: Invalid record. The record contains ' + 'references to the conflicting field, %s and its id values: %s and %s. ' + 'We need to make sure that the record the field points ' + 'to remains consistent or one field will overwrite the other.', storageKey, prevID, nextID) : void 0;\n    }\n  };\n  return RelayResponseNormalizer;\n}();\nmodule.exports = {\n  normalize: normalize\n};","'use strict';\n\nvar deepFreeze = require('../util/deepFreeze');\nvar recycleNodesInto = require('../util/recycleNodesInto');\nvar RelayFeatureFlags = require('../util/RelayFeatureFlags');\nvar hasOverlappingIDs = require('./hasOverlappingIDs');\nvar hasSignificantOverlappingIDs = require('./hasSignificantOverlappingIDs');\nvar RelayReader = require('./RelayReader');\nvar RelayStoreSubscriptions = /*#__PURE__*/function () {\n  function RelayStoreSubscriptions(log, resolverCache) {\n    this._subscriptions = new Set();\n    this.__log = log;\n    this._resolverCache = resolverCache;\n  }\n  var _proto = RelayStoreSubscriptions.prototype;\n  _proto.subscribe = function subscribe(snapshot, callback) {\n    var _this = this;\n    var subscription = {\n      backup: null,\n      callback: callback,\n      snapshot: snapshot,\n      stale: false\n    };\n    var dispose = function dispose() {\n      _this._subscriptions[\"delete\"](subscription);\n    };\n    this._subscriptions.add(subscription);\n    return {\n      dispose: dispose\n    };\n  };\n  _proto.snapshotSubscriptions = function snapshotSubscriptions(source) {\n    var _this2 = this;\n    this._subscriptions.forEach(function (subscription) {\n      if (!subscription.stale) {\n        subscription.backup = subscription.snapshot;\n        return;\n      }\n      var snapshot = subscription.snapshot;\n      var backup = RelayReader.read(source, snapshot.selector, _this2._resolverCache);\n      var nextData = recycleNodesInto(snapshot.data, backup.data);\n      backup.data = nextData;\n      subscription.backup = backup;\n    });\n  };\n  _proto.restoreSubscriptions = function restoreSubscriptions() {\n    this._subscriptions.forEach(function (subscription) {\n      var backup = subscription.backup;\n      subscription.backup = null;\n      if (backup) {\n        if (backup.data !== subscription.snapshot.data) {\n          subscription.stale = true;\n        }\n        subscription.snapshot = {\n          data: subscription.snapshot.data,\n          isMissingData: backup.isMissingData,\n          missingClientEdges: backup.missingClientEdges,\n          missingLiveResolverFields: backup.missingLiveResolverFields,\n          seenRecords: backup.seenRecords,\n          selector: backup.selector,\n          missingRequiredFields: backup.missingRequiredFields,\n          relayResolverErrors: backup.relayResolverErrors,\n          errorResponseFields: backup.errorResponseFields\n        };\n      } else {\n        subscription.stale = true;\n      }\n    });\n  };\n  _proto.updateSubscriptions = function updateSubscriptions(source, updatedRecordIDs, updatedOwners, sourceOperation) {\n    var _this3 = this;\n    var hasUpdatedRecords = updatedRecordIDs.size !== 0;\n    this._subscriptions.forEach(function (subscription) {\n      var owner = _this3._updateSubscription(source, subscription, updatedRecordIDs, hasUpdatedRecords, sourceOperation);\n      if (owner != null) {\n        updatedOwners.push(owner);\n      }\n    });\n  };\n  _proto._updateSubscription = function _updateSubscription(source, subscription, updatedRecordIDs, hasUpdatedRecords, sourceOperation) {\n    var backup = subscription.backup,\n      callback = subscription.callback,\n      snapshot = subscription.snapshot,\n      stale = subscription.stale;\n    var hasOverlappingUpdates = hasUpdatedRecords && hasOverlappingIDs(snapshot.seenRecords, updatedRecordIDs);\n    if (!stale && !hasOverlappingUpdates) {\n      return;\n    }\n    var nextSnapshot = hasOverlappingUpdates || !backup ? RelayReader.read(source, snapshot.selector, this._resolverCache) : backup;\n    var nextData = recycleNodesInto(snapshot.data, nextSnapshot.data);\n    nextSnapshot = {\n      data: nextData,\n      isMissingData: nextSnapshot.isMissingData,\n      missingClientEdges: nextSnapshot.missingClientEdges,\n      missingLiveResolverFields: nextSnapshot.missingLiveResolverFields,\n      seenRecords: nextSnapshot.seenRecords,\n      selector: nextSnapshot.selector,\n      missingRequiredFields: nextSnapshot.missingRequiredFields,\n      relayResolverErrors: nextSnapshot.relayResolverErrors,\n      errorResponseFields: nextSnapshot.errorResponseFields\n    };\n    if (process.env.NODE_ENV !== \"production\") {\n      deepFreeze(nextSnapshot);\n    }\n    subscription.snapshot = nextSnapshot;\n    subscription.stale = false;\n    if (nextSnapshot.data !== snapshot.data) {\n      if (this.__log && RelayFeatureFlags.ENABLE_NOTIFY_SUBSCRIPTION) {\n        this.__log({\n          name: 'store.notify.subscription',\n          sourceOperation: sourceOperation,\n          snapshot: snapshot,\n          nextSnapshot: nextSnapshot\n        });\n      }\n      callback(nextSnapshot);\n      return snapshot.selector.owner;\n    }\n    if (RelayFeatureFlags.ENABLE_LOOSE_SUBSCRIPTION_ATTRIBUTION && (stale || hasSignificantOverlappingIDs(snapshot.seenRecords, updatedRecordIDs))) {\n      return snapshot.selector.owner;\n    }\n  };\n  return RelayStoreSubscriptions;\n}();\nmodule.exports = RelayStoreSubscriptions;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\nvar getRelayHandleKey = require('../util/getRelayHandleKey');\nvar RelayConcreteNode = require('../util/RelayConcreteNode');\nvar stableCopy = require('../util/stableCopy');\nvar invariant = require('invariant');\nvar VARIABLE = RelayConcreteNode.VARIABLE,\n  LITERAL = RelayConcreteNode.LITERAL,\n  OBJECT_VALUE = RelayConcreteNode.OBJECT_VALUE,\n  LIST_VALUE = RelayConcreteNode.LIST_VALUE;\nvar ERRORS_KEY = '__errors';\nvar MODULE_COMPONENT_KEY_PREFIX = '__module_component_';\nvar MODULE_OPERATION_KEY_PREFIX = '__module_operation_';\nfunction getArgumentValue(arg, variables) {\n  if (arg.kind === VARIABLE) {\n    return getStableVariableValue(arg.variableName, variables);\n  } else if (arg.kind === LITERAL) {\n    return arg.value;\n  } else if (arg.kind === OBJECT_VALUE) {\n    var value = {};\n    arg.fields.forEach(function (field) {\n      value[field.name] = getArgumentValue(field, variables);\n    });\n    return value;\n  } else if (arg.kind === LIST_VALUE) {\n    var _value = [];\n    arg.items.forEach(function (item) {\n      item != null ? _value.push(getArgumentValue(item, variables)) : null;\n    });\n    return _value;\n  }\n}\nfunction getArgumentValues(args, variables, isWithinUnmatchedTypeRefinement) {\n  var values = {};\n  if (isWithinUnmatchedTypeRefinement) {\n    values[RelayStoreUtils.FRAGMENT_POINTER_IS_WITHIN_UNMATCHED_TYPE_REFINEMENT] = true;\n  }\n  if (args) {\n    args.forEach(function (arg) {\n      values[arg.name] = getArgumentValue(arg, variables);\n    });\n  }\n  return values;\n}\nfunction getHandleStorageKey(handleField, variables) {\n  var dynamicKey = handleField.dynamicKey,\n    handle = handleField.handle,\n    key = handleField.key,\n    name = handleField.name,\n    args = handleField.args,\n    filters = handleField.filters;\n  var handleName = getRelayHandleKey(handle, key, name);\n  var filterArgs = null;\n  if (args && filters && args.length !== 0 && filters.length !== 0) {\n    filterArgs = args.filter(function (arg) {\n      return filters.indexOf(arg.name) > -1;\n    });\n  }\n  if (dynamicKey) {\n    filterArgs = filterArgs != null ? [dynamicKey].concat((0, _toConsumableArray2[\"default\"])(filterArgs)) : [dynamicKey];\n  }\n  if (filterArgs === null) {\n    return handleName;\n  } else {\n    return formatStorageKey(handleName, getArgumentValues(filterArgs, variables));\n  }\n}\nfunction getStorageKey(field, variables) {\n  if (field.storageKey) {\n    return field.storageKey;\n  }\n  var args = getArguments(field);\n  var name = field.name;\n  return args && args.length !== 0 ? formatStorageKey(name, getArgumentValues(args, variables)) : name;\n}\nfunction getArguments(field) {\n  if (field.kind === 'RelayResolver' || field.kind === 'RelayLiveResolver') {\n    var _field$fragment2;\n    if (field.args == null) {\n      var _field$fragment;\n      return (_field$fragment = field.fragment) === null || _field$fragment === void 0 ? void 0 : _field$fragment.args;\n    }\n    if (((_field$fragment2 = field.fragment) === null || _field$fragment2 === void 0 ? void 0 : _field$fragment2.args) == null) {\n      return field.args;\n    }\n    return field.args.concat(field.fragment.args);\n  }\n  var args = typeof field.args === 'undefined' ? undefined : field.args;\n  return args;\n}\nfunction getStableStorageKey(name, args) {\n  return formatStorageKey(name, stableCopy(args));\n}\nfunction formatStorageKey(name, argValues) {\n  if (!argValues) {\n    return name;\n  }\n  var values = [];\n  for (var argName in argValues) {\n    if (argValues.hasOwnProperty(argName)) {\n      var value = argValues[argName];\n      if (value != null) {\n        var _JSON$stringify;\n        values.push(argName + ':' + ((_JSON$stringify = JSON.stringify(value)) !== null && _JSON$stringify !== void 0 ? _JSON$stringify : 'undefined'));\n      }\n    }\n  }\n  return values.length === 0 ? name : name + \"(\".concat(values.join(','), \")\");\n}\nfunction getStableVariableValue(name, variables) {\n  !variables.hasOwnProperty(name) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'getVariableValue(): Undefined variable `%s`.', name) : invariant(false) : void 0;\n  return stableCopy(variables[name]);\n}\nfunction getModuleComponentKey(documentName) {\n  return \"\".concat(MODULE_COMPONENT_KEY_PREFIX).concat(documentName);\n}\nfunction getModuleOperationKey(documentName) {\n  return \"\".concat(MODULE_OPERATION_KEY_PREFIX).concat(documentName);\n}\nvar RelayStoreUtils = {\n  ACTOR_IDENTIFIER_KEY: '__actorIdentifier',\n  CLIENT_EDGE_TRAVERSAL_PATH: '__clientEdgeTraversalPath',\n  FRAGMENTS_KEY: '__fragments',\n  FRAGMENT_OWNER_KEY: '__fragmentOwner',\n  FRAGMENT_POINTER_IS_WITHIN_UNMATCHED_TYPE_REFINEMENT: '$isWithinUnmatchedTypeRefinement',\n  FRAGMENT_PROP_NAME_KEY: '__fragmentPropName',\n  MODULE_COMPONENT_KEY: '__module_component',\n  ERRORS_KEY: ERRORS_KEY,\n  ID_KEY: '__id',\n  REF_KEY: '__ref',\n  REFS_KEY: '__refs',\n  ROOT_ID: 'client:root',\n  ROOT_TYPE: '__Root',\n  TYPENAME_KEY: '__typename',\n  INVALIDATED_AT_KEY: '__invalidated_at',\n  RELAY_RESOLVER_VALUE_KEY: '__resolverValue',\n  RELAY_RESOLVER_INVALIDATION_KEY: '__resolverValueMayBeInvalid',\n  RELAY_RESOLVER_SNAPSHOT_KEY: '__resolverSnapshot',\n  RELAY_RESOLVER_ERROR_KEY: '__resolverError',\n  RELAY_RESOLVER_OUTPUT_TYPE_RECORD_IDS: '__resolverOutputTypeRecordIDs',\n  formatStorageKey: formatStorageKey,\n  getArgumentValue: getArgumentValue,\n  getArgumentValues: getArgumentValues,\n  getHandleStorageKey: getHandleStorageKey,\n  getStorageKey: getStorageKey,\n  getStableStorageKey: getStableStorageKey,\n  getModuleComponentKey: getModuleComponentKey,\n  getModuleOperationKey: getModuleOperationKey\n};\nmodule.exports = RelayStoreUtils;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\nvar recycleNodesInto = require('../util/recycleNodesInto');\nvar _require = require('../util/RelayConcreteNode'),\n  RELAY_LIVE_RESOLVER = _require.RELAY_LIVE_RESOLVER;\nvar RelayFeatureFlags = require('../util/RelayFeatureFlags');\nvar shallowFreeze = require('../util/shallowFreeze');\nvar _require2 = require('./ClientID'),\n  generateClientID = _require2.generateClientID;\nvar RelayModernRecord = require('./RelayModernRecord');\nvar _require3 = require('./RelayStoreUtils'),\n  RELAY_RESOLVER_ERROR_KEY = _require3.RELAY_RESOLVER_ERROR_KEY,\n  RELAY_RESOLVER_INVALIDATION_KEY = _require3.RELAY_RESOLVER_INVALIDATION_KEY,\n  RELAY_RESOLVER_SNAPSHOT_KEY = _require3.RELAY_RESOLVER_SNAPSHOT_KEY,\n  RELAY_RESOLVER_VALUE_KEY = _require3.RELAY_RESOLVER_VALUE_KEY,\n  getStorageKey = _require3.getStorageKey;\nvar invariant = require('invariant');\nvar warning = require(\"fbjs/lib/warning\");\nvar emptySet = new Set();\nvar NoopResolverCache = /*#__PURE__*/function () {\n  function NoopResolverCache() {}\n  var _proto = NoopResolverCache.prototype;\n  _proto.readFromCacheOrEvaluate = function readFromCacheOrEvaluate(recordID, field, variables, evaluate, getDataForResolverFragment) {\n    !(field.kind !== RELAY_LIVE_RESOLVER) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'This store does not support Live Resolvers') : invariant(false) : void 0;\n    var _evaluate = evaluate(),\n      resolverResult = _evaluate.resolverResult,\n      snapshot = _evaluate.snapshot,\n      error = _evaluate.error;\n    return [resolverResult, undefined, error, snapshot, undefined, undefined];\n  };\n  _proto.invalidateDataIDs = function invalidateDataIDs(updatedDataIDs) {};\n  _proto.ensureClientRecord = function ensureClientRecord(id, typeName) {\n    !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Client Edges to Client Objects are not supported in this version of Relay Store') : invariant(false) : void 0;\n  };\n  _proto.notifyUpdatedSubscribers = function notifyUpdatedSubscribers(updatedDataIDs) {};\n  return NoopResolverCache;\n}();\nfunction addDependencyEdge(edges, from, to) {\n  var set = edges.get(from);\n  if (!set) {\n    set = new Set();\n    edges.set(from, set);\n  }\n  set.add(to);\n}\nvar RecordResolverCache = /*#__PURE__*/function () {\n  function RecordResolverCache(getRecordSource) {\n    this._resolverIDToRecordIDs = new Map();\n    this._recordIDToResolverIDs = new Map();\n    this._getRecordSource = getRecordSource;\n  }\n  var _proto2 = RecordResolverCache.prototype;\n  _proto2.readFromCacheOrEvaluate = function readFromCacheOrEvaluate(recordID, field, variables, evaluate, getDataForResolverFragment) {\n    var recordSource = this._getRecordSource();\n    var record = recordSource.get(recordID);\n    !(record != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'We expect record to exist in the store.') : invariant(false) : void 0;\n    var storageKey = getStorageKey(field, variables);\n    var linkedID = RelayModernRecord.getLinkedRecordID(record, storageKey);\n    var linkedRecord = linkedID == null ? null : recordSource.get(linkedID);\n    if (linkedRecord == null || this._isInvalid(linkedRecord, getDataForResolverFragment)) {\n      var _linkedID;\n      linkedID = (_linkedID = linkedID) !== null && _linkedID !== void 0 ? _linkedID : generateClientID(recordID, storageKey);\n      linkedRecord = RelayModernRecord.create(linkedID, '__RELAY_RESOLVER__');\n      var evaluationResult = evaluate();\n      if (RelayFeatureFlags.ENABLE_SHALLOW_FREEZE_RESOLVER_VALUES) {\n        shallowFreeze(evaluationResult.resolverResult);\n      }\n      RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_VALUE_KEY, evaluationResult.resolverResult);\n      RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_SNAPSHOT_KEY, evaluationResult.snapshot);\n      RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_ERROR_KEY, evaluationResult.error);\n      recordSource.set(linkedID, linkedRecord);\n      var currentRecord = recordSource.get(recordID);\n      !(currentRecord != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected the parent record to still be in the record source.') : invariant(false) : void 0;\n      var nextRecord = RelayModernRecord.clone(currentRecord);\n      RelayModernRecord.setLinkedRecordID(nextRecord, storageKey, linkedID);\n      recordSource.set(recordID, nextRecord);\n      if (field.fragment != null) {\n        var _evaluationResult$sna;\n        var fragmentStorageKey = getStorageKey(field.fragment, variables);\n        var resolverID = generateClientID(recordID, fragmentStorageKey);\n        addDependencyEdge(this._resolverIDToRecordIDs, resolverID, linkedID);\n        addDependencyEdge(this._recordIDToResolverIDs, recordID, resolverID);\n        var seenRecordIds = (_evaluationResult$sna = evaluationResult.snapshot) === null || _evaluationResult$sna === void 0 ? void 0 : _evaluationResult$sna.seenRecords;\n        if (seenRecordIds != null) {\n          var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(seenRecordIds),\n            _step;\n          try {\n            for (_iterator.s(); !(_step = _iterator.n()).done;) {\n              var seenRecordID = _step.value;\n              addDependencyEdge(this._recordIDToResolverIDs, seenRecordID, resolverID);\n            }\n          } catch (err) {\n            _iterator.e(err);\n          } finally {\n            _iterator.f();\n          }\n        }\n      }\n    }\n    var answer = RelayModernRecord.getValue(linkedRecord, RELAY_RESOLVER_VALUE_KEY);\n    var snapshot = RelayModernRecord.getValue(linkedRecord, RELAY_RESOLVER_SNAPSHOT_KEY);\n    var error = RelayModernRecord.getValue(linkedRecord, RELAY_RESOLVER_ERROR_KEY);\n    return [answer, linkedID, error, snapshot, undefined, undefined];\n  };\n  _proto2.invalidateDataIDs = function invalidateDataIDs(updatedDataIDs) {\n    var recordSource = this._getRecordSource();\n    var visited = new Set();\n    var recordsToVisit = Array.from(updatedDataIDs);\n    while (recordsToVisit.length) {\n      var recordID = recordsToVisit.pop();\n      updatedDataIDs.add(recordID);\n      var _iterator2 = (0, _createForOfIteratorHelper2[\"default\"])((_this$_recordIDToReso = this._recordIDToResolverIDs.get(recordID)) !== null && _this$_recordIDToReso !== void 0 ? _this$_recordIDToReso : emptySet),\n        _step2;\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var _this$_recordIDToReso;\n          var fragment = _step2.value;\n          if (!visited.has(fragment)) {\n            var _iterator3 = (0, _createForOfIteratorHelper2[\"default\"])((_this$_resolverIDToRe = this._resolverIDToRecordIDs.get(fragment)) !== null && _this$_resolverIDToRe !== void 0 ? _this$_resolverIDToRe : emptySet),\n              _step3;\n            try {\n              for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n                var _this$_resolverIDToRe;\n                var anotherRecordID = _step3.value;\n                this._markInvalidatedResolverRecord(anotherRecordID, recordSource, updatedDataIDs);\n                if (!visited.has(anotherRecordID)) {\n                  recordsToVisit.push(anotherRecordID);\n                }\n              }\n            } catch (err) {\n              _iterator3.e(err);\n            } finally {\n              _iterator3.f();\n            }\n          }\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n    }\n  };\n  _proto2._markInvalidatedResolverRecord = function _markInvalidatedResolverRecord(dataID, recordSource, updatedDataIDs) {\n    var record = recordSource.get(dataID);\n    if (!record) {\n      process.env.NODE_ENV !== \"production\" ? warning(false, 'Expected a resolver record with ID %s, but it was missing.', dataID) : void 0;\n      return;\n    }\n    var nextRecord = RelayModernRecord.clone(record);\n    RelayModernRecord.setValue(nextRecord, RELAY_RESOLVER_INVALIDATION_KEY, true);\n    recordSource.set(dataID, nextRecord);\n  };\n  _proto2._isInvalid = function _isInvalid(record, getDataForResolverFragment) {\n    if (!RelayModernRecord.getValue(record, RELAY_RESOLVER_INVALIDATION_KEY)) {\n      return false;\n    }\n    var snapshot = RelayModernRecord.getValue(record, RELAY_RESOLVER_SNAPSHOT_KEY);\n    var originalInputs = snapshot === null || snapshot === void 0 ? void 0 : snapshot.data;\n    var readerSelector = snapshot === null || snapshot === void 0 ? void 0 : snapshot.selector;\n    if (originalInputs == null || readerSelector == null) {\n      process.env.NODE_ENV !== \"production\" ? warning(false, 'Expected previous inputs and reader selector on resolver record with ID %s, but they were missing.', RelayModernRecord.getDataID(record)) : void 0;\n      return true;\n    }\n    var _getDataForResolverFr = getDataForResolverFragment(readerSelector),\n      latestValues = _getDataForResolverFr.data;\n    var recycled = recycleNodesInto(originalInputs, latestValues);\n    if (recycled !== originalInputs) {\n      return true;\n    }\n    return false;\n  };\n  _proto2.ensureClientRecord = function ensureClientRecord(id, typename) {\n    !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Client Edges to Client Objects are not supported in this version of Relay Store') : invariant(false) : void 0;\n  };\n  _proto2.notifyUpdatedSubscribers = function notifyUpdatedSubscribers(updatedDataIDs) {\n    !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Processing @outputType records is not supported in this version of Relay Store') : invariant(false) : void 0;\n  };\n  return RecordResolverCache;\n}();\nmodule.exports = {\n  NoopResolverCache: NoopResolverCache,\n  RecordResolverCache: RecordResolverCache\n};","'use strict';\n\nvar _require = require('../query/GraphQLTag'),\n  getFragment = _require.getFragment;\nvar _require2 = require('./RelayModernSelector'),\n  getSelector = _require2.getSelector;\nvar invariant = require('invariant');\nvar contextStack = [];\nfunction withResolverContext(context, cb) {\n  contextStack.push(context);\n  try {\n    return cb();\n  } finally {\n    contextStack.pop();\n  }\n}\nfunction readFragment(fragmentInput, fragmentKey) {\n  if (!contextStack.length) {\n    throw new Error('readFragment should be called only from within a Relay Resolver function.');\n  }\n  var context = contextStack[contextStack.length - 1];\n  var fragmentNode = getFragment(fragmentInput);\n  var fragmentSelector = getSelector(fragmentNode, fragmentKey);\n  !(fragmentSelector != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Expected a selector for the fragment of the resolver \".concat(fragmentNode.name, \", but got null.\")) : invariant(false) : void 0;\n  !(fragmentSelector.kind === 'SingularReaderSelector') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Expected a singular reader selector for the fragment of the resolver \".concat(fragmentNode.name, \", but it was plural.\")) : invariant(false) : void 0;\n  var _context$getDataForRe = context.getDataForResolverFragment(fragmentSelector, fragmentKey),\n    data = _context$getDataForRe.data,\n    isMissingData = _context$getDataForRe.isMissingData;\n  if (isMissingData) {\n    throw RESOLVER_FRAGMENT_MISSING_DATA_SENTINEL;\n  }\n  return data;\n}\nvar RESOLVER_FRAGMENT_MISSING_DATA_SENTINEL = {};\nmodule.exports = {\n  readFragment: readFragment,\n  withResolverContext: withResolverContext,\n  RESOLVER_FRAGMENT_MISSING_DATA_SENTINEL: RESOLVER_FRAGMENT_MISSING_DATA_SENTINEL\n};","'use strict';\n\nvar PREFIX = 'client:__type:';\nvar TYPE_SCHEMA_TYPE = '__TypeSchema';\nfunction generateTypeID(typeName) {\n  return PREFIX + typeName;\n}\nfunction isTypeID(id) {\n  return id.indexOf(PREFIX) === 0;\n}\nmodule.exports = {\n  generateTypeID: generateTypeID,\n  isTypeID: isTypeID,\n  TYPE_SCHEMA_TYPE: TYPE_SCHEMA_TYPE\n};","'use strict';\n\nvar _require = require('./ClientID'),\n  generateClientID = _require.generateClientID;\nvar _require2 = require('./RelayStoreUtils'),\n  ROOT_ID = _require2.ROOT_ID;\nvar VIEWER_ID = generateClientID(ROOT_ID, 'viewer');\nvar VIEWER_TYPE = 'Viewer';\nmodule.exports = {\n  VIEWER_ID: VIEWER_ID,\n  VIEWER_TYPE: VIEWER_TYPE\n};","'use strict';\n\nvar _require = require('../util/RelayConcreteNode'),\n  LINKED_FIELD = _require.LINKED_FIELD;\nvar _require2 = require('./RelayStoreUtils'),\n  getHandleStorageKey = _require2.getHandleStorageKey;\nvar areEqual = require(\"fbjs/lib/areEqual\");\nvar invariant = require('invariant');\nfunction cloneRelayHandleSourceField(handleField, selections, variables) {\n  var sourceField = selections.find(function (source) {\n    return source.kind === LINKED_FIELD && source.name === handleField.name && source.alias === handleField.alias && areEqual(source.args, handleField.args);\n  });\n  !(sourceField && sourceField.kind === LINKED_FIELD) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'cloneRelayHandleSourceField: Expected a corresponding source field for ' + 'handle `%s`.', handleField.handle) : invariant(false) : void 0;\n  var handleKey = getHandleStorageKey(handleField, variables);\n  return {\n    kind: 'LinkedField',\n    alias: sourceField.alias,\n    name: handleKey,\n    storageKey: handleKey,\n    args: null,\n    concreteType: sourceField.concreteType,\n    plural: sourceField.plural,\n    selections: sourceField.selections\n  };\n}\nmodule.exports = cloneRelayHandleSourceField;","'use strict';\n\nvar _require = require('../util/RelayConcreteNode'),\n  SCALAR_FIELD = _require.SCALAR_FIELD;\nvar _require2 = require('./RelayStoreUtils'),\n  getHandleStorageKey = _require2.getHandleStorageKey;\nvar areEqual = require(\"fbjs/lib/areEqual\");\nvar invariant = require('invariant');\nfunction cloneRelayScalarHandleSourceField(handleField, selections, variables) {\n  var sourceField = selections.find(function (source) {\n    return source.kind === SCALAR_FIELD && source.name === handleField.name && source.alias === handleField.alias && areEqual(source.args, handleField.args);\n  });\n  !(sourceField && sourceField.kind === SCALAR_FIELD) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'cloneRelayScalarHandleSourceField: Expected a corresponding source field for ' + 'handle `%s`.', handleField.handle) : invariant(false) : void 0;\n  var handleKey = getHandleStorageKey(handleField, variables);\n  return {\n    kind: 'ScalarField',\n    alias: sourceField.alias,\n    name: handleKey,\n    storageKey: handleKey,\n    args: null\n  };\n}\nmodule.exports = cloneRelayScalarHandleSourceField;","'use strict';\n\nvar RelayModernFragmentSpecResolver = require('./RelayModernFragmentSpecResolver');\nvar warning = require(\"fbjs/lib/warning\");\nfunction createFragmentSpecResolver(context, containerName, fragments, props, rootIsQueryRenderer, callback) {\n  if (process.env.NODE_ENV !== \"production\") {\n    var fragmentNames = Object.keys(fragments);\n    fragmentNames.forEach(function (fragmentName) {\n      var propValue = props[fragmentName];\n      process.env.NODE_ENV !== \"production\" ? warning(propValue !== undefined, 'createFragmentSpecResolver: Expected prop `%s` to be supplied to `%s`, but ' + 'got `undefined`. Pass an explicit `null` if this is intentional.', fragmentName, containerName) : void 0;\n    });\n  }\n  return new RelayModernFragmentSpecResolver(context, fragments, props, callback, rootIsQueryRenderer);\n}\nmodule.exports = createFragmentSpecResolver;","'use strict';\n\nvar invariant = require('invariant');\nvar relayContext;\nvar firstReact;\nfunction createRelayContext(react) {\n  if (!relayContext) {\n    relayContext = react.createContext(null);\n    if (process.env.NODE_ENV !== \"production\") {\n      relayContext.displayName = 'RelayContext';\n    }\n    firstReact = react;\n  }\n  !(react === firstReact) ? process.env.NODE_ENV !== \"production\" ? invariant(false, '[createRelayContext]: You are passing a different instance of React', react.version) : invariant(false) : void 0;\n  return relayContext;\n}\nmodule.exports = createRelayContext;","'use strict';\n\nvar _require = require('./ViewerPattern'),\n  VIEWER_ID = _require.VIEWER_ID,\n  VIEWER_TYPE = _require.VIEWER_TYPE;\nfunction defaultGetDataID(fieldValue, typeName) {\n  if (typeName === VIEWER_TYPE) {\n    return fieldValue.id == null ? VIEWER_ID : fieldValue.id;\n  }\n  return fieldValue.id;\n}\nmodule.exports = defaultGetDataID;","'use strict';\n\nvar defaultRelayFieldLogger = function defaultRelayFieldLogger(event) {\n  if (process.env.NODE_ENV !== \"production\" && event.kind === 'missing_field.log') {\n    throw new Error('Relay Environment Configuration Error (dev only): `@required(action: LOG)` requires that the Relay Environment be configured with a `relayFieldLogger`.');\n  }\n};\nmodule.exports = defaultRelayFieldLogger;","'use strict';\n\nvar LIVE_RESOLVER_SUSPENSE_SENTINEL = Object.freeze({\n  __LIVE_RESOLVER_SUSPENSE_SENTINEL: true\n});\nfunction suspenseSentinel() {\n  return LIVE_RESOLVER_SUSPENSE_SENTINEL;\n}\nfunction isSuspenseSentinel(value) {\n  return value === LIVE_RESOLVER_SUSPENSE_SENTINEL;\n}\nmodule.exports = {\n  isSuspenseSentinel: isSuspenseSentinel,\n  suspenseSentinel: suspenseSentinel\n};","'use strict';\n\nvar RelayModernRecord = require('../RelayModernRecord');\nvar _require = require('../RelayStoreUtils'),\n  RELAY_RESOLVER_OUTPUT_TYPE_RECORD_IDS = _require.RELAY_RESOLVER_OUTPUT_TYPE_RECORD_IDS;\nvar invariant = require('invariant');\nfunction getOutputTypeRecordIDs(record) {\n  var maybeOutputTypeRecordIDs = RelayModernRecord.getValue(record, RELAY_RESOLVER_OUTPUT_TYPE_RECORD_IDS);\n  if (maybeOutputTypeRecordIDs == null) {\n    return null;\n  }\n  !(maybeOutputTypeRecordIDs instanceof Set) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'getOutputTypeRecordIDs: Expected the `%s` field on record `%s` to be of type Set. Instead, it is a %s.', RELAY_RESOLVER_OUTPUT_TYPE_RECORD_IDS, typeof maybeOutputTypeRecordIDs) : invariant(false) : void 0;\n  return maybeOutputTypeRecordIDs;\n}\nmodule.exports = getOutputTypeRecordIDs;","'use strict';\n\nvar ITERATOR_KEY = Symbol.iterator;\nfunction hasOverlappingIDs(seenRecords, updatedRecordIDs) {\n  var iterator = seenRecords[ITERATOR_KEY]();\n  var next = iterator.next();\n  while (!next.done) {\n    var key = next.value;\n    if (updatedRecordIDs.has(key)) {\n      return true;\n    }\n    next = iterator.next();\n  }\n  return false;\n}\nmodule.exports = hasOverlappingIDs;","'use strict';\n\nvar _require = require('./RelayStoreUtils'),\n  ROOT_ID = _require.ROOT_ID;\nvar _require2 = require('./ViewerPattern'),\n  VIEWER_ID = _require2.VIEWER_ID;\nvar ITERATOR_KEY = Symbol.iterator;\nfunction hasSignificantOverlappingIDs(seenRecords, updatedRecordIDs) {\n  var iterator = seenRecords[ITERATOR_KEY]();\n  var next = iterator.next();\n  while (!next.done) {\n    var key = next.value;\n    if (updatedRecordIDs.has(key) && key !== ROOT_ID && key !== VIEWER_ID) {\n      return true;\n    }\n    next = iterator.next();\n  }\n  return false;\n}\nmodule.exports = hasSignificantOverlappingIDs;","'use strict';\n\nfunction isRelayModernEnvironment(environment) {\n  return Boolean(environment && environment['@@RelayModernEnvironment']);\n}\nmodule.exports = isRelayModernEnvironment;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _RelayModernRecord = _interopRequireDefault(require(\"./RelayModernRecord\"));\nvar _RelayRecordSource = _interopRequireDefault(require(\"./RelayRecordSource\"));\nvar _RelayResponseNormalizer = _interopRequireDefault(require(\"./RelayResponseNormalizer\"));\nfunction normalizeResponse(response, selector, typeName, options) {\n  var _response$extensions;\n  var data = response.data,\n    errors = response.errors;\n  var source = _RelayRecordSource[\"default\"].create();\n  var record = _RelayModernRecord[\"default\"].create(selector.dataID, typeName);\n  source.set(selector.dataID, record);\n  var relayPayload = _RelayResponseNormalizer[\"default\"].normalize(source, selector, data, options, errors);\n  return (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, relayPayload), {}, {\n    isFinal: ((_response$extensions = response.extensions) === null || _response$extensions === void 0 ? void 0 : _response$extensions.is_final) === true\n  });\n}\nmodule.exports = normalizeResponse;","'use strict';\n\nvar _require = require('../query/GraphQLTag'),\n  getInlineDataFragment = _require.getInlineDataFragment;\nvar _require2 = require('./RelayStoreUtils'),\n  FRAGMENTS_KEY = _require2.FRAGMENTS_KEY;\nvar invariant = require('invariant');\nfunction readInlineData(fragment, fragmentRef) {\n  var _fragmentRef$FRAGMENT;\n  var inlineDataFragment = getInlineDataFragment(fragment);\n  if (fragmentRef == null) {\n    return fragmentRef;\n  }\n  !(typeof fragmentRef === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'readInlineData(): Expected an object, got `%s`.', typeof fragmentRef) : invariant(false) : void 0;\n  var inlineData = (_fragmentRef$FRAGMENT = fragmentRef[FRAGMENTS_KEY]) === null || _fragmentRef$FRAGMENT === void 0 ? void 0 : _fragmentRef$FRAGMENT[inlineDataFragment.name];\n  !(inlineData != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'readInlineData(): Expected fragment `%s` to be spread in the parent ' + 'fragment.', inlineDataFragment.name) : invariant(false) : void 0;\n  return inlineData;\n}\nmodule.exports = readInlineData;","'use strict';\n\nvar RelayDeclarativeMutationConfig = require('../mutations/RelayDeclarativeMutationConfig');\nvar _require = require('../query/GraphQLTag'),\n  getRequest = _require.getRequest;\nvar _require2 = require('../store/RelayModernOperationDescriptor'),\n  createOperationDescriptor = _require2.createOperationDescriptor;\nvar _require3 = require('../store/RelayModernSelector'),\n  createReaderSelector = _require3.createReaderSelector;\nvar warning = require(\"fbjs/lib/warning\");\nfunction requestSubscription(environment, config) {\n  var subscription = getRequest(config.subscription);\n  if (subscription.params.operationKind !== 'subscription') {\n    throw new Error('requestSubscription: Must use Subscription operation');\n  }\n  var configs = config.configs,\n    onCompleted = config.onCompleted,\n    onError = config.onError,\n    onNext = config.onNext,\n    variables = config.variables,\n    cacheConfig = config.cacheConfig;\n  var operation = createOperationDescriptor(subscription, variables, cacheConfig);\n  process.env.NODE_ENV !== \"production\" ? warning(!(config.updater && configs), 'requestSubscription: Expected only one of `updater` and `configs` to be provided') : void 0;\n  var _ref = configs ? RelayDeclarativeMutationConfig.convert(configs, subscription, null, config.updater) : config,\n    updater = _ref.updater;\n  var sub = environment.executeSubscription({\n    operation: operation,\n    updater: updater\n  }).subscribe({\n    next: function next(responses) {\n      if (onNext != null) {\n        var selector = operation.fragment;\n        var nextID;\n        if (Array.isArray(responses)) {\n          var _responses$, _responses$$extension;\n          nextID = (_responses$ = responses[0]) === null || _responses$ === void 0 ? void 0 : (_responses$$extension = _responses$.extensions) === null || _responses$$extension === void 0 ? void 0 : _responses$$extension.__relay_subscription_root_id;\n        } else {\n          var _responses$extensions;\n          nextID = (_responses$extensions = responses.extensions) === null || _responses$extensions === void 0 ? void 0 : _responses$extensions.__relay_subscription_root_id;\n        }\n        if (typeof nextID === 'string') {\n          selector = createReaderSelector(selector.node, nextID, selector.variables, selector.owner);\n        }\n        var data = environment.lookup(selector).data;\n        onNext(data);\n      }\n    },\n    error: onError,\n    complete: onCompleted\n  });\n  return {\n    dispose: sub.unsubscribe\n  };\n}\nmodule.exports = requestSubscription;","'use strict';\n\nvar RelayConcreteNode = {\n  ACTOR_CHANGE: 'ActorChange',\n  CONDITION: 'Condition',\n  CLIENT_COMPONENT: 'ClientComponent',\n  CLIENT_EDGE_TO_SERVER_OBJECT: 'ClientEdgeToServerObject',\n  CLIENT_EDGE_TO_CLIENT_OBJECT: 'ClientEdgeToClientObject',\n  CLIENT_EXTENSION: 'ClientExtension',\n  DEFER: 'Defer',\n  CONNECTION: 'Connection',\n  FRAGMENT: 'Fragment',\n  FRAGMENT_SPREAD: 'FragmentSpread',\n  INLINE_DATA_FRAGMENT_SPREAD: 'InlineDataFragmentSpread',\n  INLINE_DATA_FRAGMENT: 'InlineDataFragment',\n  INLINE_FRAGMENT: 'InlineFragment',\n  LINKED_FIELD: 'LinkedField',\n  LINKED_HANDLE: 'LinkedHandle',\n  LITERAL: 'Literal',\n  LIST_VALUE: 'ListValue',\n  LOCAL_ARGUMENT: 'LocalArgument',\n  MODULE_IMPORT: 'ModuleImport',\n  ALIASED_FRAGMENT_SPREAD: 'AliasedFragmentSpread',\n  ALIASED_INLINE_FRAGMENT_SPREAD: 'AliasedInlineFragmentSpread',\n  RELAY_RESOLVER: 'RelayResolver',\n  RELAY_LIVE_RESOLVER: 'RelayLiveResolver',\n  REQUIRED_FIELD: 'RequiredField',\n  OBJECT_VALUE: 'ObjectValue',\n  OPERATION: 'Operation',\n  REQUEST: 'Request',\n  ROOT_ARGUMENT: 'RootArgument',\n  SCALAR_FIELD: 'ScalarField',\n  SCALAR_HANDLE: 'ScalarHandle',\n  SPLIT_OPERATION: 'SplitOperation',\n  STREAM: 'Stream',\n  TYPE_DISCRIMINATOR: 'TypeDiscriminator',\n  UPDATABLE_QUERY: 'UpdatableQuery',\n  VARIABLE: 'Variable'\n};\nmodule.exports = RelayConcreteNode;","'use strict';\n\nmodule.exports = {\n  DEFAULT_HANDLE_KEY: ''\n};","'use strict';\n\nfunction createError(type, name, messageFormat) {\n  for (var _len = arguments.length, messageParams = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n    messageParams[_key - 3] = arguments[_key];\n  }\n  var index = 0;\n  var message = messageFormat.replace(/%s/g, function () {\n    return String(messageParams[index++]);\n  });\n  var err = new Error(message);\n  var error = Object.assign(err, {\n    name: name,\n    messageFormat: messageFormat,\n    messageParams: messageParams,\n    type: type,\n    taalOpcodes: [2, 2]\n  });\n  if (error.stack === undefined) {\n    try {\n      throw error;\n    } catch (_unused) {}\n  }\n  return error;\n}\nmodule.exports = {\n  create: function create(name, messageFormat) {\n    for (var _len2 = arguments.length, messageParams = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n      messageParams[_key2 - 2] = arguments[_key2];\n    }\n    return createError.apply(void 0, ['error', name, messageFormat].concat(messageParams));\n  },\n  createWarning: function createWarning(name, messageFormat) {\n    for (var _len3 = arguments.length, messageParams = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n      messageParams[_key3 - 2] = arguments[_key3];\n    }\n    return createError.apply(void 0, ['warn', name, messageFormat].concat(messageParams));\n  }\n};","'use strict';\n\nvar RelayFeatureFlags = {\n  ENABLE_CLIENT_EDGES: false,\n  ENABLE_VARIABLE_CONNECTION_KEY: false,\n  ENABLE_RELAY_RESOLVERS: false,\n  ENABLE_GETFRAGMENTIDENTIFIER_OPTIMIZATION: false,\n  ENABLE_FRIENDLY_QUERY_NAME_GQL_URL: false,\n  ENABLE_LOAD_QUERY_REQUEST_DEDUPING: true,\n  ENABLE_DO_NOT_WRAP_LIVE_QUERY: false,\n  ENABLE_NOTIFY_SUBSCRIPTION: false,\n  BATCH_ASYNC_MODULE_UPDATES_FN: null,\n  ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT: false,\n  MAX_DATA_ID_LENGTH: null,\n  STRING_INTERN_LEVEL: 0,\n  LOG_MISSING_RECORDS_IN_PROD: false,\n  ENABLE_LOOSE_SUBSCRIPTION_ATTRIBUTION: false,\n  ENABLE_OPERATION_TRACKER_OPTIMISTIC_UPDATES: false,\n  ENABLE_RELAY_OPERATION_TRACKER_SUSPENSE: false,\n  ENABLE_FIELD_ERROR_HANDLING: false,\n  ENABLE_FIELD_ERROR_HANDLING_THROW_BY_DEFAULT: false,\n  ENABLE_FIELD_ERROR_HANDLING_CATCH_DIRECTIVE: false,\n  ENABLE_SHALLOW_FREEZE_RESOLVER_VALUES: true,\n  ENABLE_STRICT_EQUAL_SELECTORS: false\n};\nmodule.exports = RelayFeatureFlags;","'use strict';\n\nvar profileHandlersByName = {};\nvar defaultProfiler = {\n  stop: function stop() {}\n};\nvar RelayProfiler = {\n  profile: function profile(name, state) {\n    var handlers = profileHandlersByName[name];\n    if (handlers && handlers.length > 0) {\n      var stopHandlers = [];\n      for (var ii = handlers.length - 1; ii >= 0; ii--) {\n        var stopHandler = handlers[ii](name, state);\n        stopHandlers.unshift(stopHandler);\n      }\n      return {\n        stop: function stop(error) {\n          stopHandlers.forEach(function (stopHandler) {\n            return stopHandler(error);\n          });\n        }\n      };\n    }\n    return defaultProfiler;\n  },\n  attachProfileHandler: function attachProfileHandler(name, handler) {\n    if (!profileHandlersByName.hasOwnProperty(name)) {\n      profileHandlersByName[name] = [];\n    }\n    profileHandlersByName[name].push(handler);\n  },\n  detachProfileHandler: function detachProfileHandler(name, handler) {\n    if (profileHandlersByName.hasOwnProperty(name)) {\n      removeFromArray(profileHandlersByName[name], handler);\n    }\n  }\n};\nfunction removeFromArray(array, element) {\n  var index = array.indexOf(element);\n  if (index !== -1) {\n    array.splice(index, 1);\n  }\n}\nmodule.exports = RelayProfiler;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar RelayObservable = require('../network/RelayObservable');\nvar invariant = require('invariant');\nvar RelayReplaySubject = /*#__PURE__*/function () {\n  function RelayReplaySubject() {\n    var _this = this;\n    (0, _defineProperty2[\"default\"])(this, \"_complete\", false);\n    (0, _defineProperty2[\"default\"])(this, \"_events\", []);\n    (0, _defineProperty2[\"default\"])(this, \"_sinks\", new Set());\n    (0, _defineProperty2[\"default\"])(this, \"_subscription\", []);\n    this._observable = RelayObservable.create(function (sink) {\n      _this._sinks.add(sink);\n      var events = _this._events;\n      for (var i = 0; i < events.length; i++) {\n        if (sink.closed) {\n          break;\n        }\n        var event = events[i];\n        switch (event.kind) {\n          case 'complete':\n            sink.complete();\n            break;\n          case 'error':\n            sink.error(event.error);\n            break;\n          case 'next':\n            sink.next(event.data);\n            break;\n          default:\n            event.kind;\n            !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReplaySubject: Unknown event kind `%s`.', event.kind) : invariant(false) : void 0;\n        }\n      }\n      return function () {\n        _this._sinks[\"delete\"](sink);\n      };\n    });\n  }\n  var _proto = RelayReplaySubject.prototype;\n  _proto.complete = function complete() {\n    if (this._complete === true) {\n      return;\n    }\n    this._complete = true;\n    this._events.push({\n      kind: 'complete'\n    });\n    this._sinks.forEach(function (sink) {\n      return sink.complete();\n    });\n  };\n  _proto.error = function error(_error) {\n    if (this._complete === true) {\n      return;\n    }\n    this._complete = true;\n    this._events.push({\n      kind: 'error',\n      error: _error\n    });\n    this._sinks.forEach(function (sink) {\n      return sink.error(_error);\n    });\n  };\n  _proto.next = function next(data) {\n    if (this._complete === true) {\n      return;\n    }\n    this._events.push({\n      kind: 'next',\n      data: data\n    });\n    this._sinks.forEach(function (sink) {\n      return sink.next(data);\n    });\n  };\n  _proto.subscribe = function subscribe(observer) {\n    var subscription = this._observable.subscribe(observer);\n    this._subscription.push(subscription);\n    return subscription;\n  };\n  _proto.unsubscribe = function unsubscribe() {\n    var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(this._subscription),\n      _step;\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var subscription = _step.value;\n        subscription.unsubscribe();\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n    this._subscription = [];\n  };\n  _proto.getObserverCount = function getObserverCount() {\n    return this._sinks.size;\n  };\n  return RelayReplaySubject;\n}();\nmodule.exports = RelayReplaySubject;","'use strict';\n\nvar internTable = new Map();\nvar nextIndex = 1;\nvar digits = initDigitTable();\nvar INTERN_PREFIX = '\\t';\nvar ESCAPE_PREFIX = '\\v';\nfunction initDigitTable() {\n  var digits = new Set();\n  for (var i = 0; i < 10; ++i) {\n    digits.add(i.toString());\n  }\n  return digits;\n}\nfunction escape(str) {\n  if (str[0] === INTERN_PREFIX && digits.has(str[1]) || str[0] === ESCAPE_PREFIX) {\n    return ESCAPE_PREFIX + str;\n  }\n  return str;\n}\nfunction intern(str, limit) {\n  if (limit == null || str.length < limit) {\n    return escape(str);\n  }\n  var internedString = internTable.get(str);\n  if (internedString != null) {\n    return internedString;\n  }\n  internedString = INTERN_PREFIX + nextIndex++;\n  internTable.set(str, internedString);\n  return internedString;\n}\nmodule.exports = {\n  intern: intern\n};","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _require = require('../store/RelayStoreUtils'),\n  getModuleComponentKey = _require.getModuleComponentKey,\n  getModuleOperationKey = _require.getModuleOperationKey;\nfunction createPayloadFor3DField(name, operation, component, response) {\n  var data = (0, _objectSpread2[\"default\"])({}, response);\n  data[getModuleComponentKey(name)] = component;\n  data[getModuleOperationKey(name)] = operation;\n  return data;\n}\nmodule.exports = createPayloadFor3DField;","'use strict';\n\nfunction deepFreeze(object) {\n  if (!shouldBeFrozen(object)) {\n    return object;\n  }\n  Object.freeze(object);\n  Object.getOwnPropertyNames(object).forEach(function (name) {\n    var property = object[name];\n    if (property && typeof property === 'object' && !Object.isFrozen(property)) {\n      deepFreeze(property);\n    }\n  });\n  return object;\n}\nfunction shouldBeFrozen(value) {\n  return value != null && (Array.isArray(value) || typeof value === 'object' && value.constructor === Object);\n}\nmodule.exports = deepFreeze;","'use strict';\n\nvar id = 100000;\nfunction generateID() {\n  return id++;\n}\nmodule.exports = generateID;","'use strict';\n\nvar _require = require('../store/RelayModernSelector'),\n  getDataIDsFromFragment = _require.getDataIDsFromFragment,\n  getSelector = _require.getSelector,\n  getVariablesFromFragment = _require.getVariablesFromFragment;\nvar isEmptyObject = require('./isEmptyObject');\nvar RelayFeatureFlags = require('./RelayFeatureFlags');\nvar stableCopy = require('./stableCopy');\nvar _require2 = require('./StringInterner'),\n  intern = _require2.intern;\nfunction getFragmentIdentifier(fragmentNode, fragmentRef) {\n  var selector = getSelector(fragmentNode, fragmentRef);\n  var fragmentOwnerIdentifier = selector == null ? 'null' : selector.kind === 'SingularReaderSelector' ? selector.owner.identifier : '[' + selector.selectors.map(function (sel) {\n    return sel.owner.identifier;\n  }).join(',') + ']';\n  var fragmentVariables = getVariablesFromFragment(fragmentNode, fragmentRef);\n  var dataIDs = getDataIDsFromFragment(fragmentNode, fragmentRef);\n  if (RelayFeatureFlags.ENABLE_GETFRAGMENTIDENTIFIER_OPTIMIZATION) {\n    var ids = typeof dataIDs === 'undefined' ? 'missing' : dataIDs == null ? 'null' : Array.isArray(dataIDs) ? '[' + dataIDs.join(',') + ']' : dataIDs;\n    ids = RelayFeatureFlags.STRING_INTERN_LEVEL <= 1 ? ids : intern(ids, RelayFeatureFlags.MAX_DATA_ID_LENGTH);\n    return fragmentOwnerIdentifier + '/' + fragmentNode.name + '/' + (fragmentVariables == null || isEmptyObject(fragmentVariables) ? '{}' : JSON.stringify(stableCopy(fragmentVariables))) + '/' + ids;\n  } else {\n    var _JSON$stringify;\n    var _ids = (_JSON$stringify = JSON.stringify(dataIDs)) !== null && _JSON$stringify !== void 0 ? _JSON$stringify : 'missing';\n    _ids = RelayFeatureFlags.STRING_INTERN_LEVEL <= 1 ? _ids : intern(_ids, RelayFeatureFlags.MAX_DATA_ID_LENGTH);\n    return fragmentOwnerIdentifier + '/' + fragmentNode.name + '/' + JSON.stringify(stableCopy(fragmentVariables)) + '/' + _ids;\n  }\n}\nmodule.exports = getFragmentIdentifier;","'use strict';\n\nvar _require = require('./RelayConcreteNode'),\n  REQUEST = _require.REQUEST,\n  SPLIT_OPERATION = _require.SPLIT_OPERATION;\nfunction getOperation(node) {\n  switch (node.kind) {\n    case REQUEST:\n      return node.operation;\n    case SPLIT_OPERATION:\n    default:\n      return node;\n  }\n}\nmodule.exports = getOperation;","'use strict';\n\nvar getRefetchMetadata = require('./getRefetchMetadata');\nvar invariant = require('invariant');\nfunction getPaginationMetadata(fragmentNode, componentDisplayName) {\n  var _fragmentNode$metadat, _fragmentNode$metadat2;\n  var _getRefetchMetadata = getRefetchMetadata(fragmentNode, componentDisplayName),\n    paginationRequest = _getRefetchMetadata.refetchableRequest,\n    refetchMetadata = _getRefetchMetadata.refetchMetadata;\n  var paginationMetadata = refetchMetadata.connection;\n  !(paginationMetadata != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: getPaginationMetadata(): Expected fragment `%s` to include a ' + 'connection when using `%s`. Did you forget to add a @connection ' + 'directive to the connection field in the fragment?', componentDisplayName, fragmentNode.name) : invariant(false) : void 0;\n  var connectionPathInFragmentData = paginationMetadata.path;\n  var connectionMetadata = ((_fragmentNode$metadat = (_fragmentNode$metadat2 = fragmentNode.metadata) === null || _fragmentNode$metadat2 === void 0 ? void 0 : _fragmentNode$metadat2.connection) !== null && _fragmentNode$metadat !== void 0 ? _fragmentNode$metadat : [])[0];\n  !(connectionMetadata != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: getPaginationMetadata(): Expected fragment `%s` to include a ' + 'connection when using `%s`. Did you forget to add a @connection ' + 'directive to the connection field in the fragment?', componentDisplayName, fragmentNode.name) : invariant(false) : void 0;\n  var identifierInfo = refetchMetadata.identifierInfo;\n  !((identifierInfo === null || identifierInfo === void 0 ? void 0 : identifierInfo.identifierField) == null || typeof identifierInfo.identifierField === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: getRefetchMetadata(): Expected `identifierField` to be a string.') : invariant(false) : void 0;\n  return {\n    connectionPathInFragmentData: connectionPathInFragmentData,\n    identifierField: identifierInfo === null || identifierInfo === void 0 ? void 0 : identifierInfo.identifierField,\n    paginationRequest: paginationRequest,\n    paginationMetadata: paginationMetadata,\n    stream: connectionMetadata.stream === true\n  };\n}\nmodule.exports = getPaginationMetadata;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _objectSpread4 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar invariant = require('invariant');\nvar warning = require(\"fbjs/lib/warning\");\nfunction getPaginationVariables(direction, count, cursor, baseVariables, extraVariables, paginationMetadata) {\n  var _objectSpread3;\n  var backwardMetadata = paginationMetadata.backward,\n    forwardMetadata = paginationMetadata.forward;\n  if (direction === 'backward') {\n    var _objectSpread2;\n    !(backwardMetadata != null && backwardMetadata.count != null && backwardMetadata.cursor != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected backward pagination metadata to be available. ' + \"If you're seeing this, this is likely a bug in Relay.\") : invariant(false) : void 0;\n    process.env.NODE_ENV !== \"production\" ? warning(!extraVariables.hasOwnProperty(backwardMetadata.cursor), 'Relay: `UNSTABLE_extraVariables` provided by caller should not ' + 'contain cursor variable `%s`. This variable is automatically ' + 'determined by Relay.', backwardMetadata.cursor) : void 0;\n    process.env.NODE_ENV !== \"production\" ? warning(!extraVariables.hasOwnProperty(backwardMetadata.count), 'Relay: `UNSTABLE_extraVariables` provided by caller should not ' + 'contain count variable `%s`. This variable is automatically ' + 'determined by Relay.', backwardMetadata.count) : void 0;\n    var _paginationVariables = (0, _objectSpread4[\"default\"])((0, _objectSpread4[\"default\"])((0, _objectSpread4[\"default\"])({}, baseVariables), extraVariables), {}, (_objectSpread2 = {}, (0, _defineProperty2[\"default\"])(_objectSpread2, backwardMetadata.cursor, cursor), (0, _defineProperty2[\"default\"])(_objectSpread2, backwardMetadata.count, count), _objectSpread2));\n    if (forwardMetadata && forwardMetadata.cursor) {\n      _paginationVariables[forwardMetadata.cursor] = null;\n    }\n    if (forwardMetadata && forwardMetadata.count) {\n      _paginationVariables[forwardMetadata.count] = null;\n    }\n    return _paginationVariables;\n  }\n  !(forwardMetadata != null && forwardMetadata.count != null && forwardMetadata.cursor != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected forward pagination metadata to be available. ' + \"If you're seeing this, this is likely a bug in Relay.\") : invariant(false) : void 0;\n  process.env.NODE_ENV !== \"production\" ? warning(!extraVariables.hasOwnProperty(forwardMetadata.cursor), 'Relay: `UNSTABLE_extraVariables` provided by caller should not ' + 'contain cursor variable `%s`. This variable is automatically ' + 'determined by Relay.', forwardMetadata.cursor) : void 0;\n  process.env.NODE_ENV !== \"production\" ? warning(!extraVariables.hasOwnProperty(forwardMetadata.count), 'Relay: `UNSTABLE_extraVariables` provided by caller should not ' + 'contain count variable `%s`. This variable is automatically ' + 'determined by Relay.', forwardMetadata.count) : void 0;\n  var paginationVariables = (0, _objectSpread4[\"default\"])((0, _objectSpread4[\"default\"])((0, _objectSpread4[\"default\"])({}, baseVariables), extraVariables), {}, (_objectSpread3 = {}, (0, _defineProperty2[\"default\"])(_objectSpread3, forwardMetadata.cursor, cursor), (0, _defineProperty2[\"default\"])(_objectSpread3, forwardMetadata.count, count), _objectSpread3));\n  if (backwardMetadata && backwardMetadata.cursor) {\n    paginationVariables[backwardMetadata.cursor] = null;\n  }\n  if (backwardMetadata && backwardMetadata.count) {\n    paginationVariables[backwardMetadata.count] = null;\n  }\n  return paginationVariables;\n}\nmodule.exports = getPaginationVariables;","'use strict';\n\nvar _require = require('../query/fetchQueryInternal'),\n  getPromiseForActiveRequest = _require.getPromiseForActiveRequest;\nfunction getPendingOperationsForFragment(environment, fragmentNode, fragmentOwner) {\n  var _pendingOperations$ma, _pendingOperations;\n  var pendingOperations = [];\n  var promise = getPromiseForActiveRequest(environment, fragmentOwner);\n  if (promise != null) {\n    pendingOperations = [fragmentOwner];\n  } else {\n    var _result$pendingOperat, _result$promise;\n    var result = environment.getOperationTracker().getPendingOperationsAffectingOwner(fragmentOwner);\n    pendingOperations = (_result$pendingOperat = result === null || result === void 0 ? void 0 : result.pendingOperations) !== null && _result$pendingOperat !== void 0 ? _result$pendingOperat : [];\n    promise = (_result$promise = result === null || result === void 0 ? void 0 : result.promise) !== null && _result$promise !== void 0 ? _result$promise : null;\n  }\n  if (!promise) {\n    return null;\n  }\n  var pendingOperationName = (_pendingOperations$ma = (_pendingOperations = pendingOperations) === null || _pendingOperations === void 0 ? void 0 : _pendingOperations.map(function (op) {\n    return op.node.params.name;\n  }).join(',')) !== null && _pendingOperations$ma !== void 0 ? _pendingOperations$ma : null;\n  if (pendingOperationName == null || pendingOperationName.length === 0) {\n    pendingOperationName = 'Unknown pending operation';\n  }\n  var fragmentName = fragmentNode.name;\n  var promiseDisplayName = pendingOperationName === fragmentName ? \"Relay(\".concat(pendingOperationName, \")\") : \"Relay(\".concat(pendingOperationName, \":\").concat(fragmentName, \")\");\n  promise.displayName = promiseDisplayName;\n  environment.__log({\n    name: 'pendingoperation.found',\n    fragment: fragmentNode,\n    fragmentOwner: fragmentOwner,\n    pendingOperations: pendingOperations\n  });\n  return {\n    promise: promise,\n    pendingOperations: pendingOperations\n  };\n}\nmodule.exports = getPendingOperationsForFragment;","'use strict';\n\nvar invariant = require('invariant');\nfunction getRefetchMetadata(fragmentNode, componentDisplayName) {\n  var _fragmentNode$metadat, _fragmentNode$metadat2;\n  !(((_fragmentNode$metadat = fragmentNode.metadata) === null || _fragmentNode$metadat === void 0 ? void 0 : _fragmentNode$metadat.plural) !== true) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: getRefetchMetadata(): Expected fragment `%s` not to be plural when using ' + '`%s`. Remove `@relay(plural: true)` from fragment `%s` ' + 'in order to use it with `%s`.', fragmentNode.name, componentDisplayName, fragmentNode.name, componentDisplayName) : invariant(false) : void 0;\n  var refetchMetadata = (_fragmentNode$metadat2 = fragmentNode.metadata) === null || _fragmentNode$metadat2 === void 0 ? void 0 : _fragmentNode$metadat2.refetch;\n  !(refetchMetadata != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: getRefetchMetadata(): Expected fragment `%s` to be refetchable when using `%s`. ' + 'Did you forget to add a @refetchable directive to the fragment?', componentDisplayName, fragmentNode.name) : invariant(false) : void 0;\n  var refetchableRequest = refetchMetadata.operation[\"default\"] ? refetchMetadata.operation[\"default\"] : refetchMetadata.operation;\n  var fragmentRefPathInResponse = refetchMetadata.fragmentPathInResult;\n  !(typeof refetchableRequest !== 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: getRefetchMetadata(): Expected refetch query to be an ' + \"operation and not a string when using `%s`. If you're seeing this, \" + 'this is likely a bug in Relay.', componentDisplayName) : invariant(false) : void 0;\n  var identifierInfo = refetchMetadata.identifierInfo;\n  if (identifierInfo != null) {\n    !(identifierInfo.identifierField == null || typeof identifierInfo.identifierField === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: getRefetchMetadata(): Expected `identifierField` to be a string.') : invariant(false) : void 0;\n    !(identifierInfo.identifierQueryVariableName == null || typeof identifierInfo.identifierQueryVariableName === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: getRefetchMetadata(): Expected `identifierQueryVariableName` to be a string.') : invariant(false) : void 0;\n  }\n  return {\n    fragmentRefPathInResponse: fragmentRefPathInResponse,\n    identifierInfo: identifierInfo,\n    refetchableRequest: refetchableRequest,\n    refetchMetadata: refetchMetadata\n  };\n}\nmodule.exports = getRefetchMetadata;","'use strict';\n\nvar _require = require('./RelayDefaultHandleKey'),\n  DEFAULT_HANDLE_KEY = _require.DEFAULT_HANDLE_KEY;\nvar invariant = require('invariant');\nfunction getRelayHandleKey(handleName, key, fieldName) {\n  if (key && key !== DEFAULT_HANDLE_KEY) {\n    return \"__\".concat(key, \"_\").concat(handleName);\n  }\n  !(fieldName != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'getRelayHandleKey: Expected either `fieldName` or `key` in `handle` to be provided') : invariant(false) : void 0;\n  return \"__\".concat(fieldName, \"_\").concat(handleName);\n}\nmodule.exports = getRelayHandleKey;","'use strict';\n\nvar stableCopy = require('./stableCopy');\nvar invariant = require('invariant');\nfunction getRequestIdentifier(parameters, variables) {\n  var requestID = parameters.cacheID != null ? parameters.cacheID : parameters.id;\n  !(requestID != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'getRequestIdentifier: Expected request `%s` to have either a ' + 'valid `id` or `cacheID` property', parameters.name) : invariant(false) : void 0;\n  return requestID + JSON.stringify(stableCopy(variables));\n}\nmodule.exports = getRequestIdentifier;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\nvar invariant = require('invariant');\nfunction getValueAtPath(data, path) {\n  var result = data;\n  var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(path),\n    _step;\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var key = _step.value;\n      if (result == null) {\n        return null;\n      }\n      if (typeof key === 'number') {\n        !Array.isArray(result) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected an array when extracting value at path. ' + \"If you're seeing this, this is likely a bug in Relay.\") : invariant(false) : void 0;\n        result = result[key];\n      } else {\n        !(typeof result === 'object' && !Array.isArray(result)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected an object when extracting value at path. ' + \"If you're seeing this, this is likely a bug in Relay.\") : invariant(false) : void 0;\n        result = result[key];\n      }\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n  return result;\n}\nmodule.exports = getValueAtPath;","'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\nvar _RelayErrorTrie = require(\"../store/RelayErrorTrie\");\nvar _RelayFeatureFlags = _interopRequireDefault(require(\"./RelayFeatureFlags\"));\nfunction handlePotentialSnapshotErrors(environment, missingRequiredFields, relayResolverErrors, errorResponseFields) {\n  var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(relayResolverErrors),\n    _step;\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var resolverError = _step.value;\n      environment.relayFieldLogger({\n        kind: 'relay_resolver.error',\n        owner: resolverError.field.owner,\n        fieldPath: resolverError.field.path,\n        error: resolverError.error\n      });\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n  if (_RelayFeatureFlags[\"default\"].ENABLE_FIELD_ERROR_HANDLING && errorResponseFields != null) {\n    if (errorResponseFields != null) {\n      var _iterator2 = (0, _createForOfIteratorHelper2[\"default\"])(errorResponseFields),\n        _step2;\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var fieldError = _step2.value;\n          var path = fieldError.path,\n            owner = fieldError.owner,\n            error = fieldError.error;\n          environment.relayFieldLogger({\n            kind: 'relay_field_payload.error',\n            owner: owner,\n            fieldPath: path,\n            error: error\n          });\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n    }\n    if (_RelayFeatureFlags[\"default\"].ENABLE_FIELD_ERROR_HANDLING_THROW_BY_DEFAULT) {\n      throw new _RelayErrorTrie.RelayFieldError(\"Relay: Unexpected response payload - this object includes an errors property in which you can access the underlying errors\", errorResponseFields.map(function (_ref) {\n        var path = _ref.path,\n          owner = _ref.owner,\n          error = _ref.error;\n        return error;\n      }));\n    }\n  }\n  if (missingRequiredFields != null) {\n    switch (missingRequiredFields.action) {\n      case 'THROW':\n        {\n          var _missingRequiredField = missingRequiredFields.field,\n            _path = _missingRequiredField.path,\n            _owner = _missingRequiredField.owner;\n          environment.relayFieldLogger({\n            kind: 'missing_field.throw',\n            owner: _owner,\n            fieldPath: _path\n          });\n          throw new Error(\"Relay: Missing @required value at path '\".concat(_path, \"' in '\").concat(_owner, \"'.\"));\n        }\n      case 'LOG':\n        missingRequiredFields.fields.forEach(function (_ref2) {\n          var path = _ref2.path,\n            owner = _ref2.owner;\n          environment.relayFieldLogger({\n            kind: 'missing_field.log',\n            owner: owner,\n            fieldPath: path\n          });\n        });\n        break;\n      default:\n        {\n          missingRequiredFields.action;\n        }\n    }\n  }\n}\nmodule.exports = handlePotentialSnapshotErrors;","'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction isEmptyObject(obj) {\n  for (var _key in obj) {\n    if (hasOwnProperty.call(obj, _key)) {\n      return false;\n    }\n  }\n  return true;\n}\nmodule.exports = isEmptyObject;","'use strict';\n\nfunction isPromise(p) {\n  return !!p && typeof p.then === 'function';\n}\nmodule.exports = isPromise;","'use strict';\n\nfunction isScalarAndEqual(valueA, valueB) {\n  return valueA === valueB && (valueA === null || typeof valueA !== 'object');\n}\nmodule.exports = isScalarAndEqual;","'use strict';\n\nfunction recycleNodesInto(prevData, nextData) {\n  return recycleNodesIntoImpl(prevData, nextData, true);\n}\nfunction recycleNodesIntoImpl(prevData, nextData, canMutate) {\n  if (prevData === nextData || typeof prevData !== 'object' || !prevData || prevData.constructor !== Object && !Array.isArray(prevData) || typeof nextData !== 'object' || !nextData || nextData.constructor !== Object && !Array.isArray(nextData)) {\n    return nextData;\n  }\n  var canRecycle = false;\n  var prevArray = Array.isArray(prevData) ? prevData : null;\n  var nextArray = Array.isArray(nextData) ? nextData : null;\n  if (prevArray && nextArray) {\n    var canMutateNext = canMutate && !Object.isFrozen(nextArray);\n    canRecycle = nextArray.reduce(function (wasEqual, nextItem, ii) {\n      var prevValue = prevArray[ii];\n      var nextValue = recycleNodesIntoImpl(prevValue, nextItem, canMutateNext);\n      if (nextValue !== nextArray[ii] && canMutateNext) {\n        nextArray[ii] = nextValue;\n      }\n      return wasEqual && nextValue === prevArray[ii];\n    }, true) && prevArray.length === nextArray.length;\n  } else if (!prevArray && !nextArray) {\n    var prevObject = prevData;\n    var nextObject = nextData;\n    var prevKeys = Object.keys(prevObject);\n    var nextKeys = Object.keys(nextObject);\n    var _canMutateNext = canMutate && !Object.isFrozen(nextObject);\n    canRecycle = nextKeys.reduce(function (wasEqual, key) {\n      var prevValue = prevObject[key];\n      var nextValue = recycleNodesIntoImpl(prevValue, nextObject[key], _canMutateNext);\n      if (nextValue !== nextObject[key] && _canMutateNext) {\n        nextObject[key] = nextValue;\n      }\n      return wasEqual && nextValue === prevObject[key];\n    }, true) && prevKeys.length === nextKeys.length;\n  }\n  return canRecycle ? prevData : nextData;\n}\nmodule.exports = recycleNodesInto;","'use strict';\n\nfunction registerEnvironmentWithDevTools(environment) {\n  var _global = typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : undefined;\n  var devToolsHook = _global && _global.__RELAY_DEVTOOLS_HOOK__;\n  if (devToolsHook) {\n    devToolsHook.registerEnvironment(environment);\n  }\n}\nmodule.exports = registerEnvironmentWithDevTools;","'use strict';\n\nvar resolvedPromise = Promise.resolve();\nfunction resolveImmediate(callback) {\n  resolvedPromise.then(callback)[\"catch\"](throwNext);\n}\nfunction throwNext(error) {\n  setTimeout(function () {\n    throw error;\n  }, 0);\n}\nmodule.exports = resolveImmediate;","'use strict';\n\nmodule.exports = function shallowFreeze(value) {\n  if (typeof value === 'object' && value != null && (Array.isArray(value) || value.constructor === Object)) {\n    Object.freeze(value);\n  }\n};","'use strict';\n\nfunction stableCopy(value) {\n  if (!value || typeof value !== 'object') {\n    return value;\n  }\n  if (Array.isArray(value)) {\n    return value.map(stableCopy);\n  }\n  var keys = Object.keys(value).sort();\n  var stable = {};\n  for (var i = 0; i < keys.length; i++) {\n    stable[keys[i]] = stableCopy(value[keys[i]]);\n  }\n  return stable;\n}\nmodule.exports = stableCopy;","'use strict';\n\nvar _window, _window$performance;\nvar isPerformanceNowAvailable = typeof window !== 'undefined' && typeof ((_window = window) === null || _window === void 0 ? void 0 : (_window$performance = _window.performance) === null || _window$performance === void 0 ? void 0 : _window$performance.now) === 'function';\nfunction currentTimestamp() {\n  if (isPerformanceNowAvailable) {\n    return window.performance.now();\n  }\n  return Date.now();\n}\nfunction withDuration(cb) {\n  var startTime = currentTimestamp();\n  var result = cb();\n  return [currentTimestamp() - startTime, result];\n}\nmodule.exports = withDuration;","'use strict';\n\nvar areEqual = require(\"fbjs/lib/areEqual\");\nvar warning = require(\"fbjs/lib/warning\");\nvar WEAKMAP_SUPPORTED = typeof WeakMap === 'function';\nvar debugCache = WEAKMAP_SUPPORTED ? new WeakMap() : new Map();\nfunction withProvidedVariables(userSuppliedVariables, providedVariables) {\n  if (providedVariables != null) {\n    var operationVariables = {};\n    Object.assign(operationVariables, userSuppliedVariables);\n    Object.keys(providedVariables).forEach(function (varName) {\n      var providerFunction = providedVariables[varName].get;\n      var providerResult = providerFunction();\n      if (!debugCache.has(providerFunction)) {\n        debugCache.set(providerFunction, providerResult);\n        operationVariables[varName] = providerResult;\n      } else {\n        var cachedResult = debugCache.get(providerFunction);\n        if (process.env.NODE_ENV !== \"production\") {\n          process.env.NODE_ENV !== \"production\" ? warning(areEqual(providerResult, cachedResult), 'Relay: Expected function `%s` for provider `%s` to be a pure function, ' + 'but got conflicting return values `%s` and `%s`', providerFunction.name, varName, providerResult, cachedResult) : void 0;\n        }\n        operationVariables[varName] = cachedResult;\n      }\n    });\n    return operationVariables;\n  } else {\n    return userSuppliedVariables;\n  }\n}\nwithProvidedVariables.tests_only_resetDebugCache = process.env.NODE_ENV !== \"production\" ? function () {\n  debugCache = WEAKMAP_SUPPORTED ? new WeakMap() : new Map();\n} : undefined;\nmodule.exports = withProvidedVariables;","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n  module.exports = require('./cjs/scheduler.development.js');\n}\n",null,"// NOTE: separate `:not()` selectors has broader browser support than the newer\n//  `:not([inert], [inert] *)` (Feb 2023)\n// CAREFUL: JSDom does not support `:not([inert] *)` as a selector; using it causes\n//  the entire query to fail, resulting in no nodes found, which will break a lot\n//  of things... so we have to rely on JS to identify nodes inside an inert container\nconst candidateSelectors = [\n  'input:not([inert])',\n  'select:not([inert])',\n  'textarea:not([inert])',\n  'a[href]:not([inert])',\n  'button:not([inert])',\n  '[tabindex]:not(slot):not([inert])',\n  'audio[controls]:not([inert])',\n  'video[controls]:not([inert])',\n  '[contenteditable]:not([contenteditable=\"false\"]):not([inert])',\n  'details>summary:first-of-type:not([inert])',\n  'details:not([inert])',\n];\nconst candidateSelector = /* #__PURE__ */ candidateSelectors.join(',');\n\nconst NoElement = typeof Element === 'undefined';\n\nconst matches = NoElement\n  ? function () {}\n  : Element.prototype.matches ||\n    Element.prototype.msMatchesSelector ||\n    Element.prototype.webkitMatchesSelector;\n\nconst getRootNode =\n  !NoElement && Element.prototype.getRootNode\n    ? (element) => element?.getRootNode?.()\n    : (element) => element?.ownerDocument;\n\n/**\n * Determines if a node is inert or in an inert ancestor.\n * @param {Element} [node]\n * @param {boolean} [lookUp] If true and `node` is not inert, looks up at ancestors to\n *  see if any of them are inert. If false, only `node` itself is considered.\n * @returns {boolean} True if inert itself or by way of being in an inert ancestor.\n *  False if `node` is falsy.\n */\nconst isInert = function (node, lookUp = true) {\n  // CAREFUL: JSDom does not support inert at all, so we can't use the `HTMLElement.inert`\n  //  JS API property; we have to check the attribute, which can either be empty or 'true';\n  //  if it's `null` (not specified) or 'false', it's an active element\n  const inertAtt = node?.getAttribute?.('inert');\n  const inert = inertAtt === '' || inertAtt === 'true';\n\n  // NOTE: this could also be handled with `node.matches('[inert], :is([inert] *)')`\n  //  if it weren't for `matches()` not being a function on shadow roots; the following\n  //  code works for any kind of node\n  // CAREFUL: JSDom does not appear to support certain selectors like `:not([inert] *)`\n  //  so it likely would not support `:is([inert] *)` either...\n  const result = inert || (lookUp && node && isInert(node.parentNode)); // recursive\n\n  return result;\n};\n\n/**\n * Determines if a node's content is editable.\n * @param {Element} [node]\n * @returns True if it's content-editable; false if it's not or `node` is falsy.\n */\nconst isContentEditable = function (node) {\n  // CAREFUL: JSDom does not support the `HTMLElement.isContentEditable` API so we have\n  //  to use the attribute directly to check for this, which can either be empty or 'true';\n  //  if it's `null` (not specified) or 'false', it's a non-editable element\n  const attValue = node?.getAttribute?.('contenteditable');\n  return attValue === '' || attValue === 'true';\n};\n\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\nconst getCandidates = function (el, includeContainer, filter) {\n  // even if `includeContainer=false`, we still have to check it for inertness because\n  //  if it's inert, all its children are inert\n  if (isInert(el)) {\n    return [];\n  }\n\n  let candidates = Array.prototype.slice.apply(\n    el.querySelectorAll(candidateSelector)\n  );\n  if (includeContainer && matches.call(el, candidateSelector)) {\n    candidates.unshift(el);\n  }\n  candidates = candidates.filter(filter);\n  return candidates;\n};\n\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidateScope\n * @property {Element} scopeParent contains inner candidates\n * @property {Element[]} candidates list of candidates found in the scope parent\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n *  if a function, implies shadow support is enabled and either returns the shadow root of an element\n *  or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.<Element|CandidateScope>}\n */\nconst getCandidatesIteratively = function (\n  elements,\n  includeContainer,\n  options\n) {\n  const candidates = [];\n  const elementsToCheck = Array.from(elements);\n  while (elementsToCheck.length) {\n    const element = elementsToCheck.shift();\n    if (isInert(element, false)) {\n      // no need to look up since we're drilling down\n      // anything inside this container will also be inert\n      continue;\n    }\n\n    if (element.tagName === 'SLOT') {\n      // add shadow dom slot scope (slot itself cannot be focusable)\n      const assigned = element.assignedElements();\n      const content = assigned.length ? assigned : element.children;\n      const nestedCandidates = getCandidatesIteratively(content, true, options);\n      if (options.flatten) {\n        candidates.push(...nestedCandidates);\n      } else {\n        candidates.push({\n          scopeParent: element,\n          candidates: nestedCandidates,\n        });\n      }\n    } else {\n      // check candidate element\n      const validCandidate = matches.call(element, candidateSelector);\n      if (\n        validCandidate &&\n        options.filter(element) &&\n        (includeContainer || !elements.includes(element))\n      ) {\n        candidates.push(element);\n      }\n\n      // iterate over shadow content if possible\n      const shadowRoot =\n        element.shadowRoot ||\n        // check for an undisclosed shadow\n        (typeof options.getShadowRoot === 'function' &&\n          options.getShadowRoot(element));\n\n      // no inert look up because we're already drilling down and checking for inertness\n      //  on the way down, so all containers to this root node should have already been\n      //  vetted as non-inert\n      const validShadowRoot =\n        !isInert(shadowRoot, false) &&\n        (!options.shadowRootFilter || options.shadowRootFilter(element));\n\n      if (shadowRoot && validShadowRoot) {\n        // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n        //  shadow exists, so look at light dom children as fallback BUT create a scope for any\n        //  child candidates found because they're likely slotted elements (elements that are\n        //  children of the web component element (which has the shadow), in the light dom, but\n        //  slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n        //  _after_ we return from this recursive call\n        const nestedCandidates = getCandidatesIteratively(\n          shadowRoot === true ? element.children : shadowRoot.children,\n          true,\n          options\n        );\n\n        if (options.flatten) {\n          candidates.push(...nestedCandidates);\n        } else {\n          candidates.push({\n            scopeParent: element,\n            candidates: nestedCandidates,\n          });\n        }\n      } else {\n        // there's not shadow so just dig into the element's (light dom) children\n        //  __without__ giving the element special scope treatment\n        elementsToCheck.unshift(...element.children);\n      }\n    }\n  }\n  return candidates;\n};\n\n/**\n * @private\n * Determines if the node has an explicitly specified `tabindex` attribute.\n * @param {HTMLElement} node\n * @returns {boolean} True if so; false if not.\n */\nconst hasTabIndex = function (node) {\n  return !isNaN(parseInt(node.getAttribute('tabindex'), 10));\n};\n\n/**\n * Determine the tab index of a given node.\n * @param {HTMLElement} node\n * @returns {number} Tab order (negative, 0, or positive number).\n * @throws {Error} If `node` is falsy.\n */\nconst getTabIndex = function (node) {\n  if (!node) {\n    throw new Error('No node provided');\n  }\n\n  if (node.tabIndex < 0) {\n    // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n    // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n    // yet they are still part of the regular tab order; in FF, they get a default\n    // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n    // order, consider their tab index to be 0.\n    // Also browsers do not return `tabIndex` correctly for contentEditable nodes;\n    // so if they don't have a tabindex attribute specifically set, assume it's 0.\n    if (\n      (/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) ||\n        isContentEditable(node)) &&\n      !hasTabIndex(node)\n    ) {\n      return 0;\n    }\n  }\n\n  return node.tabIndex;\n};\n\n/**\n * Determine the tab index of a given node __for sort order purposes__.\n * @param {HTMLElement} node\n * @param {boolean} [isScope] True for a custom element with shadow root or slot that, by default,\n *  has tabIndex -1, but needs to be sorted by document order in order for its content to be\n *  inserted into the correct sort position.\n * @returns {number} Tab order (negative, 0, or positive number).\n */\nconst getSortOrderTabIndex = function (node, isScope) {\n  const tabIndex = getTabIndex(node);\n\n  if (tabIndex < 0 && isScope && !hasTabIndex(node)) {\n    return 0;\n  }\n\n  return tabIndex;\n};\n\nconst sortOrderedTabbables = function (a, b) {\n  return a.tabIndex === b.tabIndex\n    ? a.documentOrder - b.documentOrder\n    : a.tabIndex - b.tabIndex;\n};\n\nconst isInput = function (node) {\n  return node.tagName === 'INPUT';\n};\n\nconst isHiddenInput = function (node) {\n  return isInput(node) && node.type === 'hidden';\n};\n\nconst isDetailsWithSummary = function (node) {\n  const r =\n    node.tagName === 'DETAILS' &&\n    Array.prototype.slice\n      .apply(node.children)\n      .some((child) => child.tagName === 'SUMMARY');\n  return r;\n};\n\nconst getCheckedRadio = function (nodes, form) {\n  for (let i = 0; i < nodes.length; i++) {\n    if (nodes[i].checked && nodes[i].form === form) {\n      return nodes[i];\n    }\n  }\n};\n\nconst isTabbableRadio = function (node) {\n  if (!node.name) {\n    return true;\n  }\n  const radioScope = node.form || getRootNode(node);\n  const queryRadios = function (name) {\n    return radioScope.querySelectorAll(\n      'input[type=\"radio\"][name=\"' + name + '\"]'\n    );\n  };\n\n  let radioSet;\n  if (\n    typeof window !== 'undefined' &&\n    typeof window.CSS !== 'undefined' &&\n    typeof window.CSS.escape === 'function'\n  ) {\n    radioSet = queryRadios(window.CSS.escape(node.name));\n  } else {\n    try {\n      radioSet = queryRadios(node.name);\n    } catch (err) {\n      // eslint-disable-next-line no-console\n      console.error(\n        'Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s',\n        err.message\n      );\n      return false;\n    }\n  }\n\n  const checked = getCheckedRadio(radioSet, node.form);\n  return !checked || checked === node;\n};\n\nconst isRadio = function (node) {\n  return isInput(node) && node.type === 'radio';\n};\n\nconst isNonTabbableRadio = function (node) {\n  return isRadio(node) && !isTabbableRadio(node);\n};\n\n// determines if a node is ultimately attached to the window's document\nconst isNodeAttached = function (node) {\n  // The root node is the shadow root if the node is in a shadow DOM; some document otherwise\n  //  (but NOT _the_ document; see second 'If' comment below for more).\n  // If rootNode is shadow root, it'll have a host, which is the element to which the shadow\n  //  is attached, and the one we need to check if it's in the document or not (because the\n  //  shadow, and all nodes it contains, is never considered in the document since shadows\n  //  behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,\n  //  is hidden, or is not in the document itself but is detached, it will affect the shadow's\n  //  visibility, including all the nodes it contains). The host could be any normal node,\n  //  or a custom element (i.e. web component). Either way, that's the one that is considered\n  //  part of the document, not the shadow root, nor any of its children (i.e. the node being\n  //  tested).\n  // To further complicate things, we have to look all the way up until we find a shadow HOST\n  //  that is attached (or find none) because the node might be in nested shadows...\n  // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the\n  //  document (per the docs) and while it's a Document-type object, that document does not\n  //  appear to be the same as the node's `ownerDocument` for some reason, so it's safer\n  //  to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,\n  //  using `rootNode.contains(node)` will _always_ be true we'll get false-positives when\n  //  node is actually detached.\n  // NOTE: If `nodeRootHost` or `node` happens to be the `document` itself (which is possible\n  //  if a tabbable/focusable node was quickly added to the DOM, focused, and then removed\n  //  from the DOM as in https://github.com/focus-trap/focus-trap-react/issues/905), then\n  //  `ownerDocument` will be `null`, hence the optional chaining on it.\n  let nodeRoot = node && getRootNode(node);\n  let nodeRootHost = nodeRoot?.host;\n\n  // in some cases, a detached node will return itself as the root instead of a document or\n  //  shadow root object, in which case, we shouldn't try to look further up the host chain\n  let attached = false;\n  if (nodeRoot && nodeRoot !== node) {\n    attached = !!(\n      nodeRootHost?.ownerDocument?.contains(nodeRootHost) ||\n      node?.ownerDocument?.contains(node)\n    );\n\n    while (!attached && nodeRootHost) {\n      // since it's not attached and we have a root host, the node MUST be in a nested shadow DOM,\n      //  which means we need to get the host's host and check if that parent host is contained\n      //  in (i.e. attached to) the document\n      nodeRoot = getRootNode(nodeRootHost);\n      nodeRootHost = nodeRoot?.host;\n      attached = !!nodeRootHost?.ownerDocument?.contains(nodeRootHost);\n    }\n  }\n\n  return attached;\n};\n\nconst isZeroArea = function (node) {\n  const { width, height } = node.getBoundingClientRect();\n  return width === 0 && height === 0;\n};\nconst isHidden = function (node, { displayCheck, getShadowRoot }) {\n  // NOTE: visibility will be `undefined` if node is detached from the document\n  //  (see notes about this further down), which means we will consider it visible\n  //  (this is legacy behavior from a very long way back)\n  // NOTE: we check this regardless of `displayCheck=\"none\"` because this is a\n  //  _visibility_ check, not a _display_ check\n  if (getComputedStyle(node).visibility === 'hidden') {\n    return true;\n  }\n\n  const isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n  const nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n  if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n    return true;\n  }\n\n  if (\n    !displayCheck ||\n    displayCheck === 'full' ||\n    displayCheck === 'legacy-full'\n  ) {\n    if (typeof getShadowRoot === 'function') {\n      // figure out if we should consider the node to be in an undisclosed shadow and use the\n      //  'non-zero-area' fallback\n      const originalNode = node;\n      while (node) {\n        const parentElement = node.parentElement;\n        const rootNode = getRootNode(node);\n        if (\n          parentElement &&\n          !parentElement.shadowRoot &&\n          getShadowRoot(parentElement) === true // check if there's an undisclosed shadow\n        ) {\n          // node has an undisclosed shadow which means we can only treat it as a black box, so we\n          //  fall back to a non-zero-area test\n          return isZeroArea(node);\n        } else if (node.assignedSlot) {\n          // iterate up slot\n          node = node.assignedSlot;\n        } else if (!parentElement && rootNode !== node.ownerDocument) {\n          // cross shadow boundary\n          node = rootNode.host;\n        } else {\n          // iterate up normal dom\n          node = parentElement;\n        }\n      }\n\n      node = originalNode;\n    }\n    // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support\n    //  (i.e. it does not also presume that all nodes might have undisclosed shadows); or\n    //  it might be a falsy value, which means shadow DOM support is disabled\n\n    // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)\n    //  now we can just test to see if it would normally be visible or not, provided it's\n    //  attached to the main document.\n    // NOTE: We must consider case where node is inside a shadow DOM and given directly to\n    //  `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.\n\n    if (isNodeAttached(node)) {\n      // this works wherever the node is: if there's at least one client rect, it's\n      //  somehow displayed; it also covers the CSS 'display: contents' case where the\n      //  node itself is hidden in place of its contents; and there's no need to search\n      //  up the hierarchy either\n      return !node.getClientRects().length;\n    }\n\n    // Else, the node isn't attached to the document, which means the `getClientRects()`\n    //  API will __always__ return zero rects (this can happen, for example, if React\n    //  is used to render nodes onto a detached tree, as confirmed in this thread:\n    //  https://github.com/facebook/react/issues/9117#issuecomment-284228870)\n    //\n    // It also means that even window.getComputedStyle(node).display will return `undefined`\n    //  because styles are only computed for nodes that are in the document.\n    //\n    // NOTE: THIS HAS BEEN THE CASE FOR YEARS. It is not new, nor is it caused by tabbable\n    //  somehow. Though it was never stated officially, anyone who has ever used tabbable\n    //  APIs on nodes in detached containers has actually implicitly used tabbable in what\n    //  was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck=\"none\"` mode -- essentially\n    //  considering __everything__ to be visible because of the innability to determine styles.\n    //\n    // v6.0.0: As of this major release, the default 'full' option __no longer treats detached\n    //  nodes as visible with the 'none' fallback.__\n    if (displayCheck !== 'legacy-full') {\n      return true; // hidden\n    }\n    // else, fallback to 'none' mode and consider the node visible\n  } else if (displayCheck === 'non-zero-area') {\n    // NOTE: Even though this tests that the node's client rect is non-zero to determine\n    //  whether it's displayed, and that a detached node will __always__ have a zero-area\n    //  client rect, we don't special-case for whether the node is attached or not. In\n    //  this mode, we do want to consider nodes that have a zero area to be hidden at all\n    //  times, and that includes attached or not.\n    return isZeroArea(node);\n  }\n\n  // visible, as far as we can tell, or per current `displayCheck=none` mode, we assume\n  //  it's visible\n  return false;\n};\n\n// form fields (nested) inside a disabled fieldset are not focusable/tabbable\n//  unless they are in the _first_ <legend> element of the top-most disabled\n//  fieldset\nconst isDisabledFromFieldset = function (node) {\n  if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n    let parentNode = node.parentElement;\n    // check if `node` is contained in a disabled <fieldset>\n    while (parentNode) {\n      if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n        // look for the first <legend> among the children of the disabled <fieldset>\n        for (let i = 0; i < parentNode.children.length; i++) {\n          const child = parentNode.children.item(i);\n          // when the first <legend> (in document order) is found\n          if (child.tagName === 'LEGEND') {\n            // if its parent <fieldset> is not nested in another disabled <fieldset>,\n            // return whether `node` is a descendant of its first <legend>\n            return matches.call(parentNode, 'fieldset[disabled] *')\n              ? true\n              : !child.contains(node);\n          }\n        }\n        // the disabled <fieldset> containing `node` has no <legend>\n        return true;\n      }\n      parentNode = parentNode.parentElement;\n    }\n  }\n\n  // else, node's tabbable/focusable state should not be affected by a fieldset's\n  //  enabled/disabled state\n  return false;\n};\n\nconst isNodeMatchingSelectorFocusable = function (options, node) {\n  if (\n    node.disabled ||\n    // we must do an inert look up to filter out any elements inside an inert ancestor\n    //  because we're limited in the type of selectors we can use in JSDom (see related\n    //  note related to `candidateSelectors`)\n    isInert(node) ||\n    isHiddenInput(node) ||\n    isHidden(node, options) ||\n    // For a details element with a summary, the summary element gets the focus\n    isDetailsWithSummary(node) ||\n    isDisabledFromFieldset(node)\n  ) {\n    return false;\n  }\n  return true;\n};\n\nconst isNodeMatchingSelectorTabbable = function (options, node) {\n  if (\n    isNonTabbableRadio(node) ||\n    getTabIndex(node) < 0 ||\n    !isNodeMatchingSelectorFocusable(options, node)\n  ) {\n    return false;\n  }\n  return true;\n};\n\nconst isValidShadowRootTabbable = function (shadowHostNode) {\n  const tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);\n  if (isNaN(tabIndex) || tabIndex >= 0) {\n    return true;\n  }\n  // If a custom element has an explicit negative tabindex,\n  // browsers will not allow tab targeting said element's children.\n  return false;\n};\n\n/**\n * @param {Array.<Element|CandidateScope>} candidates\n * @returns Element[]\n */\nconst sortByOrder = function (candidates) {\n  const regularTabbables = [];\n  const orderedTabbables = [];\n  candidates.forEach(function (item, i) {\n    const isScope = !!item.scopeParent;\n    const element = isScope ? item.scopeParent : item;\n    const candidateTabindex = getSortOrderTabIndex(element, isScope);\n    const elements = isScope ? sortByOrder(item.candidates) : element;\n    if (candidateTabindex === 0) {\n      isScope\n        ? regularTabbables.push(...elements)\n        : regularTabbables.push(element);\n    } else {\n      orderedTabbables.push({\n        documentOrder: i,\n        tabIndex: candidateTabindex,\n        item: item,\n        isScope: isScope,\n        content: elements,\n      });\n    }\n  });\n\n  return orderedTabbables\n    .sort(sortOrderedTabbables)\n    .reduce((acc, sortable) => {\n      sortable.isScope\n        ? acc.push(...sortable.content)\n        : acc.push(sortable.content);\n      return acc;\n    }, [])\n    .concat(regularTabbables);\n};\n\nconst tabbable = function (container, options) {\n  options = options || {};\n\n  let candidates;\n  if (options.getShadowRoot) {\n    candidates = getCandidatesIteratively(\n      [container],\n      options.includeContainer,\n      {\n        filter: isNodeMatchingSelectorTabbable.bind(null, options),\n        flatten: false,\n        getShadowRoot: options.getShadowRoot,\n        shadowRootFilter: isValidShadowRootTabbable,\n      }\n    );\n  } else {\n    candidates = getCandidates(\n      container,\n      options.includeContainer,\n      isNodeMatchingSelectorTabbable.bind(null, options)\n    );\n  }\n  return sortByOrder(candidates);\n};\n\nconst focusable = function (container, options) {\n  options = options || {};\n\n  let candidates;\n  if (options.getShadowRoot) {\n    candidates = getCandidatesIteratively(\n      [container],\n      options.includeContainer,\n      {\n        filter: isNodeMatchingSelectorFocusable.bind(null, options),\n        flatten: true,\n        getShadowRoot: options.getShadowRoot,\n      }\n    );\n  } else {\n    candidates = getCandidates(\n      container,\n      options.includeContainer,\n      isNodeMatchingSelectorFocusable.bind(null, options)\n    );\n  }\n\n  return candidates;\n};\n\nconst isTabbable = function (node, options) {\n  options = options || {};\n  if (!node) {\n    throw new Error('No node provided');\n  }\n  if (matches.call(node, candidateSelector) === false) {\n    return false;\n  }\n  return isNodeMatchingSelectorTabbable(options, node);\n};\n\nconst focusableCandidateSelector = /* #__PURE__ */ candidateSelectors\n  .concat('iframe')\n  .join(',');\n\nconst isFocusable = function (node, options) {\n  options = options || {};\n  if (!node) {\n    throw new Error('No node provided');\n  }\n  if (matches.call(node, focusableCandidateSelector) === false) {\n    return false;\n  }\n  return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { tabbable, focusable, isTabbable, isFocusable, getTabIndex };\n","import { useLayoutEffect } from 'react';\n\nvar index =  useLayoutEffect ;\n\nexport default index;\n","/**\n * This file automatically generated from `pre-publish.js`.\n * Do not manually edit.\n */\n\nmodule.exports = {\n  \"area\": true,\n  \"base\": true,\n  \"br\": true,\n  \"col\": true,\n  \"embed\": true,\n  \"hr\": true,\n  \"img\": true,\n  \"input\": true,\n  \"link\": true,\n  \"meta\": true,\n  \"param\": true,\n  \"source\": true,\n  \"track\": true,\n  \"wbr\": true\n};\n","import { css, Global } from \"@emotion/react\";\nimport React from \"react\";\nimport { COLORS } from \"./color\";\nimport { screenWidthAtMost } from \"@opencast/appkit\";\n\n\nexport const GlobalStyle: React.FC = () => <>\n    <Global styles={CSS_RESETS} />\n    <Global styles={GLOBAL_STYLE} />\n</>;\n\nexport const BREAKPOINT_SMALL = 450;\nexport const BREAKPOINT_MEDIUM = 650;\n\n/**\n * The following is a minimal set of CSS reset rules in order to get rid of\n * browser dependent, inconsistent or unexpected behavior. Parts of this\n * are taken from here: https://github.com/hankchizljaw/modern-css-reset\n * Licensed as MIT, Andy Bell and other contributors\n */\nconst CSS_RESETS = css({\n    // Everything should have box-sizing border-box by default as it's more\n    // intuitive and expected.\n    \"*, *::before, *::after\": {\n        boxSizing: \"border-box\",\n    },\n\n    // Remove default margins of the most important elements.\n    \"body, h1, h2, h3, h4, p, li, figure, figcaption, blockquote, dl, dd, pre\": {\n        margin: 0,\n    },\n\n    html: {\n        height: \"100%\",\n    },\n\n    // Useful body defaults\n    body: {\n        // It is useful for the body to always span the entire height of the viewport.\n        height: \"100%\",\n\n        // This only affects scrolling that \"is triggered by the navigation or\n        // CSSOM scrolling APIs\". For anchors, smooth scrolling is useful.\n        scrollBehavior: \"smooth\",\n\n        // A reset to a sensible value.\n        lineHeight: 1.5,\n\n        // Accent color for generated UI control `<input>` elements\n        // where type=\"checkbox\", \"radio\" or \"range\",\n        // as well as `<progress>` elements.\n        accentColor: COLORS.primary0,\n\n        // This prevents an increase in font size when changing from\n        // portrait to landscape orientation in iOS safari.\n        WebkitTextSizeAdjust: \"none\",\n    },\n\n    // This improves the readability of underlines in links.\n    a: {\n        textDecorationSkipInk: \"auto\",\n    },\n\n    // Some elements not inheriting fonts is a really confusing browser default.\n    \"input, button, textarea, select\": {\n        font: \"inherit\",\n        margin: 0,\n    },\n});\n\n/** This is just styling for Tobira that we want to apply globally. */\nconst GLOBAL_STYLE = css({\n    \":root\": {\n        \"--min-page-width\": \"320px\",\n    },\n    body: {\n        color: COLORS.neutral90,\n        backgroundColor: COLORS.neutral05,\n        fontFamily: \"var(--main-font), sans-serif\",\n        fontWeight: 400,\n\n        // 16px is a good default body text size according to the internet (TM).\n        fontSize: 16,\n\n        // From a set of popular phones, the iPhone 5 has the smallest viewport\n        // width: 320px. It does make sense to set a minimum width early on in\n        // order to know where we can stop caring.\n        minWidth: \"var(--min-page-width)\",\n    },\n    h1: {\n        fontSize: 30,\n        lineHeight: 1.3,\n        marginBottom: 20,\n        [screenWidthAtMost(BREAKPOINT_SMALL)]: {\n            fontSize: 26,\n        },\n    },\n    h2: {\n        fontSize: 23,\n        [screenWidthAtMost(BREAKPOINT_SMALL)]: {\n            fontSize: 20,\n        },\n    },\n    h3: {\n        fontSize: 19,\n        [screenWidthAtMost(BREAKPOINT_SMALL)]: {\n            fontSize: 18,\n        },\n    },\n    a: {\n        color: COLORS.primary0,\n        \"&:hover, &:focus\": {\n            textDecoration: \"none\",\n            color: COLORS.primary1,\n        },\n        \":focus-visible\": { outline: `2.5px solid ${COLORS.focus}` },\n    },\n    hr: {\n        border: \"none\",\n        borderTop: `1px solid ${COLORS.neutral25}`,\n    },\n    \"p, label\": { color: COLORS.neutral80 },\n    \"input, textarea\": {\n        backgroundColor: COLORS.neutral00,\n        color: COLORS.neutral90,\n        \":disabled\": {\n            backgroundColor: COLORS.neutral10,\n            color: COLORS.neutral70,\n        },\n    },\n});\n","import React, { ReactNode } from \"react\";\nimport { useContext } from \"react\";\nimport { graphql } from \"react-relay/hooks\";\n\nimport { UserData$data, UserData$key } from \"./__generated__/UserData.graphql\";\n\n\nexport type UserQueryRef = UserData$key;\n\n/**\n * Information we know about the user:\n *\n * - \"unknown\": still loading data or it is unknown for an unexpected reason.\n * - \"error\": error fetching user data.\n * - \"none\": no user session, i.e. not logged in.\n * - Or a user object if there is a login session.\n */\nexport type UserState = \"unknown\" | \"error\" | \"none\" | User;\n\nexport type User = {\n    username: string;\n    displayName: string;\n    canUpload: boolean;\n    canUseStudio: boolean;\n    canUseEditor: boolean;\n    canCreateUserRealm: boolean;\n    canFindUnlisted: boolean;\n    roles: readonly string[];\n    userRole: string;\n};\n\nexport const isRealUser = (state: UserState): state is User => (\n    state !== \"unknown\" && state !== \"error\" && state !== \"none\"\n);\n\nconst UserContext = React.createContext<UserState>(\"unknown\");\n\nexport const useUser = (): UserState => useContext(UserContext);\n\nexport type Props = {\n    data?: UserData$data[\"currentUser\"] | \"error\";\n    children: ReactNode;\n};\n\nexport const UserProvider: React.FC<Props> = ({ data, children }) => {\n    const user = data === undefined\n        ? \"unknown\" as const\n        : data === null\n            ? \"none\" as const\n            : data;\n    return <UserContext.Provider value={user}>{children}</UserContext.Provider>;\n};\n\nexport const userDataFragment = graphql`\n    fragment UserData on Query {\n        currentUser {\n            username\n            displayName\n            canUpload\n            canUseStudio\n            canUseEditor\n            canCreateUserRealm\n            canFindUnlisted\n            roles\n            userRole\n        }\n    }\n`;\n","/**\n * @generated SignedSource<<8955712868d482bcb14135ebf17bace9>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type UserData$data = {\n  readonly currentUser: {\n    readonly canCreateUserRealm: boolean;\n    readonly canFindUnlisted: boolean;\n    readonly canUpload: boolean;\n    readonly canUseEditor: boolean;\n    readonly canUseStudio: boolean;\n    readonly displayName: string;\n    readonly roles: ReadonlyArray<string>;\n    readonly userRole: string;\n    readonly username: string;\n  } | null | undefined;\n  readonly \" $fragmentType\": \"UserData\";\n};\nexport type UserData$key = {\n  readonly \" $data\"?: UserData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"UserData\">;\n};\n\nconst node: ReaderFragment = {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"UserData\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"User\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"currentUser\",\n      \"plural\": false,\n      \"selections\": [\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"username\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"displayName\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"canUpload\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"canUseStudio\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"canUseEditor\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"canCreateUserRealm\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"canFindUnlisted\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"roles\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"userRole\",\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"Query\",\n  \"abstractKey\": null\n};\n\n(node as any).hash = \"e82917de2e283441de16f6ab93db2be3\";\n\nexport default node;\n","/**\n * All colors used throughout Tobira. Higher numbers mean darker colors in light\n * mode and lighter colors in dark mode.\n */\nexport const COLORS = {\n    primary0: \"var(--color-primary0)\",\n    primary0BwInverted: \"var(--color-primary0-bw-inverted)\",\n    primary1: \"var(--color-primary1)\",\n    primary1BwInverted: \"var(--color-primary1-bw-inverted)\",\n    primary2: \"var(--color-primary2)\",\n    primary2BwInverted: \"var(--color-primary2-bw-inverted)\",\n\n    danger0: \"var(--color-danger0)\",\n    danger0BwInverted: \"var(--color-danger0-bw-inverted)\",\n    danger1: \"var(--color-danger1)\",\n    danger1BwInverted: \"var(--color-danger1-bw-inverted)\",\n\n    happy0: \"var(--color-happy0)\",\n    happy0BwInverted: \"var(--color-happy0-bw-inverted)\",\n    happy1: \"var(--color-happy1)\",\n    happy1BwInverted: \"var(--color-happy1-bw-inverted)\",\n    happy2: \"var(--color-happy2)\",\n    happy2BwInverted: \"var(--color-happy2-bw-inverted)\",\n\n    neutral00: \"var(--color-neutral00)\",\n    neutral05: \"var(--color-neutral05)\",\n    neutral10: \"var(--color-neutral10)\",\n    neutral15: \"var(--color-neutral15)\",\n    neutral20: \"var(--color-neutral20)\",\n    neutral25: \"var(--color-neutral25)\",\n    neutral30: \"var(--color-neutral30)\",\n    neutral40: \"var(--color-neutral40)\",\n    neutral50: \"var(--color-neutral50)\",\n    neutral60: \"var(--color-neutral60)\",\n    neutral70: \"var(--color-neutral70)\",\n    neutral80: \"var(--color-neutral80)\",\n    neutral90: \"var(--color-neutral90)\",\n\n    // Additional aliases for colors set by the backend.\n    focus: \"var(--color-primary1)\",\n};\n","import { bug } from \"@opencast/appkit\";\n\n\n/** The ID of the HTML element containing our configuration. */\nconst ID = \"tobira-frontend-config\";\n\n/** Loads the frontend config and returns it as object. */\nconst parseConfig: () => Config = () => {\n    const tag = document.getElementById(ID);\n    if (tag === null) {\n        return bug(`No <script> tag with ID '${ID}' in HTML: cannot load frontend config`);\n    }\n    if (!(tag instanceof HTMLScriptElement)) {\n        return bug(`Element with ID '${ID}' is not a <script> tag: cannot load frontend config`);\n    }\n\n    // We just cast the parsed type without checking. We might want to add a\n    // check later, but it's not that important because this value is completely\n    // controlled by us.\n    return JSON.parse(tag.text) as Config;\n};\n\ntype Config = {\n    version: VersionInfo;\n    auth: AuthConfig;\n    siteTitle: TranslatedString;\n    initialConsent: InitialConsent | null;\n    showDownloadButton: boolean;\n    usersSearchable: boolean;\n    opencast: OpencastConfig;\n    footerLinks: FooterLink[];\n    metadataLabels: Record<string, Record<string, MetadataLabel>>;\n    logo: LogoConfig;\n    plyr: PlyrConfig;\n    upload: UploadConfig;\n    paellaPluginConfig: object;\n    sync: SyncConfig;\n};\n\ntype FooterLink = \"about\" | \"graphiql\" | {\n    label: TranslatedString;\n    link: TranslatedString | string;\n};\n\ntype InitialConsent = {\n    title: TranslatedString;\n    button: TranslatedString;\n    text: TranslatedString;\n}\n\ntype AuthConfig = {\n    usesTobiraSessions: boolean;\n    loginLink: string | null;\n    logoutLink: string | null;\n    userIdLabel: TranslatedString | null;\n    passwordLabel: TranslatedString | null;\n    loginPageNote: TranslatedString | null;\n    preAuthExternalLinks: boolean;\n    userRolePrefixes: string[];\n    globalPageAdminRole: string;\n    globalPageModeratorRole: string;\n};\n\ntype LogoConfig = {\n    large: SingleLogoConfig;\n    small: SingleLogoConfig | null;\n    largeDark: SingleLogoConfig | null;\n    smallDark: SingleLogoConfig | null;\n};\n\ntype SingleLogoConfig = {\n    path: string;\n    resolution: number[];\n};\n\ntype PlyrConfig = {\n    blankVideo: string;\n    svg: string;\n};\n\ntype OpencastConfig = {\n    presentationNode: string;\n    uploadNode: string;\n    studioUrl: string;\n    editorUrl: string;\n};\n\ntype VersionInfo = {\n    identifier: string;\n    buildDateUtc: string;\n    gitCommitHash: string;\n    gitWasDirty: boolean;\n    target: string;\n};\n\ntype UploadConfig = {\n    requireSeries: boolean;\n    workflow: string | null;\n};\n\ntype SyncConfig = {\n    pollPeriod: number;\n};\n\ntype MetadataLabel = \"builtin:license\" | \"builtin:source\" | TranslatedString;\n\nexport type TranslatedString = { en: string } & Record<\"de\", string | undefined>;\n\nconst CONFIG: Config = parseConfig();\nexport default CONFIG;\n","const consoleLogger = {\n  type: 'logger',\n  log(args) {\n    this.output('log', args);\n  },\n  warn(args) {\n    this.output('warn', args);\n  },\n  error(args) {\n    this.output('error', args);\n  },\n  output(type, args) {\n    if (console && console[type]) console[type].apply(console, args);\n  }\n};\nclass Logger {\n  constructor(concreteLogger) {\n    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    this.init(concreteLogger, options);\n  }\n  init(concreteLogger) {\n    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    this.prefix = options.prefix || 'i18next:';\n    this.logger = concreteLogger || consoleLogger;\n    this.options = options;\n    this.debug = options.debug;\n  }\n  log() {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    return this.forward(args, 'log', '', true);\n  }\n  warn() {\n    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      args[_key2] = arguments[_key2];\n    }\n    return this.forward(args, 'warn', '', true);\n  }\n  error() {\n    for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n      args[_key3] = arguments[_key3];\n    }\n    return this.forward(args, 'error', '');\n  }\n  deprecate() {\n    for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n      args[_key4] = arguments[_key4];\n    }\n    return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n  }\n  forward(args, lvl, prefix, debugOnly) {\n    if (debugOnly && !this.debug) return null;\n    if (typeof args[0] === 'string') args[0] = `${prefix}${this.prefix} ${args[0]}`;\n    return this.logger[lvl](args);\n  }\n  create(moduleName) {\n    return new Logger(this.logger, {\n      ...{\n        prefix: `${this.prefix}:${moduleName}:`\n      },\n      ...this.options\n    });\n  }\n  clone(options) {\n    options = options || this.options;\n    options.prefix = options.prefix || this.prefix;\n    return new Logger(this.logger, options);\n  }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n  constructor() {\n    this.observers = {};\n  }\n  on(events, listener) {\n    events.split(' ').forEach(event => {\n      if (!this.observers[event]) this.observers[event] = new Map();\n      const numListeners = this.observers[event].get(listener) || 0;\n      this.observers[event].set(listener, numListeners + 1);\n    });\n    return this;\n  }\n  off(event, listener) {\n    if (!this.observers[event]) return;\n    if (!listener) {\n      delete this.observers[event];\n      return;\n    }\n    this.observers[event].delete(listener);\n  }\n  emit(event) {\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n    if (this.observers[event]) {\n      const cloned = Array.from(this.observers[event].entries());\n      cloned.forEach(_ref => {\n        let [observer, numTimesAdded] = _ref;\n        for (let i = 0; i < numTimesAdded; i++) {\n          observer(...args);\n        }\n      });\n    }\n    if (this.observers['*']) {\n      const cloned = Array.from(this.observers['*'].entries());\n      cloned.forEach(_ref2 => {\n        let [observer, numTimesAdded] = _ref2;\n        for (let i = 0; i < numTimesAdded; i++) {\n          observer.apply(observer, [event, ...args]);\n        }\n      });\n    }\n  }\n}\n\nconst defer = () => {\n  let res;\n  let rej;\n  const promise = new Promise((resolve, reject) => {\n    res = resolve;\n    rej = reject;\n  });\n  promise.resolve = res;\n  promise.reject = rej;\n  return promise;\n};\nconst makeString = object => {\n  if (object == null) return '';\n  return '' + object;\n};\nconst copy = (a, s, t) => {\n  a.forEach(m => {\n    if (s[m]) t[m] = s[m];\n  });\n};\nconst lastOfPathSeparatorRegExp = /###/g;\nconst cleanKey = key => key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\nconst canNotTraverseDeeper = object => !object || typeof object === 'string';\nconst getLastOfPath = (object, path, Empty) => {\n  const stack = typeof path !== 'string' ? path : path.split('.');\n  let stackIndex = 0;\n  while (stackIndex < stack.length - 1) {\n    if (canNotTraverseDeeper(object)) return {};\n    const key = cleanKey(stack[stackIndex]);\n    if (!object[key] && Empty) object[key] = new Empty();\n    if (Object.prototype.hasOwnProperty.call(object, key)) {\n      object = object[key];\n    } else {\n      object = {};\n    }\n    ++stackIndex;\n  }\n  if (canNotTraverseDeeper(object)) return {};\n  return {\n    obj: object,\n    k: cleanKey(stack[stackIndex])\n  };\n};\nconst setPath = (object, path, newValue) => {\n  const {\n    obj,\n    k\n  } = getLastOfPath(object, path, Object);\n  if (obj !== undefined || path.length === 1) {\n    obj[k] = newValue;\n    return;\n  }\n  let e = path[path.length - 1];\n  let p = path.slice(0, path.length - 1);\n  let last = getLastOfPath(object, p, Object);\n  while (last.obj === undefined && p.length) {\n    e = `${p[p.length - 1]}.${e}`;\n    p = p.slice(0, p.length - 1);\n    last = getLastOfPath(object, p, Object);\n    if (last && last.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n      last.obj = undefined;\n    }\n  }\n  last.obj[`${last.k}.${e}`] = newValue;\n};\nconst pushPath = (object, path, newValue, concat) => {\n  const {\n    obj,\n    k\n  } = getLastOfPath(object, path, Object);\n  obj[k] = obj[k] || [];\n  obj[k].push(newValue);\n};\nconst getPath = (object, path) => {\n  const {\n    obj,\n    k\n  } = getLastOfPath(object, path);\n  if (!obj) return undefined;\n  return obj[k];\n};\nconst getPathWithDefaults = (data, defaultData, key) => {\n  const value = getPath(data, key);\n  if (value !== undefined) {\n    return value;\n  }\n  return getPath(defaultData, key);\n};\nconst deepExtend = (target, source, overwrite) => {\n  for (const prop in source) {\n    if (prop !== '__proto__' && prop !== 'constructor') {\n      if (prop in target) {\n        if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n          if (overwrite) target[prop] = source[prop];\n        } else {\n          deepExtend(target[prop], source[prop], overwrite);\n        }\n      } else {\n        target[prop] = source[prop];\n      }\n    }\n  }\n  return target;\n};\nconst regexEscape = str => str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\nvar _entityMap = {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;',\n  \"'\": '&#39;',\n  '/': '&#x2F;'\n};\nconst escape = data => {\n  if (typeof data === 'string') {\n    return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n  }\n  return data;\n};\nclass RegExpCache {\n  constructor(capacity) {\n    this.capacity = capacity;\n    this.regExpMap = new Map();\n    this.regExpQueue = [];\n  }\n  getRegExp(pattern) {\n    const regExpFromCache = this.regExpMap.get(pattern);\n    if (regExpFromCache !== undefined) {\n      return regExpFromCache;\n    }\n    const regExpNew = new RegExp(pattern);\n    if (this.regExpQueue.length === this.capacity) {\n      this.regExpMap.delete(this.regExpQueue.shift());\n    }\n    this.regExpMap.set(pattern, regExpNew);\n    this.regExpQueue.push(pattern);\n    return regExpNew;\n  }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nconst looksLikeObjectPath = (key, nsSeparator, keySeparator) => {\n  nsSeparator = nsSeparator || '';\n  keySeparator = keySeparator || '';\n  const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n  if (possibleChars.length === 0) return true;\n  const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n  let matched = !r.test(key);\n  if (!matched) {\n    const ki = key.indexOf(keySeparator);\n    if (ki > 0 && !r.test(key.substring(0, ki))) {\n      matched = true;\n    }\n  }\n  return matched;\n};\nconst deepFind = function (obj, path) {\n  let keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n  if (!obj) return undefined;\n  if (obj[path]) return obj[path];\n  const tokens = path.split(keySeparator);\n  let current = obj;\n  for (let i = 0; i < tokens.length;) {\n    if (!current || typeof current !== 'object') {\n      return undefined;\n    }\n    let next;\n    let nextPath = '';\n    for (let j = i; j < tokens.length; ++j) {\n      if (j !== i) {\n        nextPath += keySeparator;\n      }\n      nextPath += tokens[j];\n      next = current[nextPath];\n      if (next !== undefined) {\n        if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n          continue;\n        }\n        i += j - i + 1;\n        break;\n      }\n    }\n    current = next;\n  }\n  return current;\n};\nconst getCleanedCode = code => {\n  if (code && code.indexOf('_') > 0) return code.replace('_', '-');\n  return code;\n};\n\nclass ResourceStore extends EventEmitter {\n  constructor(data) {\n    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n      ns: ['translation'],\n      defaultNS: 'translation'\n    };\n    super();\n    this.data = data || {};\n    this.options = options;\n    if (this.options.keySeparator === undefined) {\n      this.options.keySeparator = '.';\n    }\n    if (this.options.ignoreJSONStructure === undefined) {\n      this.options.ignoreJSONStructure = true;\n    }\n  }\n  addNamespaces(ns) {\n    if (this.options.ns.indexOf(ns) < 0) {\n      this.options.ns.push(ns);\n    }\n  }\n  removeNamespaces(ns) {\n    const index = this.options.ns.indexOf(ns);\n    if (index > -1) {\n      this.options.ns.splice(index, 1);\n    }\n  }\n  getResource(lng, ns, key) {\n    let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n    const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n    const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n    let path;\n    if (lng.indexOf('.') > -1) {\n      path = lng.split('.');\n    } else {\n      path = [lng, ns];\n      if (key) {\n        if (Array.isArray(key)) {\n          path.push(...key);\n        } else if (typeof key === 'string' && keySeparator) {\n          path.push(...key.split(keySeparator));\n        } else {\n          path.push(key);\n        }\n      }\n    }\n    const result = getPath(this.data, path);\n    if (!result && !ns && !key && lng.indexOf('.') > -1) {\n      lng = path[0];\n      ns = path[1];\n      key = path.slice(2).join('.');\n    }\n    if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n    return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n  }\n  addResource(lng, ns, key, value) {\n    let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n      silent: false\n    };\n    const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n    let path = [lng, ns];\n    if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n    if (lng.indexOf('.') > -1) {\n      path = lng.split('.');\n      value = ns;\n      ns = path[1];\n    }\n    this.addNamespaces(ns);\n    setPath(this.data, path, value);\n    if (!options.silent) this.emit('added', lng, ns, key, value);\n  }\n  addResources(lng, ns, resources) {\n    let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n      silent: false\n    };\n    for (const m in resources) {\n      if (typeof resources[m] === 'string' || Array.isArray(resources[m])) this.addResource(lng, ns, m, resources[m], {\n        silent: true\n      });\n    }\n    if (!options.silent) this.emit('added', lng, ns, resources);\n  }\n  addResourceBundle(lng, ns, resources, deep, overwrite) {\n    let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n      silent: false,\n      skipCopy: false\n    };\n    let path = [lng, ns];\n    if (lng.indexOf('.') > -1) {\n      path = lng.split('.');\n      deep = resources;\n      resources = ns;\n      ns = path[1];\n    }\n    this.addNamespaces(ns);\n    let pack = getPath(this.data, path) || {};\n    if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n    if (deep) {\n      deepExtend(pack, resources, overwrite);\n    } else {\n      pack = {\n        ...pack,\n        ...resources\n      };\n    }\n    setPath(this.data, path, pack);\n    if (!options.silent) this.emit('added', lng, ns, resources);\n  }\n  removeResourceBundle(lng, ns) {\n    if (this.hasResourceBundle(lng, ns)) {\n      delete this.data[lng][ns];\n    }\n    this.removeNamespaces(ns);\n    this.emit('removed', lng, ns);\n  }\n  hasResourceBundle(lng, ns) {\n    return this.getResource(lng, ns) !== undefined;\n  }\n  getResourceBundle(lng, ns) {\n    if (!ns) ns = this.options.defaultNS;\n    if (this.options.compatibilityAPI === 'v1') return {\n      ...{},\n      ...this.getResource(lng, ns)\n    };\n    return this.getResource(lng, ns);\n  }\n  getDataByLanguage(lng) {\n    return this.data[lng];\n  }\n  hasLanguageSomeTranslations(lng) {\n    const data = this.getDataByLanguage(lng);\n    const n = data && Object.keys(data) || [];\n    return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n  }\n  toJSON() {\n    return this.data;\n  }\n}\n\nvar postProcessor = {\n  processors: {},\n  addPostProcessor(module) {\n    this.processors[module.name] = module;\n  },\n  handle(processors, value, key, options, translator) {\n    processors.forEach(processor => {\n      if (this.processors[processor]) value = this.processors[processor].process(value, key, options, translator);\n    });\n    return value;\n  }\n};\n\nconst checkedLoadedFor = {};\nclass Translator extends EventEmitter {\n  constructor(services) {\n    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    super();\n    copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n    this.options = options;\n    if (this.options.keySeparator === undefined) {\n      this.options.keySeparator = '.';\n    }\n    this.logger = baseLogger.create('translator');\n  }\n  changeLanguage(lng) {\n    if (lng) this.language = lng;\n  }\n  exists(key) {\n    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n      interpolation: {}\n    };\n    if (key === undefined || key === null) {\n      return false;\n    }\n    const resolved = this.resolve(key, options);\n    return resolved && resolved.res !== undefined;\n  }\n  extractFromKey(key, options) {\n    let nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n    if (nsSeparator === undefined) nsSeparator = ':';\n    const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n    let namespaces = options.ns || this.options.defaultNS || [];\n    const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n    const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n    if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n      const m = key.match(this.interpolator.nestingRegexp);\n      if (m && m.length > 0) {\n        return {\n          key,\n          namespaces\n        };\n      }\n      const parts = key.split(nsSeparator);\n      if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n      key = parts.join(keySeparator);\n    }\n    if (typeof namespaces === 'string') namespaces = [namespaces];\n    return {\n      key,\n      namespaces\n    };\n  }\n  translate(keys, options, lastKey) {\n    if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n      options = this.options.overloadTranslationOptionHandler(arguments);\n    }\n    if (typeof options === 'object') options = {\n      ...options\n    };\n    if (!options) options = {};\n    if (keys === undefined || keys === null) return '';\n    if (!Array.isArray(keys)) keys = [String(keys)];\n    const returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n    const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n    const {\n      key,\n      namespaces\n    } = this.extractFromKey(keys[keys.length - 1], options);\n    const namespace = namespaces[namespaces.length - 1];\n    const lng = options.lng || this.language;\n    const appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n    if (lng && lng.toLowerCase() === 'cimode') {\n      if (appendNamespaceToCIMode) {\n        const nsSeparator = options.nsSeparator || this.options.nsSeparator;\n        if (returnDetails) {\n          return {\n            res: `${namespace}${nsSeparator}${key}`,\n            usedKey: key,\n            exactUsedKey: key,\n            usedLng: lng,\n            usedNS: namespace,\n            usedParams: this.getUsedParamsDetails(options)\n          };\n        }\n        return `${namespace}${nsSeparator}${key}`;\n      }\n      if (returnDetails) {\n        return {\n          res: key,\n          usedKey: key,\n          exactUsedKey: key,\n          usedLng: lng,\n          usedNS: namespace,\n          usedParams: this.getUsedParamsDetails(options)\n        };\n      }\n      return key;\n    }\n    const resolved = this.resolve(keys, options);\n    let res = resolved && resolved.res;\n    const resUsedKey = resolved && resolved.usedKey || key;\n    const resExactUsedKey = resolved && resolved.exactUsedKey || key;\n    const resType = Object.prototype.toString.apply(res);\n    const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n    const joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n    const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n    const handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n    if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && Array.isArray(res))) {\n      if (!options.returnObjects && !this.options.returnObjects) {\n        if (!this.options.returnedObjectHandler) {\n          this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n        }\n        const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, {\n          ...options,\n          ns: namespaces\n        }) : `key '${key} (${this.language})' returned an object instead of string.`;\n        if (returnDetails) {\n          resolved.res = r;\n          resolved.usedParams = this.getUsedParamsDetails(options);\n          return resolved;\n        }\n        return r;\n      }\n      if (keySeparator) {\n        const resTypeIsArray = Array.isArray(res);\n        const copy = resTypeIsArray ? [] : {};\n        const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n        for (const m in res) {\n          if (Object.prototype.hasOwnProperty.call(res, m)) {\n            const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n            copy[m] = this.translate(deepKey, {\n              ...options,\n              ...{\n                joinArrays: false,\n                ns: namespaces\n              }\n            });\n            if (copy[m] === deepKey) copy[m] = res[m];\n          }\n        }\n        res = copy;\n      }\n    } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && Array.isArray(res)) {\n      res = res.join(joinArrays);\n      if (res) res = this.extendTranslation(res, keys, options, lastKey);\n    } else {\n      let usedDefault = false;\n      let usedKey = false;\n      const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n      const hasDefaultValue = Translator.hasDefaultValue(options);\n      const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n      const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n        ordinal: false\n      }) : '';\n      const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n      const defaultValue = needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] || options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;\n      if (!this.isValidLookup(res) && hasDefaultValue) {\n        usedDefault = true;\n        res = defaultValue;\n      }\n      if (!this.isValidLookup(res)) {\n        usedKey = true;\n        res = key;\n      }\n      const missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n      const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n      const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n      if (usedKey || usedDefault || updateMissing) {\n        this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n        if (keySeparator) {\n          const fk = this.resolve(key, {\n            ...options,\n            keySeparator: false\n          });\n          if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n        }\n        let lngs = [];\n        const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n        if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n          for (let i = 0; i < fallbackLngs.length; i++) {\n            lngs.push(fallbackLngs[i]);\n          }\n        } else if (this.options.saveMissingTo === 'all') {\n          lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n        } else {\n          lngs.push(options.lng || this.language);\n        }\n        const send = (l, k, specificDefaultValue) => {\n          const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n          if (this.options.missingKeyHandler) {\n            this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n          } else if (this.backendConnector && this.backendConnector.saveMissing) {\n            this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n          }\n          this.emit('missingKey', l, namespace, k, res);\n        };\n        if (this.options.saveMissing) {\n          if (this.options.saveMissingPlurals && needsPluralHandling) {\n            lngs.forEach(language => {\n              const suffixes = this.pluralResolver.getSuffixes(language, options);\n              if (needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] && suffixes.indexOf(`${this.options.pluralSeparator}zero`) < 0) {\n                suffixes.push(`${this.options.pluralSeparator}zero`);\n              }\n              suffixes.forEach(suffix => {\n                send([language], key + suffix, options[`defaultValue${suffix}`] || defaultValue);\n              });\n            });\n          } else {\n            send(lngs, key, defaultValue);\n          }\n        }\n      }\n      res = this.extendTranslation(res, keys, options, resolved, lastKey);\n      if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = `${namespace}:${key}`;\n      if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n        if (this.options.compatibilityAPI !== 'v1') {\n          res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}:${key}` : key, usedDefault ? res : undefined);\n        } else {\n          res = this.options.parseMissingKeyHandler(res);\n        }\n      }\n    }\n    if (returnDetails) {\n      resolved.res = res;\n      resolved.usedParams = this.getUsedParamsDetails(options);\n      return resolved;\n    }\n    return res;\n  }\n  extendTranslation(res, key, options, resolved, lastKey) {\n    var _this = this;\n    if (this.i18nFormat && this.i18nFormat.parse) {\n      res = this.i18nFormat.parse(res, {\n        ...this.options.interpolation.defaultVariables,\n        ...options\n      }, options.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n        resolved\n      });\n    } else if (!options.skipInterpolation) {\n      if (options.interpolation) this.interpolator.init({\n        ...options,\n        ...{\n          interpolation: {\n            ...this.options.interpolation,\n            ...options.interpolation\n          }\n        }\n      });\n      const skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n      let nestBef;\n      if (skipOnVariables) {\n        const nb = res.match(this.interpolator.nestingRegexp);\n        nestBef = nb && nb.length;\n      }\n      let data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n      if (this.options.interpolation.defaultVariables) data = {\n        ...this.options.interpolation.defaultVariables,\n        ...data\n      };\n      res = this.interpolator.interpolate(res, data, options.lng || this.language || resolved.usedLng, options);\n      if (skipOnVariables) {\n        const na = res.match(this.interpolator.nestingRegexp);\n        const nestAft = na && na.length;\n        if (nestBef < nestAft) options.nest = false;\n      }\n      if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = this.language || resolved.usedLng;\n      if (options.nest !== false) res = this.interpolator.nest(res, function () {\n        for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n          args[_key] = arguments[_key];\n        }\n        if (lastKey && lastKey[0] === args[0] && !options.context) {\n          _this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n          return null;\n        }\n        return _this.translate(...args, key);\n      }, options);\n      if (options.interpolation) this.interpolator.reset();\n    }\n    const postProcess = options.postProcess || this.options.postProcess;\n    const postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n    if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n      res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n        i18nResolved: {\n          ...resolved,\n          usedParams: this.getUsedParamsDetails(options)\n        },\n        ...options\n      } : options, this);\n    }\n    return res;\n  }\n  resolve(keys) {\n    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    let found;\n    let usedKey;\n    let exactUsedKey;\n    let usedLng;\n    let usedNS;\n    if (typeof keys === 'string') keys = [keys];\n    keys.forEach(k => {\n      if (this.isValidLookup(found)) return;\n      const extracted = this.extractFromKey(k, options);\n      const key = extracted.key;\n      usedKey = key;\n      let namespaces = extracted.namespaces;\n      if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n      const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n      const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n      const needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n      const codes = options.lngs ? options.lngs : this.languageUtils.toResolveHierarchy(options.lng || this.language, options.fallbackLng);\n      namespaces.forEach(ns => {\n        if (this.isValidLookup(found)) return;\n        usedNS = ns;\n        if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils && this.utils.hasLoadedNamespace && !this.utils.hasLoadedNamespace(usedNS)) {\n          checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n          this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n        }\n        codes.forEach(code => {\n          if (this.isValidLookup(found)) return;\n          usedLng = code;\n          const finalKeys = [key];\n          if (this.i18nFormat && this.i18nFormat.addLookupKeys) {\n            this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n          } else {\n            let pluralSuffix;\n            if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, options.count, options);\n            const zeroSuffix = `${this.options.pluralSeparator}zero`;\n            const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n            if (needsPluralHandling) {\n              finalKeys.push(key + pluralSuffix);\n              if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n                finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n              }\n              if (needsZeroSuffixLookup) {\n                finalKeys.push(key + zeroSuffix);\n              }\n            }\n            if (needsContextHandling) {\n              const contextKey = `${key}${this.options.contextSeparator}${options.context}`;\n              finalKeys.push(contextKey);\n              if (needsPluralHandling) {\n                finalKeys.push(contextKey + pluralSuffix);\n                if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n                  finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n                }\n                if (needsZeroSuffixLookup) {\n                  finalKeys.push(contextKey + zeroSuffix);\n                }\n              }\n            }\n          }\n          let possibleKey;\n          while (possibleKey = finalKeys.pop()) {\n            if (!this.isValidLookup(found)) {\n              exactUsedKey = possibleKey;\n              found = this.getResource(code, ns, possibleKey, options);\n            }\n          }\n        });\n      });\n    });\n    return {\n      res: found,\n      usedKey,\n      exactUsedKey,\n      usedLng,\n      usedNS\n    };\n  }\n  isValidLookup(res) {\n    return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n  }\n  getResource(code, ns, key) {\n    let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n    if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n    return this.resourceStore.getResource(code, ns, key, options);\n  }\n  getUsedParamsDetails() {\n    let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n    const useOptionsReplaceForData = options.replace && typeof options.replace !== 'string';\n    let data = useOptionsReplaceForData ? options.replace : options;\n    if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n      data.count = options.count;\n    }\n    if (this.options.interpolation.defaultVariables) {\n      data = {\n        ...this.options.interpolation.defaultVariables,\n        ...data\n      };\n    }\n    if (!useOptionsReplaceForData) {\n      data = {\n        ...data\n      };\n      for (const key of optionsKeys) {\n        delete data[key];\n      }\n    }\n    return data;\n  }\n  static hasDefaultValue(options) {\n    const prefix = 'defaultValue';\n    for (const option in options) {\n      if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n        return true;\n      }\n    }\n    return false;\n  }\n}\n\nconst capitalize = string => string.charAt(0).toUpperCase() + string.slice(1);\nclass LanguageUtil {\n  constructor(options) {\n    this.options = options;\n    this.supportedLngs = this.options.supportedLngs || false;\n    this.logger = baseLogger.create('languageUtils');\n  }\n  getScriptPartFromCode(code) {\n    code = getCleanedCode(code);\n    if (!code || code.indexOf('-') < 0) return null;\n    const p = code.split('-');\n    if (p.length === 2) return null;\n    p.pop();\n    if (p[p.length - 1].toLowerCase() === 'x') return null;\n    return this.formatLanguageCode(p.join('-'));\n  }\n  getLanguagePartFromCode(code) {\n    code = getCleanedCode(code);\n    if (!code || code.indexOf('-') < 0) return code;\n    const p = code.split('-');\n    return this.formatLanguageCode(p[0]);\n  }\n  formatLanguageCode(code) {\n    if (typeof code === 'string' && code.indexOf('-') > -1) {\n      const specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n      let p = code.split('-');\n      if (this.options.lowerCaseLng) {\n        p = p.map(part => part.toLowerCase());\n      } else if (p.length === 2) {\n        p[0] = p[0].toLowerCase();\n        p[1] = p[1].toUpperCase();\n        if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n      } else if (p.length === 3) {\n        p[0] = p[0].toLowerCase();\n        if (p[1].length === 2) p[1] = p[1].toUpperCase();\n        if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n        if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n        if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n      }\n      return p.join('-');\n    }\n    return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n  }\n  isSupportedCode(code) {\n    if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n      code = this.getLanguagePartFromCode(code);\n    }\n    return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n  }\n  getBestMatchFromCodes(codes) {\n    if (!codes) return null;\n    let found;\n    codes.forEach(code => {\n      if (found) return;\n      const cleanedLng = this.formatLanguageCode(code);\n      if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n    });\n    if (!found && this.options.supportedLngs) {\n      codes.forEach(code => {\n        if (found) return;\n        const lngOnly = this.getLanguagePartFromCode(code);\n        if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n        found = this.options.supportedLngs.find(supportedLng => {\n          if (supportedLng === lngOnly) return supportedLng;\n          if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n          if (supportedLng.indexOf('-') > 0 && lngOnly.indexOf('-') < 0 && supportedLng.substring(0, supportedLng.indexOf('-')) === lngOnly) return supportedLng;\n          if (supportedLng.indexOf(lngOnly) === 0 && lngOnly.length > 1) return supportedLng;\n        });\n      });\n    }\n    if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n    return found;\n  }\n  getFallbackCodes(fallbacks, code) {\n    if (!fallbacks) return [];\n    if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n    if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n    if (Array.isArray(fallbacks)) return fallbacks;\n    if (!code) return fallbacks.default || [];\n    let found = fallbacks[code];\n    if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n    if (!found) found = fallbacks[this.formatLanguageCode(code)];\n    if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n    if (!found) found = fallbacks.default;\n    return found || [];\n  }\n  toResolveHierarchy(code, fallbackCode) {\n    const fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n    const codes = [];\n    const addCode = c => {\n      if (!c) return;\n      if (this.isSupportedCode(c)) {\n        codes.push(c);\n      } else {\n        this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n      }\n    };\n    if (typeof code === 'string' && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n      if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n      if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n      if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n    } else if (typeof code === 'string') {\n      addCode(this.formatLanguageCode(code));\n    }\n    fallbackCodes.forEach(fc => {\n      if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n    });\n    return codes;\n  }\n}\n\nlet sets = [{\n  lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n  nr: [1, 2],\n  fc: 1\n}, {\n  lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n  nr: [1, 2],\n  fc: 2\n}, {\n  lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n  nr: [1],\n  fc: 3\n}, {\n  lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n  nr: [1, 2, 5],\n  fc: 4\n}, {\n  lngs: ['ar'],\n  nr: [0, 1, 2, 3, 11, 100],\n  fc: 5\n}, {\n  lngs: ['cs', 'sk'],\n  nr: [1, 2, 5],\n  fc: 6\n}, {\n  lngs: ['csb', 'pl'],\n  nr: [1, 2, 5],\n  fc: 7\n}, {\n  lngs: ['cy'],\n  nr: [1, 2, 3, 8],\n  fc: 8\n}, {\n  lngs: ['fr'],\n  nr: [1, 2],\n  fc: 9\n}, {\n  lngs: ['ga'],\n  nr: [1, 2, 3, 7, 11],\n  fc: 10\n}, {\n  lngs: ['gd'],\n  nr: [1, 2, 3, 20],\n  fc: 11\n}, {\n  lngs: ['is'],\n  nr: [1, 2],\n  fc: 12\n}, {\n  lngs: ['jv'],\n  nr: [0, 1],\n  fc: 13\n}, {\n  lngs: ['kw'],\n  nr: [1, 2, 3, 4],\n  fc: 14\n}, {\n  lngs: ['lt'],\n  nr: [1, 2, 10],\n  fc: 15\n}, {\n  lngs: ['lv'],\n  nr: [1, 2, 0],\n  fc: 16\n}, {\n  lngs: ['mk'],\n  nr: [1, 2],\n  fc: 17\n}, {\n  lngs: ['mnk'],\n  nr: [0, 1, 2],\n  fc: 18\n}, {\n  lngs: ['mt'],\n  nr: [1, 2, 11, 20],\n  fc: 19\n}, {\n  lngs: ['or'],\n  nr: [2, 1],\n  fc: 2\n}, {\n  lngs: ['ro'],\n  nr: [1, 2, 20],\n  fc: 20\n}, {\n  lngs: ['sl'],\n  nr: [5, 1, 2, 3],\n  fc: 21\n}, {\n  lngs: ['he', 'iw'],\n  nr: [1, 2, 20, 21],\n  fc: 22\n}];\nlet _rulesPluralsTypes = {\n  1: n => Number(n > 1),\n  2: n => Number(n != 1),\n  3: n => 0,\n  4: n => Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2),\n  5: n => Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5),\n  6: n => Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2),\n  7: n => Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2),\n  8: n => Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3),\n  9: n => Number(n >= 2),\n  10: n => Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4),\n  11: n => Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3),\n  12: n => Number(n % 10 != 1 || n % 100 == 11),\n  13: n => Number(n !== 0),\n  14: n => Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3),\n  15: n => Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2),\n  16: n => Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2),\n  17: n => Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1),\n  18: n => Number(n == 0 ? 0 : n == 1 ? 1 : 2),\n  19: n => Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3),\n  20: n => Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2),\n  21: n => Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0),\n  22: n => Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3)\n};\nconst nonIntlVersions = ['v1', 'v2', 'v3'];\nconst intlVersions = ['v4'];\nconst suffixesOrder = {\n  zero: 0,\n  one: 1,\n  two: 2,\n  few: 3,\n  many: 4,\n  other: 5\n};\nconst createRules = () => {\n  const rules = {};\n  sets.forEach(set => {\n    set.lngs.forEach(l => {\n      rules[l] = {\n        numbers: set.nr,\n        plurals: _rulesPluralsTypes[set.fc]\n      };\n    });\n  });\n  return rules;\n};\nclass PluralResolver {\n  constructor(languageUtils) {\n    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    this.languageUtils = languageUtils;\n    this.options = options;\n    this.logger = baseLogger.create('pluralResolver');\n    if ((!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n      this.options.compatibilityJSON = 'v3';\n      this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n    }\n    this.rules = createRules();\n    this.pluralRulesCache = {};\n  }\n  addRule(lng, obj) {\n    this.rules[lng] = obj;\n  }\n  clearCache() {\n    this.pluralRulesCache = {};\n  }\n  getRule(code) {\n    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    if (this.shouldUseIntlApi()) {\n      try {\n        const cleanedCode = getCleanedCode(code === 'dev' ? 'en' : code);\n        const type = options.ordinal ? 'ordinal' : 'cardinal';\n        const cacheKey = JSON.stringify({\n          cleanedCode,\n          type\n        });\n        if (cacheKey in this.pluralRulesCache) {\n          return this.pluralRulesCache[cacheKey];\n        }\n        const rule = new Intl.PluralRules(cleanedCode, {\n          type\n        });\n        this.pluralRulesCache[cacheKey] = rule;\n        return rule;\n      } catch (err) {\n        return;\n      }\n    }\n    return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n  }\n  needsPlural(code) {\n    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    const rule = this.getRule(code, options);\n    if (this.shouldUseIntlApi()) {\n      return rule && rule.resolvedOptions().pluralCategories.length > 1;\n    }\n    return rule && rule.numbers.length > 1;\n  }\n  getPluralFormsOfKey(code, key) {\n    let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n  }\n  getSuffixes(code) {\n    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    const rule = this.getRule(code, options);\n    if (!rule) {\n      return [];\n    }\n    if (this.shouldUseIntlApi()) {\n      return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n    }\n    return rule.numbers.map(number => this.getSuffix(code, number, options));\n  }\n  getSuffix(code, count) {\n    let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    const rule = this.getRule(code, options);\n    if (rule) {\n      if (this.shouldUseIntlApi()) {\n        return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n      }\n      return this.getSuffixRetroCompatible(rule, count);\n    }\n    this.logger.warn(`no plural rule found for: ${code}`);\n    return '';\n  }\n  getSuffixRetroCompatible(rule, count) {\n    const idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n    let suffix = rule.numbers[idx];\n    if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n      if (suffix === 2) {\n        suffix = 'plural';\n      } else if (suffix === 1) {\n        suffix = '';\n      }\n    }\n    const returnSuffix = () => this.options.prepend && suffix.toString() ? this.options.prepend + suffix.toString() : suffix.toString();\n    if (this.options.compatibilityJSON === 'v1') {\n      if (suffix === 1) return '';\n      if (typeof suffix === 'number') return `_plural_${suffix.toString()}`;\n      return returnSuffix();\n    } else if (this.options.compatibilityJSON === 'v2') {\n      return returnSuffix();\n    } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n      return returnSuffix();\n    }\n    return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n  }\n  shouldUseIntlApi() {\n    return !nonIntlVersions.includes(this.options.compatibilityJSON);\n  }\n}\n\nconst deepFindWithDefaults = function (data, defaultData, key) {\n  let keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n  let ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n  let path = getPathWithDefaults(data, defaultData, key);\n  if (!path && ignoreJSONStructure && typeof key === 'string') {\n    path = deepFind(data, key, keySeparator);\n    if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n  }\n  return path;\n};\nconst regexSafe = val => val.replace(/\\$/g, '$$$$');\nclass Interpolator {\n  constructor() {\n    let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    this.logger = baseLogger.create('interpolator');\n    this.options = options;\n    this.format = options.interpolation && options.interpolation.format || (value => value);\n    this.init(options);\n  }\n  init() {\n    let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    if (!options.interpolation) options.interpolation = {\n      escapeValue: true\n    };\n    const {\n      escape: escape$1,\n      escapeValue,\n      useRawValueToEscape,\n      prefix,\n      prefixEscaped,\n      suffix,\n      suffixEscaped,\n      formatSeparator,\n      unescapeSuffix,\n      unescapePrefix,\n      nestingPrefix,\n      nestingPrefixEscaped,\n      nestingSuffix,\n      nestingSuffixEscaped,\n      nestingOptionsSeparator,\n      maxReplaces,\n      alwaysFormat\n    } = options.interpolation;\n    this.escape = escape$1 !== undefined ? escape$1 : escape;\n    this.escapeValue = escapeValue !== undefined ? escapeValue : true;\n    this.useRawValueToEscape = useRawValueToEscape !== undefined ? useRawValueToEscape : false;\n    this.prefix = prefix ? regexEscape(prefix) : prefixEscaped || '{{';\n    this.suffix = suffix ? regexEscape(suffix) : suffixEscaped || '}}';\n    this.formatSeparator = formatSeparator || ',';\n    this.unescapePrefix = unescapeSuffix ? '' : unescapePrefix || '-';\n    this.unescapeSuffix = this.unescapePrefix ? '' : unescapeSuffix || '';\n    this.nestingPrefix = nestingPrefix ? regexEscape(nestingPrefix) : nestingPrefixEscaped || regexEscape('$t(');\n    this.nestingSuffix = nestingSuffix ? regexEscape(nestingSuffix) : nestingSuffixEscaped || regexEscape(')');\n    this.nestingOptionsSeparator = nestingOptionsSeparator || ',';\n    this.maxReplaces = maxReplaces || 1000;\n    this.alwaysFormat = alwaysFormat !== undefined ? alwaysFormat : false;\n    this.resetRegExp();\n  }\n  reset() {\n    if (this.options) this.init(this.options);\n  }\n  resetRegExp() {\n    const getOrResetRegExp = (existingRegExp, pattern) => {\n      if (existingRegExp && existingRegExp.source === pattern) {\n        existingRegExp.lastIndex = 0;\n        return existingRegExp;\n      }\n      return new RegExp(pattern, 'g');\n    };\n    this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n    this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n    this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}(.+?)${this.nestingSuffix}`);\n  }\n  interpolate(str, data, lng, options) {\n    let match;\n    let value;\n    let replaces;\n    const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n    const handleFormat = key => {\n      if (key.indexOf(this.formatSeparator) < 0) {\n        const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n        return this.alwaysFormat ? this.format(path, undefined, lng, {\n          ...options,\n          ...data,\n          interpolationkey: key\n        }) : path;\n      }\n      const p = key.split(this.formatSeparator);\n      const k = p.shift().trim();\n      const f = p.join(this.formatSeparator).trim();\n      return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n        ...options,\n        ...data,\n        interpolationkey: k\n      });\n    };\n    this.resetRegExp();\n    const missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n    const skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n    const todos = [{\n      regex: this.regexpUnescape,\n      safeValue: val => regexSafe(val)\n    }, {\n      regex: this.regexp,\n      safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n    }];\n    todos.forEach(todo => {\n      replaces = 0;\n      while (match = todo.regex.exec(str)) {\n        const matchedVar = match[1].trim();\n        value = handleFormat(matchedVar);\n        if (value === undefined) {\n          if (typeof missingInterpolationHandler === 'function') {\n            const temp = missingInterpolationHandler(str, match, options);\n            value = typeof temp === 'string' ? temp : '';\n          } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n            value = '';\n          } else if (skipOnVariables) {\n            value = match[0];\n            continue;\n          } else {\n            this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n            value = '';\n          }\n        } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n          value = makeString(value);\n        }\n        const safeValue = todo.safeValue(value);\n        str = str.replace(match[0], safeValue);\n        if (skipOnVariables) {\n          todo.regex.lastIndex += value.length;\n          todo.regex.lastIndex -= match[0].length;\n        } else {\n          todo.regex.lastIndex = 0;\n        }\n        replaces++;\n        if (replaces >= this.maxReplaces) {\n          break;\n        }\n      }\n    });\n    return str;\n  }\n  nest(str, fc) {\n    let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    let match;\n    let value;\n    let clonedOptions;\n    const handleHasOptions = (key, inheritedOptions) => {\n      const sep = this.nestingOptionsSeparator;\n      if (key.indexOf(sep) < 0) return key;\n      const c = key.split(new RegExp(`${sep}[ ]*{`));\n      let optionsString = `{${c[1]}`;\n      key = c[0];\n      optionsString = this.interpolate(optionsString, clonedOptions);\n      const matchedSingleQuotes = optionsString.match(/'/g);\n      const matchedDoubleQuotes = optionsString.match(/\"/g);\n      if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n        optionsString = optionsString.replace(/'/g, '\"');\n      }\n      try {\n        clonedOptions = JSON.parse(optionsString);\n        if (inheritedOptions) clonedOptions = {\n          ...inheritedOptions,\n          ...clonedOptions\n        };\n      } catch (e) {\n        this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n        return `${key}${sep}${optionsString}`;\n      }\n      if (clonedOptions.defaultValue && clonedOptions.defaultValue.indexOf(this.prefix) > -1) delete clonedOptions.defaultValue;\n      return key;\n    };\n    while (match = this.nestingRegexp.exec(str)) {\n      let formatters = [];\n      clonedOptions = {\n        ...options\n      };\n      clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n      clonedOptions.applyPostProcessor = false;\n      delete clonedOptions.defaultValue;\n      let doReduce = false;\n      if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n        const r = match[1].split(this.formatSeparator).map(elem => elem.trim());\n        match[1] = r.shift();\n        formatters = r;\n        doReduce = true;\n      }\n      value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n      if (value && match[0] === str && typeof value !== 'string') return value;\n      if (typeof value !== 'string') value = makeString(value);\n      if (!value) {\n        this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n        value = '';\n      }\n      if (doReduce) {\n        value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n          ...options,\n          interpolationkey: match[1].trim()\n        }), value.trim());\n      }\n      str = str.replace(match[0], value);\n      this.regexp.lastIndex = 0;\n    }\n    return str;\n  }\n}\n\nconst parseFormatStr = formatStr => {\n  let formatName = formatStr.toLowerCase().trim();\n  const formatOptions = {};\n  if (formatStr.indexOf('(') > -1) {\n    const p = formatStr.split('(');\n    formatName = p[0].toLowerCase().trim();\n    const optStr = p[1].substring(0, p[1].length - 1);\n    if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n      if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n    } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n      if (!formatOptions.range) formatOptions.range = optStr.trim();\n    } else {\n      const opts = optStr.split(';');\n      opts.forEach(opt => {\n        if (opt) {\n          const [key, ...rest] = opt.split(':');\n          const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n          const trimmedKey = key.trim();\n          if (!formatOptions[trimmedKey]) formatOptions[trimmedKey] = val;\n          if (val === 'false') formatOptions[trimmedKey] = false;\n          if (val === 'true') formatOptions[trimmedKey] = true;\n          if (!isNaN(val)) formatOptions[trimmedKey] = parseInt(val, 10);\n        }\n      });\n    }\n  }\n  return {\n    formatName,\n    formatOptions\n  };\n};\nconst createCachedFormatter = fn => {\n  const cache = {};\n  return (val, lng, options) => {\n    let optForCache = options;\n    if (options && options.interpolationkey && options.formatParams && options.formatParams[options.interpolationkey] && options[options.interpolationkey]) {\n      optForCache = {\n        ...optForCache,\n        [options.interpolationkey]: undefined\n      };\n    }\n    const key = lng + JSON.stringify(optForCache);\n    let formatter = cache[key];\n    if (!formatter) {\n      formatter = fn(getCleanedCode(lng), options);\n      cache[key] = formatter;\n    }\n    return formatter(val);\n  };\n};\nclass Formatter {\n  constructor() {\n    let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    this.logger = baseLogger.create('formatter');\n    this.options = options;\n    this.formats = {\n      number: createCachedFormatter((lng, opt) => {\n        const formatter = new Intl.NumberFormat(lng, {\n          ...opt\n        });\n        return val => formatter.format(val);\n      }),\n      currency: createCachedFormatter((lng, opt) => {\n        const formatter = new Intl.NumberFormat(lng, {\n          ...opt,\n          style: 'currency'\n        });\n        return val => formatter.format(val);\n      }),\n      datetime: createCachedFormatter((lng, opt) => {\n        const formatter = new Intl.DateTimeFormat(lng, {\n          ...opt\n        });\n        return val => formatter.format(val);\n      }),\n      relativetime: createCachedFormatter((lng, opt) => {\n        const formatter = new Intl.RelativeTimeFormat(lng, {\n          ...opt\n        });\n        return val => formatter.format(val, opt.range || 'day');\n      }),\n      list: createCachedFormatter((lng, opt) => {\n        const formatter = new Intl.ListFormat(lng, {\n          ...opt\n        });\n        return val => formatter.format(val);\n      })\n    };\n    this.init(options);\n  }\n  init(services) {\n    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n      interpolation: {}\n    };\n    const iOpts = options.interpolation;\n    this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n  }\n  add(name, fc) {\n    this.formats[name.toLowerCase().trim()] = fc;\n  }\n  addCached(name, fc) {\n    this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n  }\n  format(value, format, lng) {\n    let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n    const formats = format.split(this.formatSeparator);\n    if (formats.length > 1 && formats[0].indexOf('(') > 1 && formats[0].indexOf(')') < 0 && formats.find(f => f.indexOf(')') > -1)) {\n      const lastIndex = formats.findIndex(f => f.indexOf(')') > -1);\n      formats[0] = [formats[0], ...formats.splice(1, lastIndex)].join(this.formatSeparator);\n    }\n    const result = formats.reduce((mem, f) => {\n      const {\n        formatName,\n        formatOptions\n      } = parseFormatStr(f);\n      if (this.formats[formatName]) {\n        let formatted = mem;\n        try {\n          const valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n          const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n          formatted = this.formats[formatName](mem, l, {\n            ...formatOptions,\n            ...options,\n            ...valOptions\n          });\n        } catch (error) {\n          this.logger.warn(error);\n        }\n        return formatted;\n      } else {\n        this.logger.warn(`there was no format function for ${formatName}`);\n      }\n      return mem;\n    }, value);\n    return result;\n  }\n}\n\nconst removePending = (q, name) => {\n  if (q.pending[name] !== undefined) {\n    delete q.pending[name];\n    q.pendingCount--;\n  }\n};\nclass Connector extends EventEmitter {\n  constructor(backend, store, services) {\n    let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n    super();\n    this.backend = backend;\n    this.store = store;\n    this.services = services;\n    this.languageUtils = services.languageUtils;\n    this.options = options;\n    this.logger = baseLogger.create('backendConnector');\n    this.waitingReads = [];\n    this.maxParallelReads = options.maxParallelReads || 10;\n    this.readingCalls = 0;\n    this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n    this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n    this.state = {};\n    this.queue = [];\n    if (this.backend && this.backend.init) {\n      this.backend.init(services, options.backend, options);\n    }\n  }\n  queueLoad(languages, namespaces, options, callback) {\n    const toLoad = {};\n    const pending = {};\n    const toLoadLanguages = {};\n    const toLoadNamespaces = {};\n    languages.forEach(lng => {\n      let hasAllNamespaces = true;\n      namespaces.forEach(ns => {\n        const name = `${lng}|${ns}`;\n        if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n          this.state[name] = 2;\n        } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n          if (pending[name] === undefined) pending[name] = true;\n        } else {\n          this.state[name] = 1;\n          hasAllNamespaces = false;\n          if (pending[name] === undefined) pending[name] = true;\n          if (toLoad[name] === undefined) toLoad[name] = true;\n          if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n        }\n      });\n      if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n    });\n    if (Object.keys(toLoad).length || Object.keys(pending).length) {\n      this.queue.push({\n        pending,\n        pendingCount: Object.keys(pending).length,\n        loaded: {},\n        errors: [],\n        callback\n      });\n    }\n    return {\n      toLoad: Object.keys(toLoad),\n      pending: Object.keys(pending),\n      toLoadLanguages: Object.keys(toLoadLanguages),\n      toLoadNamespaces: Object.keys(toLoadNamespaces)\n    };\n  }\n  loaded(name, err, data) {\n    const s = name.split('|');\n    const lng = s[0];\n    const ns = s[1];\n    if (err) this.emit('failedLoading', lng, ns, err);\n    if (!err && data) {\n      this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n        skipCopy: true\n      });\n    }\n    this.state[name] = err ? -1 : 2;\n    if (err && data) this.state[name] = 0;\n    const loaded = {};\n    this.queue.forEach(q => {\n      pushPath(q.loaded, [lng], ns);\n      removePending(q, name);\n      if (err) q.errors.push(err);\n      if (q.pendingCount === 0 && !q.done) {\n        Object.keys(q.loaded).forEach(l => {\n          if (!loaded[l]) loaded[l] = {};\n          const loadedKeys = q.loaded[l];\n          if (loadedKeys.length) {\n            loadedKeys.forEach(n => {\n              if (loaded[l][n] === undefined) loaded[l][n] = true;\n            });\n          }\n        });\n        q.done = true;\n        if (q.errors.length) {\n          q.callback(q.errors);\n        } else {\n          q.callback();\n        }\n      }\n    });\n    this.emit('loaded', loaded);\n    this.queue = this.queue.filter(q => !q.done);\n  }\n  read(lng, ns, fcName) {\n    let tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n    let wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n    let callback = arguments.length > 5 ? arguments[5] : undefined;\n    if (!lng.length) return callback(null, {});\n    if (this.readingCalls >= this.maxParallelReads) {\n      this.waitingReads.push({\n        lng,\n        ns,\n        fcName,\n        tried,\n        wait,\n        callback\n      });\n      return;\n    }\n    this.readingCalls++;\n    const resolver = (err, data) => {\n      this.readingCalls--;\n      if (this.waitingReads.length > 0) {\n        const next = this.waitingReads.shift();\n        this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n      }\n      if (err && data && tried < this.maxRetries) {\n        setTimeout(() => {\n          this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n        }, wait);\n        return;\n      }\n      callback(err, data);\n    };\n    const fc = this.backend[fcName].bind(this.backend);\n    if (fc.length === 2) {\n      try {\n        const r = fc(lng, ns);\n        if (r && typeof r.then === 'function') {\n          r.then(data => resolver(null, data)).catch(resolver);\n        } else {\n          resolver(null, r);\n        }\n      } catch (err) {\n        resolver(err);\n      }\n      return;\n    }\n    return fc(lng, ns, resolver);\n  }\n  prepareLoading(languages, namespaces) {\n    let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    let callback = arguments.length > 3 ? arguments[3] : undefined;\n    if (!this.backend) {\n      this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n      return callback && callback();\n    }\n    if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n    if (typeof namespaces === 'string') namespaces = [namespaces];\n    const toLoad = this.queueLoad(languages, namespaces, options, callback);\n    if (!toLoad.toLoad.length) {\n      if (!toLoad.pending.length) callback();\n      return null;\n    }\n    toLoad.toLoad.forEach(name => {\n      this.loadOne(name);\n    });\n  }\n  load(languages, namespaces, callback) {\n    this.prepareLoading(languages, namespaces, {}, callback);\n  }\n  reload(languages, namespaces, callback) {\n    this.prepareLoading(languages, namespaces, {\n      reload: true\n    }, callback);\n  }\n  loadOne(name) {\n    let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n    const s = name.split('|');\n    const lng = s[0];\n    const ns = s[1];\n    this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n      if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n      if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n      this.loaded(name, err, data);\n    });\n  }\n  saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n    let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n    let clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : () => {};\n    if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n      this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n      return;\n    }\n    if (key === undefined || key === null || key === '') return;\n    if (this.backend && this.backend.create) {\n      const opts = {\n        ...options,\n        isUpdate\n      };\n      const fc = this.backend.create.bind(this.backend);\n      if (fc.length < 6) {\n        try {\n          let r;\n          if (fc.length === 5) {\n            r = fc(languages, namespace, key, fallbackValue, opts);\n          } else {\n            r = fc(languages, namespace, key, fallbackValue);\n          }\n          if (r && typeof r.then === 'function') {\n            r.then(data => clb(null, data)).catch(clb);\n          } else {\n            clb(null, r);\n          }\n        } catch (err) {\n          clb(err);\n        }\n      } else {\n        fc(languages, namespace, key, fallbackValue, clb, opts);\n      }\n    }\n    if (!languages || !languages[0]) return;\n    this.store.addResource(languages[0], namespace, key, fallbackValue);\n  }\n}\n\nconst get = () => ({\n  debug: false,\n  initImmediate: true,\n  ns: ['translation'],\n  defaultNS: ['translation'],\n  fallbackLng: ['dev'],\n  fallbackNS: false,\n  supportedLngs: false,\n  nonExplicitSupportedLngs: false,\n  load: 'all',\n  preload: false,\n  simplifyPluralSuffix: true,\n  keySeparator: '.',\n  nsSeparator: ':',\n  pluralSeparator: '_',\n  contextSeparator: '_',\n  partialBundledLanguages: false,\n  saveMissing: false,\n  updateMissing: false,\n  saveMissingTo: 'fallback',\n  saveMissingPlurals: true,\n  missingKeyHandler: false,\n  missingInterpolationHandler: false,\n  postProcess: false,\n  postProcessPassResolved: false,\n  returnNull: false,\n  returnEmptyString: true,\n  returnObjects: false,\n  joinArrays: false,\n  returnedObjectHandler: false,\n  parseMissingKeyHandler: false,\n  appendNamespaceToMissingKey: false,\n  appendNamespaceToCIMode: false,\n  overloadTranslationOptionHandler: args => {\n    let ret = {};\n    if (typeof args[1] === 'object') ret = args[1];\n    if (typeof args[1] === 'string') ret.defaultValue = args[1];\n    if (typeof args[2] === 'string') ret.tDescription = args[2];\n    if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n      const options = args[3] || args[2];\n      Object.keys(options).forEach(key => {\n        ret[key] = options[key];\n      });\n    }\n    return ret;\n  },\n  interpolation: {\n    escapeValue: true,\n    format: value => value,\n    prefix: '{{',\n    suffix: '}}',\n    formatSeparator: ',',\n    unescapePrefix: '-',\n    nestingPrefix: '$t(',\n    nestingSuffix: ')',\n    nestingOptionsSeparator: ',',\n    maxReplaces: 1000,\n    skipOnVariables: true\n  }\n});\nconst transformOptions = options => {\n  if (typeof options.ns === 'string') options.ns = [options.ns];\n  if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n  if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n  if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n    options.supportedLngs = options.supportedLngs.concat(['cimode']);\n  }\n  return options;\n};\n\nconst noop = () => {};\nconst bindMemberFunctions = inst => {\n  const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n  mems.forEach(mem => {\n    if (typeof inst[mem] === 'function') {\n      inst[mem] = inst[mem].bind(inst);\n    }\n  });\n};\nclass I18n extends EventEmitter {\n  constructor() {\n    let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    let callback = arguments.length > 1 ? arguments[1] : undefined;\n    super();\n    this.options = transformOptions(options);\n    this.services = {};\n    this.logger = baseLogger;\n    this.modules = {\n      external: []\n    };\n    bindMemberFunctions(this);\n    if (callback && !this.isInitialized && !options.isClone) {\n      if (!this.options.initImmediate) {\n        this.init(options, callback);\n        return this;\n      }\n      setTimeout(() => {\n        this.init(options, callback);\n      }, 0);\n    }\n  }\n  init() {\n    var _this = this;\n    let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    let callback = arguments.length > 1 ? arguments[1] : undefined;\n    this.isInitializing = true;\n    if (typeof options === 'function') {\n      callback = options;\n      options = {};\n    }\n    if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n      if (typeof options.ns === 'string') {\n        options.defaultNS = options.ns;\n      } else if (options.ns.indexOf('translation') < 0) {\n        options.defaultNS = options.ns[0];\n      }\n    }\n    const defOpts = get();\n    this.options = {\n      ...defOpts,\n      ...this.options,\n      ...transformOptions(options)\n    };\n    if (this.options.compatibilityAPI !== 'v1') {\n      this.options.interpolation = {\n        ...defOpts.interpolation,\n        ...this.options.interpolation\n      };\n    }\n    if (options.keySeparator !== undefined) {\n      this.options.userDefinedKeySeparator = options.keySeparator;\n    }\n    if (options.nsSeparator !== undefined) {\n      this.options.userDefinedNsSeparator = options.nsSeparator;\n    }\n    const createClassOnDemand = ClassOrObject => {\n      if (!ClassOrObject) return null;\n      if (typeof ClassOrObject === 'function') return new ClassOrObject();\n      return ClassOrObject;\n    };\n    if (!this.options.isClone) {\n      if (this.modules.logger) {\n        baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n      } else {\n        baseLogger.init(null, this.options);\n      }\n      let formatter;\n      if (this.modules.formatter) {\n        formatter = this.modules.formatter;\n      } else if (typeof Intl !== 'undefined') {\n        formatter = Formatter;\n      }\n      const lu = new LanguageUtil(this.options);\n      this.store = new ResourceStore(this.options.resources, this.options);\n      const s = this.services;\n      s.logger = baseLogger;\n      s.resourceStore = this.store;\n      s.languageUtils = lu;\n      s.pluralResolver = new PluralResolver(lu, {\n        prepend: this.options.pluralSeparator,\n        compatibilityJSON: this.options.compatibilityJSON,\n        simplifyPluralSuffix: this.options.simplifyPluralSuffix\n      });\n      if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n        s.formatter = createClassOnDemand(formatter);\n        s.formatter.init(s, this.options);\n        this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n      }\n      s.interpolator = new Interpolator(this.options);\n      s.utils = {\n        hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n      };\n      s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n      s.backendConnector.on('*', function (event) {\n        for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n          args[_key - 1] = arguments[_key];\n        }\n        _this.emit(event, ...args);\n      });\n      if (this.modules.languageDetector) {\n        s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n        if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n      }\n      if (this.modules.i18nFormat) {\n        s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n        if (s.i18nFormat.init) s.i18nFormat.init(this);\n      }\n      this.translator = new Translator(this.services, this.options);\n      this.translator.on('*', function (event) {\n        for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n          args[_key2 - 1] = arguments[_key2];\n        }\n        _this.emit(event, ...args);\n      });\n      this.modules.external.forEach(m => {\n        if (m.init) m.init(this);\n      });\n    }\n    this.format = this.options.interpolation.format;\n    if (!callback) callback = noop;\n    if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n      const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n      if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n    }\n    if (!this.services.languageDetector && !this.options.lng) {\n      this.logger.warn('init: no languageDetector is used and no lng is defined');\n    }\n    const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n    storeApi.forEach(fcName => {\n      this[fcName] = function () {\n        return _this.store[fcName](...arguments);\n      };\n    });\n    const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n    storeApiChained.forEach(fcName => {\n      this[fcName] = function () {\n        _this.store[fcName](...arguments);\n        return _this;\n      };\n    });\n    const deferred = defer();\n    const load = () => {\n      const finish = (err, t) => {\n        this.isInitializing = false;\n        if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n        this.isInitialized = true;\n        if (!this.options.isClone) this.logger.log('initialized', this.options);\n        this.emit('initialized', this.options);\n        deferred.resolve(t);\n        callback(err, t);\n      };\n      if (this.languages && this.options.compatibilityAPI !== 'v1' && !this.isInitialized) return finish(null, this.t.bind(this));\n      this.changeLanguage(this.options.lng, finish);\n    };\n    if (this.options.resources || !this.options.initImmediate) {\n      load();\n    } else {\n      setTimeout(load, 0);\n    }\n    return deferred;\n  }\n  loadResources(language) {\n    let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n    let usedCallback = callback;\n    const usedLng = typeof language === 'string' ? language : this.language;\n    if (typeof language === 'function') usedCallback = language;\n    if (!this.options.resources || this.options.partialBundledLanguages) {\n      if (usedLng && usedLng.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n      const toLoad = [];\n      const append = lng => {\n        if (!lng) return;\n        if (lng === 'cimode') return;\n        const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n        lngs.forEach(l => {\n          if (l === 'cimode') return;\n          if (toLoad.indexOf(l) < 0) toLoad.push(l);\n        });\n      };\n      if (!usedLng) {\n        const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n        fallbacks.forEach(l => append(l));\n      } else {\n        append(usedLng);\n      }\n      if (this.options.preload) {\n        this.options.preload.forEach(l => append(l));\n      }\n      this.services.backendConnector.load(toLoad, this.options.ns, e => {\n        if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n        usedCallback(e);\n      });\n    } else {\n      usedCallback(null);\n    }\n  }\n  reloadResources(lngs, ns, callback) {\n    const deferred = defer();\n    if (typeof lngs === 'function') {\n      callback = lngs;\n      lngs = undefined;\n    }\n    if (typeof ns === 'function') {\n      callback = ns;\n      ns = undefined;\n    }\n    if (!lngs) lngs = this.languages;\n    if (!ns) ns = this.options.ns;\n    if (!callback) callback = noop;\n    this.services.backendConnector.reload(lngs, ns, err => {\n      deferred.resolve();\n      callback(err);\n    });\n    return deferred;\n  }\n  use(module) {\n    if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n    if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n    if (module.type === 'backend') {\n      this.modules.backend = module;\n    }\n    if (module.type === 'logger' || module.log && module.warn && module.error) {\n      this.modules.logger = module;\n    }\n    if (module.type === 'languageDetector') {\n      this.modules.languageDetector = module;\n    }\n    if (module.type === 'i18nFormat') {\n      this.modules.i18nFormat = module;\n    }\n    if (module.type === 'postProcessor') {\n      postProcessor.addPostProcessor(module);\n    }\n    if (module.type === 'formatter') {\n      this.modules.formatter = module;\n    }\n    if (module.type === '3rdParty') {\n      this.modules.external.push(module);\n    }\n    return this;\n  }\n  setResolvedLanguage(l) {\n    if (!l || !this.languages) return;\n    if (['cimode', 'dev'].indexOf(l) > -1) return;\n    for (let li = 0; li < this.languages.length; li++) {\n      const lngInLngs = this.languages[li];\n      if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n      if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n        this.resolvedLanguage = lngInLngs;\n        break;\n      }\n    }\n  }\n  changeLanguage(lng, callback) {\n    var _this2 = this;\n    this.isLanguageChangingTo = lng;\n    const deferred = defer();\n    this.emit('languageChanging', lng);\n    const setLngProps = l => {\n      this.language = l;\n      this.languages = this.services.languageUtils.toResolveHierarchy(l);\n      this.resolvedLanguage = undefined;\n      this.setResolvedLanguage(l);\n    };\n    const done = (err, l) => {\n      if (l) {\n        setLngProps(l);\n        this.translator.changeLanguage(l);\n        this.isLanguageChangingTo = undefined;\n        this.emit('languageChanged', l);\n        this.logger.log('languageChanged', l);\n      } else {\n        this.isLanguageChangingTo = undefined;\n      }\n      deferred.resolve(function () {\n        return _this2.t(...arguments);\n      });\n      if (callback) callback(err, function () {\n        return _this2.t(...arguments);\n      });\n    };\n    const setLng = lngs => {\n      if (!lng && !lngs && this.services.languageDetector) lngs = [];\n      const l = typeof lngs === 'string' ? lngs : this.services.languageUtils.getBestMatchFromCodes(lngs);\n      if (l) {\n        if (!this.language) {\n          setLngProps(l);\n        }\n        if (!this.translator.language) this.translator.changeLanguage(l);\n        if (this.services.languageDetector && this.services.languageDetector.cacheUserLanguage) this.services.languageDetector.cacheUserLanguage(l);\n      }\n      this.loadResources(l, err => {\n        done(err, l);\n      });\n    };\n    if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n      setLng(this.services.languageDetector.detect());\n    } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n      if (this.services.languageDetector.detect.length === 0) {\n        this.services.languageDetector.detect().then(setLng);\n      } else {\n        this.services.languageDetector.detect(setLng);\n      }\n    } else {\n      setLng(lng);\n    }\n    return deferred;\n  }\n  getFixedT(lng, ns, keyPrefix) {\n    var _this3 = this;\n    const fixedT = function (key, opts) {\n      let options;\n      if (typeof opts !== 'object') {\n        for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n          rest[_key3 - 2] = arguments[_key3];\n        }\n        options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n      } else {\n        options = {\n          ...opts\n        };\n      }\n      options.lng = options.lng || fixedT.lng;\n      options.lngs = options.lngs || fixedT.lngs;\n      options.ns = options.ns || fixedT.ns;\n      if (options.keyPrefix !== '') options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n      const keySeparator = _this3.options.keySeparator || '.';\n      let resultKey;\n      if (options.keyPrefix && Array.isArray(key)) {\n        resultKey = key.map(k => `${options.keyPrefix}${keySeparator}${k}`);\n      } else {\n        resultKey = options.keyPrefix ? `${options.keyPrefix}${keySeparator}${key}` : key;\n      }\n      return _this3.t(resultKey, options);\n    };\n    if (typeof lng === 'string') {\n      fixedT.lng = lng;\n    } else {\n      fixedT.lngs = lng;\n    }\n    fixedT.ns = ns;\n    fixedT.keyPrefix = keyPrefix;\n    return fixedT;\n  }\n  t() {\n    return this.translator && this.translator.translate(...arguments);\n  }\n  exists() {\n    return this.translator && this.translator.exists(...arguments);\n  }\n  setDefaultNamespace(ns) {\n    this.options.defaultNS = ns;\n  }\n  hasLoadedNamespace(ns) {\n    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    if (!this.isInitialized) {\n      this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n      return false;\n    }\n    if (!this.languages || !this.languages.length) {\n      this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n      return false;\n    }\n    const lng = options.lng || this.resolvedLanguage || this.languages[0];\n    const fallbackLng = this.options ? this.options.fallbackLng : false;\n    const lastLng = this.languages[this.languages.length - 1];\n    if (lng.toLowerCase() === 'cimode') return true;\n    const loadNotPending = (l, n) => {\n      const loadState = this.services.backendConnector.state[`${l}|${n}`];\n      return loadState === -1 || loadState === 0 || loadState === 2;\n    };\n    if (options.precheck) {\n      const preResult = options.precheck(this, loadNotPending);\n      if (preResult !== undefined) return preResult;\n    }\n    if (this.hasResourceBundle(lng, ns)) return true;\n    if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n    if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n    return false;\n  }\n  loadNamespaces(ns, callback) {\n    const deferred = defer();\n    if (!this.options.ns) {\n      if (callback) callback();\n      return Promise.resolve();\n    }\n    if (typeof ns === 'string') ns = [ns];\n    ns.forEach(n => {\n      if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n    });\n    this.loadResources(err => {\n      deferred.resolve();\n      if (callback) callback(err);\n    });\n    return deferred;\n  }\n  loadLanguages(lngs, callback) {\n    const deferred = defer();\n    if (typeof lngs === 'string') lngs = [lngs];\n    const preloaded = this.options.preload || [];\n    const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0 && this.services.languageUtils.isSupportedCode(lng));\n    if (!newLngs.length) {\n      if (callback) callback();\n      return Promise.resolve();\n    }\n    this.options.preload = preloaded.concat(newLngs);\n    this.loadResources(err => {\n      deferred.resolve();\n      if (callback) callback(err);\n    });\n    return deferred;\n  }\n  dir(lng) {\n    if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n    if (!lng) return 'rtl';\n    const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n    const languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n    return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n  }\n  static createInstance() {\n    let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    let callback = arguments.length > 1 ? arguments[1] : undefined;\n    return new I18n(options, callback);\n  }\n  cloneInstance() {\n    let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n    const forkResourceStore = options.forkResourceStore;\n    if (forkResourceStore) delete options.forkResourceStore;\n    const mergedOptions = {\n      ...this.options,\n      ...options,\n      ...{\n        isClone: true\n      }\n    };\n    const clone = new I18n(mergedOptions);\n    if (options.debug !== undefined || options.prefix !== undefined) {\n      clone.logger = clone.logger.clone(options);\n    }\n    const membersToCopy = ['store', 'services', 'language'];\n    membersToCopy.forEach(m => {\n      clone[m] = this[m];\n    });\n    clone.services = {\n      ...this.services\n    };\n    clone.services.utils = {\n      hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n    };\n    if (forkResourceStore) {\n      clone.store = new ResourceStore(this.store.data, mergedOptions);\n      clone.services.resourceStore = clone.store;\n    }\n    clone.translator = new Translator(clone.services, mergedOptions);\n    clone.translator.on('*', function (event) {\n      for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n        args[_key4 - 1] = arguments[_key4];\n      }\n      clone.emit(event, ...args);\n    });\n    clone.init(mergedOptions, callback);\n    clone.translator.options = mergedOptions;\n    clone.translator.backendConnector.services.utils = {\n      hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n    };\n    return clone;\n  }\n  toJSON() {\n    return {\n      options: this.options,\n      store: this.store,\n      language: this.language,\n      languages: this.languages,\n      resolvedLanguage: this.resolvedLanguage\n    };\n  }\n}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","const {\n  slice,\n  forEach\n} = [];\nfunction defaults(obj) {\n  forEach.call(slice.call(arguments, 1), source => {\n    if (source) {\n      for (const prop in source) {\n        if (obj[prop] === undefined) obj[prop] = source[prop];\n      }\n    }\n  });\n  return obj;\n}\n\n// eslint-disable-next-line no-control-regex\nconst fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\nconst serializeCookie = (name, val, options) => {\n  const opt = options || {};\n  opt.path = opt.path || '/';\n  const value = encodeURIComponent(val);\n  let str = `${name}=${value}`;\n  if (opt.maxAge > 0) {\n    const maxAge = opt.maxAge - 0;\n    if (Number.isNaN(maxAge)) throw new Error('maxAge should be a Number');\n    str += `; Max-Age=${Math.floor(maxAge)}`;\n  }\n  if (opt.domain) {\n    if (!fieldContentRegExp.test(opt.domain)) {\n      throw new TypeError('option domain is invalid');\n    }\n    str += `; Domain=${opt.domain}`;\n  }\n  if (opt.path) {\n    if (!fieldContentRegExp.test(opt.path)) {\n      throw new TypeError('option path is invalid');\n    }\n    str += `; Path=${opt.path}`;\n  }\n  if (opt.expires) {\n    if (typeof opt.expires.toUTCString !== 'function') {\n      throw new TypeError('option expires is invalid');\n    }\n    str += `; Expires=${opt.expires.toUTCString()}`;\n  }\n  if (opt.httpOnly) str += '; HttpOnly';\n  if (opt.secure) str += '; Secure';\n  if (opt.sameSite) {\n    const sameSite = typeof opt.sameSite === 'string' ? opt.sameSite.toLowerCase() : opt.sameSite;\n    switch (sameSite) {\n      case true:\n        str += '; SameSite=Strict';\n        break;\n      case 'lax':\n        str += '; SameSite=Lax';\n        break;\n      case 'strict':\n        str += '; SameSite=Strict';\n        break;\n      case 'none':\n        str += '; SameSite=None';\n        break;\n      default:\n        throw new TypeError('option sameSite is invalid');\n    }\n  }\n  return str;\n};\nconst cookie = {\n  create(name, value, minutes, domain) {\n    let cookieOptions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n      path: '/',\n      sameSite: 'strict'\n    };\n    if (minutes) {\n      cookieOptions.expires = new Date();\n      cookieOptions.expires.setTime(cookieOptions.expires.getTime() + minutes * 60 * 1000);\n    }\n    if (domain) cookieOptions.domain = domain;\n    document.cookie = serializeCookie(name, encodeURIComponent(value), cookieOptions);\n  },\n  read(name) {\n    const nameEQ = `${name}=`;\n    const ca = document.cookie.split(';');\n    for (let i = 0; i < ca.length; i++) {\n      let c = ca[i];\n      while (c.charAt(0) === ' ') c = c.substring(1, c.length);\n      if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\n    }\n    return null;\n  },\n  remove(name) {\n    this.create(name, '', -1);\n  }\n};\nvar cookie$1 = {\n  name: 'cookie',\n  // Deconstruct the options object and extract the lookupCookie property\n  lookup(_ref) {\n    let {\n      lookupCookie\n    } = _ref;\n    if (lookupCookie && typeof document !== 'undefined') {\n      return cookie.read(lookupCookie) || undefined;\n    }\n    return undefined;\n  },\n  // Deconstruct the options object and extract the lookupCookie, cookieMinutes, cookieDomain, and cookieOptions properties\n  cacheUserLanguage(lng, _ref2) {\n    let {\n      lookupCookie,\n      cookieMinutes,\n      cookieDomain,\n      cookieOptions\n    } = _ref2;\n    if (lookupCookie && typeof document !== 'undefined') {\n      cookie.create(lookupCookie, lng, cookieMinutes, cookieDomain, cookieOptions);\n    }\n  }\n};\n\nvar querystring = {\n  name: 'querystring',\n  // Deconstruct the options object and extract the lookupQuerystring property\n  lookup(_ref) {\n    let {\n      lookupQuerystring\n    } = _ref;\n    let found;\n    if (typeof window !== 'undefined') {\n      let {\n        search\n      } = window.location;\n      if (!window.location.search && window.location.hash?.indexOf('?') > -1) {\n        search = window.location.hash.substring(window.location.hash.indexOf('?'));\n      }\n      const query = search.substring(1);\n      const params = query.split('&');\n      for (let i = 0; i < params.length; i++) {\n        const pos = params[i].indexOf('=');\n        if (pos > 0) {\n          const key = params[i].substring(0, pos);\n          if (key === lookupQuerystring) {\n            found = params[i].substring(pos + 1);\n          }\n        }\n      }\n    }\n    return found;\n  }\n};\n\nlet hasLocalStorageSupport = null;\nconst localStorageAvailable = () => {\n  if (hasLocalStorageSupport !== null) return hasLocalStorageSupport;\n  try {\n    hasLocalStorageSupport = window !== 'undefined' && window.localStorage !== null;\n    const testKey = 'i18next.translate.boo';\n    window.localStorage.setItem(testKey, 'foo');\n    window.localStorage.removeItem(testKey);\n  } catch (e) {\n    hasLocalStorageSupport = false;\n  }\n  return hasLocalStorageSupport;\n};\nvar localStorage = {\n  name: 'localStorage',\n  // Deconstruct the options object and extract the lookupLocalStorage property\n  lookup(_ref) {\n    let {\n      lookupLocalStorage\n    } = _ref;\n    if (lookupLocalStorage && localStorageAvailable()) {\n      return window.localStorage.getItem(lookupLocalStorage) || undefined; // Undefined ensures type consistency with the previous version of this function\n    }\n\n    return undefined;\n  },\n  // Deconstruct the options object and extract the lookupLocalStorage property\n  cacheUserLanguage(lng, _ref2) {\n    let {\n      lookupLocalStorage\n    } = _ref2;\n    if (lookupLocalStorage && localStorageAvailable()) {\n      window.localStorage.setItem(lookupLocalStorage, lng);\n    }\n  }\n};\n\nlet hasSessionStorageSupport = null;\nconst sessionStorageAvailable = () => {\n  if (hasSessionStorageSupport !== null) return hasSessionStorageSupport;\n  try {\n    hasSessionStorageSupport = window !== 'undefined' && window.sessionStorage !== null;\n    const testKey = 'i18next.translate.boo';\n    window.sessionStorage.setItem(testKey, 'foo');\n    window.sessionStorage.removeItem(testKey);\n  } catch (e) {\n    hasSessionStorageSupport = false;\n  }\n  return hasSessionStorageSupport;\n};\nvar sessionStorage = {\n  name: 'sessionStorage',\n  lookup(_ref) {\n    let {\n      lookupSessionStorage\n    } = _ref;\n    if (lookupSessionStorage && sessionStorageAvailable()) {\n      return window.sessionStorage.getItem(lookupSessionStorage) || undefined;\n    }\n    return undefined;\n  },\n  cacheUserLanguage(lng, _ref2) {\n    let {\n      lookupSessionStorage\n    } = _ref2;\n    if (lookupSessionStorage && sessionStorageAvailable()) {\n      window.sessionStorage.setItem(lookupSessionStorage, lng);\n    }\n  }\n};\n\nvar navigator$1 = {\n  name: 'navigator',\n  lookup(options) {\n    const found = [];\n    if (typeof navigator !== 'undefined') {\n      const {\n        languages,\n        userLanguage,\n        language\n      } = navigator;\n      if (languages) {\n        // chrome only; not an array, so can't use .push.apply instead of iterating\n        for (let i = 0; i < languages.length; i++) {\n          found.push(languages[i]);\n        }\n      }\n      if (userLanguage) {\n        found.push(userLanguage);\n      }\n      if (language) {\n        found.push(language);\n      }\n    }\n    return found.length > 0 ? found : undefined;\n  }\n};\n\nvar htmlTag = {\n  name: 'htmlTag',\n  // Deconstruct the options object and extract the htmlTag property\n  lookup(_ref) {\n    let {\n      htmlTag\n    } = _ref;\n    let found;\n    const internalHtmlTag = htmlTag || (typeof document !== 'undefined' ? document.documentElement : null);\n    if (internalHtmlTag && typeof internalHtmlTag.getAttribute === 'function') {\n      found = internalHtmlTag.getAttribute('lang');\n    }\n    return found;\n  }\n};\n\nvar path = {\n  name: 'path',\n  // Deconstruct the options object and extract the lookupFromPathIndex property\n  lookup(_ref) {\n    let {\n      lookupFromPathIndex\n    } = _ref;\n    if (typeof window === 'undefined') return undefined;\n    const language = window.location.pathname.match(/\\/([a-zA-Z-]*)/g);\n    if (!Array.isArray(language)) return undefined;\n    const index = typeof lookupFromPathIndex === 'number' ? lookupFromPathIndex : 0;\n    return language[index]?.replace('/', '');\n  }\n};\n\nvar subdomain = {\n  name: 'subdomain',\n  lookup(_ref) {\n    let {\n      lookupFromSubdomainIndex\n    } = _ref;\n    // If given get the subdomain index else 1\n    const internalLookupFromSubdomainIndex = typeof lookupFromSubdomainIndex === 'number' ? lookupFromSubdomainIndex + 1 : 1;\n    // get all matches if window.location. is existing\n    // first item of match is the match itself and the second is the first group match which should be the first subdomain match\n    // is the hostname no public domain get the or option of localhost\n    const language = typeof window !== 'undefined' && window.location?.hostname?.match(/^(\\w{2,5})\\.(([a-z0-9-]{1,63}\\.[a-z]{2,6})|localhost)/i);\n\n    // if there is no match (null) return undefined\n    if (!language) return undefined;\n    // return the given group match\n    return language[internalLookupFromSubdomainIndex];\n  }\n};\n\nfunction getDefaults() {\n  return {\n    order: ['querystring', 'cookie', 'localStorage', 'sessionStorage', 'navigator', 'htmlTag'],\n    lookupQuerystring: 'lng',\n    lookupCookie: 'i18next',\n    lookupLocalStorage: 'i18nextLng',\n    lookupSessionStorage: 'i18nextLng',\n    // cache user language\n    caches: ['localStorage'],\n    excludeCacheFor: ['cimode'],\n    // cookieMinutes: 10,\n    // cookieDomain: 'myDomain'\n\n    convertDetectedLanguage: l => l\n  };\n}\nclass Browser {\n  constructor(services) {\n    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    this.type = 'languageDetector';\n    this.detectors = {};\n    this.init(services, options);\n  }\n  init(services) {\n    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    let i18nOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    this.services = services || {\n      languageUtils: {}\n    }; // this way the language detector can be used without i18next\n    this.options = defaults(options, this.options || {}, getDefaults());\n    if (typeof this.options.convertDetectedLanguage === 'string' && this.options.convertDetectedLanguage.indexOf('15897') > -1) {\n      this.options.convertDetectedLanguage = l => l.replace('-', '_');\n    }\n\n    // backwards compatibility\n    if (this.options.lookupFromUrlIndex) this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex;\n    this.i18nOptions = i18nOptions;\n    this.addDetector(cookie$1);\n    this.addDetector(querystring);\n    this.addDetector(localStorage);\n    this.addDetector(sessionStorage);\n    this.addDetector(navigator$1);\n    this.addDetector(htmlTag);\n    this.addDetector(path);\n    this.addDetector(subdomain);\n  }\n  addDetector(detector) {\n    this.detectors[detector.name] = detector;\n    return this;\n  }\n  detect(detectionOrder) {\n    if (!detectionOrder) detectionOrder = this.options.order;\n    let detected = [];\n    detectionOrder.forEach(detectorName => {\n      if (this.detectors[detectorName]) {\n        let lookup = this.detectors[detectorName].lookup(this.options);\n        if (lookup && typeof lookup === 'string') lookup = [lookup];\n        if (lookup) detected = detected.concat(lookup);\n      }\n    });\n    detected = detected.map(d => this.options.convertDetectedLanguage(d));\n    if (this.services.languageUtils.getBestMatchFromCodes) return detected; // new i18next v19.5.0\n    return detected.length > 0 ? detected[0] : null; // a little backward compatibility\n  }\n\n  cacheUserLanguage(lng, caches) {\n    if (!caches) caches = this.options.caches;\n    if (!caches) return;\n    if (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(lng) > -1) return;\n    caches.forEach(cacheName => {\n      if (this.detectors[cacheName]) this.detectors[cacheName].cacheUserLanguage(lng, this.options);\n    });\n  }\n}\nBrowser.type = 'languageDetector';\n\nexport { Browser as default };\n","import i18n from \"i18next\";\nimport type { ResourceLanguage } from \"i18next\";\nimport { initReactI18next } from \"react-i18next\";\nimport LanguageDetector from \"i18next-browser-languagedetector\";\n\nimport enTranslations from \"./locales/en.yaml\";\nimport deTranslations from \"./locales/de.yaml\";\n\nexport const languages = {\n    en: { translation: enTranslations as ResourceLanguage },\n    de: { translation: deTranslations as ResourceLanguage },\n};\n\n// TODO: wait for `init` to complete before rendering?\nvoid i18n\n    .use(initReactI18next)\n    .use(LanguageDetector)\n    .init({\n        resources: languages,\n        fallbackLng: \"en\",\n        interpolation: {\n            escapeValue: false,\n        },\n        detection: {\n            order: [\"localStorage\", \"navigator\"],\n        },\n        react: {\n            transKeepBasicHtmlNodesFor: [\"br\", \"strong\", \"i\", \"p\", \"code\"],\n        },\n    });\n\nexport default i18n;\n\n// Set the HTML `lang` attribute correctly\ni18n.on(\"languageChanged\", lng => document.documentElement.setAttribute(\"lang\", lng));\nif (i18n.resolvedLanguage) {\n    document.documentElement.setAttribute(\"lang\", i18n.resolvedLanguage);\n}\n","export default {general:{language:{language_one:'Language',language_other:'Languages',name:'English',selection:'Language selection, English selected'},loading:'Loading...',home:'Home',homepage:'Homepage',page:'Page','leave-page-confirmation':'Leave page? Changes you made may not be saved!',action:{close:'Close',cancel:'Cancel',save:'Save',back:'Back','goto-homepage':'Go to homepage',share:'Share'},'version-information':'Version','logo-alt':'Homepage of “{{title}}”','no-root-children':'No pages yet','failed-to-load-thumbnail':'Failed to load thumbnail',yes:'Yes',no:'No',form:{'this-field-is-required':'This field is required.',select:{'no-options':'No options','select-option':'Select option'}}},welcome:{title:'Welcome to Tobira!',body:'It looks like your main page is still empty. To add content to this page or add other pages, log in with an account that has sufficient privileges. Afterwards, you can use the buttons on the left to modify the pages of this video portal.\\n'},errors:{'not-your-fault':'This is likely not your fault. You can try again later.','unexpected-response':'Internal application error: unexpected response from server.','unexpected-server-error':'Internal application error: unexpected server error.','network-error':'Server could not be reached due to a network error.','not-authorized':'You are not authorized.','not-authorized-to-view-page':'You are not authorized to view this page.','might-need-to-login':'You might need to login.','might-need-to-login-link':'You might need to <1>login</1>.','invalid-input':'Invalid input.','opencast-unavailable':'Opencast is currently not available.','internal-server-error':'Internal server error (something is wrong with the server).','are-you-connected-to-internet':'Are you connected to the internet?',unknown:'Unknown error.','detailed-error-info':'Detailed error information for developers',embedded:'An error occurred in the embedded application.'},'not-found':{'page-not-found':'Page not found','video-not-found':'Video not found','series-not-found':'Series not found','playlist-not-found':'Playlist not found','page-explanation':'The page you want to visit does not exist. It might have been removed or renamed.\\n','video-explanation':'The video you want to watch does not exist. It might have been removed or moved.\\n','series-explanation':'The series you want to view does not exist. It might have been removed or moved.\\n','playlist-explanation':'The playlist you want to view does not exist. It might have been removed or moved.\\n','url-typo':'If you entered the address/URL manually, please double check it for spelling mistakes.\\n',actions:'You can try visiting <1>the homepage</1> or using the search bar to find the page you are looking for.\\n'},'invalid-url':{title:'Invalid address',description:'The URL you entered is not valid. If you typed it in manually, please verify you didn\\'t make any spelling mistakes or included invalid characters. If you followed a link instead, please contact the appropriate authority responsible for publishing that link.\\n'},'about-tobira':{title:'About “Tobira”',body:'This video portal is powered by Tobira, a video portal software for Opencast. It allows its users to browse, watch and organize all videos and series of the connected Opencast instance. Tobira, like Opencast, is free open source software. For more information and to report bugs, please visit <1>its GitHub repository</1>.\\n'},footer:{'about-tobira':'About Tobira'},'main-menu':{label:'Menu','color-scheme':{label:'Color scheme',auto:'Auto',light:'Light',dark:'Dark'}},user:{login:'Login',logout:'Log out',settings:'User settings','manage-content':'Manage'},'login-page':{heading:'Login','user-id':'User ID',password:'Password','bad-credentials':'Login failed: invalid credentials.','unexpected-response':'$t(errors.unexpected-response) $t(errors.not-your-fault)','already-logged-in':'You are already logged in.'},video:{video:'Video','video-page':'Video page: “{{video}}”',created:'Created',updated:'Last updated',duration:'Duration',link:'Go to video page','part-of-series':'Part of series','more-from-series':'More from “{{series}}”','more-from-playlist':'More from “{{playlist}}”','deleted-video-block':'The video referenced here was deleted.','not-allowed-video-block':'You are not allowed to view the video embedded here.','not-ready':{title:'Video not processed yet',text:'This video hasn\\'t been fully processed yet. This should happen automatically soon. Try again in a few minutes.\\n',label:'unprocessed'},'thumbnail-for':'Thumbnail for “{{video}}”',live:'Live',upcoming:'Upcoming',ended:'Ended',license:'License',source:'Source','stream-ended':'This stream has ended.','stream-not-started-yet':'This stream has not started yet.',started:'Started','started-when':'Started {{duration}}',starts:'Starts','starts-in':'Starts {{duration}}',description:{'show-more':'...show more','show-less':'Show less'},embed:{'copy-embed-code-to-clipboard':'Copy embed code to clipboard'},rss:{'copy-link-to-clipboard':'Copy RSS link to clipboard'},caption:'Caption',download:{title:'Download',presenter:'Video (speaker)',slides:'Video (presentation)',info:'Here you can download the video(s) in different formats/qualities (Right click - Save as).\\n'},manage:'Manage',start:'Start',end:'End',ends:'Ends',share:{title:'$t(video.share.{{title}})','share-video':'Share video','direct-link':'Direct link',main:'Link',embed:'Embed',rss:'RSS','show-qr-code':'Show QR code'}},playlist:{'deleted-playlist-block':'The playlist referenced here was deleted.','not-allowed-playlist-block':'You are not allowed to view the playlist embedded here.'},series:{series:'Series',deleted:'Deleted series','deleted-series-block':'The series referenced here was deleted.','entry-of-series-thumbnail':'Thumbnail for entry of “{{series}}”','not-ready':{title:'Series not synchronized yet',text:'The data of the requested series has not been fully transferred yet. This should happen automatically soon. Try again in a few minutes.\\n'}},'videolist-block':{'upcoming-live-streams':'Upcoming live streams ({{count}})','missing-video':'Video not found','no-videos':'No videos',unauthorized:'Missing permissions','hidden-items':{unauthorized_one:'One video requires additional permissions to view.',unauthorized_other:'{{count}} videos require additional permissions to view.',missing_one:'One video is missing.',missing_other:'{{count}} videos are missing.'},videos:{heading:'Videos'},settings:{order:'Order','order-label':'Choose video order',original:'Playlist order','new-to-old':'Newest first','old-to-new':'Oldest first','a-z':'A to Z','z-a':'Z to A',layout:'Layout','layout-label':'Change block layout',gallery:'Gallery',slider:'Slider',list:'List'},slider:{'scroll-left':'Scroll left','scroll-right':'Scroll right'}},realm:{'page-settings':'Page settings','edit-page-content':'Edit page content','add-sub-page':'Add subpage','missing-name':'Missing name','user-realm':{'my-page':'My page','note-label':'User page','note-body':'This is a personal user page which is managed by {{user}}. They are responsible for all contents.\\n',create:{'currently-none':'You don\\'t currently have a personal page.',heading:'Create your own page','what-you-can-do':'On your personal page, you can freely arrange videos, text, and other elements. This allows you to better present and share your content. You can even create subpages to create your own small video-portal.\\n','available-at':'Your page will be available at:','find-and-delete':'Anyone who has this link or knows your username can visit your page. However, it will not appear anywhere in main navigation of this video portal. You can always delete your page later, should you change your mind.\\n',button:'Create your own page'}}},search:{'input-label':'Search',title:'Search results for <i>{{query}}</i> ({{count}} hits)','no-query':'Search results','no-results':'No results','too-few-characters':'Please type more characters to start the search.',unavailable:'The search is currently unavailable. Try again later.',filter:{all:'All',event:'Videos',realm:'Pages',series:'Series'},'select-time-frame':'Select time frame','clear-time-frame':'Clear time frame'},upload:{title:'Upload video','drop-to-upload':'Drag and drop video file to upload','not-authorized':'You do not have the permission to upload videos.','select-files':'Select file',reselect:'Reselect file','too-many-files':'You selected too many files. Currently, only a single file is supported.','not-a-file':'You dropped something that\\'s not a file.','not-video-or-audio':'Only video and audio can be uploaded.',starting:'Starting...',finishing:'Finishing up...','waiting-for-metadata':'Please save video information to finish the upload',cancel:'Cancel upload','upload-cancelled':'The upload was cancelled.','still-uploading':'Video is still uploading. Please do not close this page before the upload is finished.\\n','time-estimate':{'a-few-seconds':'a few seconds','a-minute':'a minute','an-hour':'an hour',seconds:'seconds',minutes:'minutes',hours:'hours','time-left':'{{time}} left'},finished:'Your video was uploaded successfully and is now being processed. It can be watched as soon as processing is done. You may close this page now.\\n',metadata:{title:'Video title',description:'Description',required:'required',save:'Save and finish','note-writable-series':'Videos can only be uploaded into series for which you have write-access. Other series are therefore not listed as selectable here.\\n'},errors:{'failed-to-upload':'Failed to upload video.',unknown:'Unknown error occurred during video upload.','field-required':'This field is required (cannot be empty).','opencast-server-error':'Opencast server error (unexpected response).','opencast-unreachable':'Network error: Opencast cannot be reached.','jwt-invalid':'Internal cross-authentication error: Opencast did not authorize the upload.'}},acl:{'unknown-user-note':'unknown','no-entries':'No entries','admin-user':'Admin',groups:{admins:'Administrators',everyone:'Everyone','logged-in-users':'Logged in users','global-page-admins':'Global page admins'}},manage:{access:{'authorized-groups':'Authorized groups','authorized-users':'Authorized users','users-no-options':{'initial-searchable':'Type to search for users by name (or enter exact email/username)','none-found-searchable':'No user found','initial-not-searchable':'Enter username or email of the person you want to add','none-found-not-searchable':'No user with that username/email found'},select:{groups:'Add groups',users:'Add users',create:'Create {{item}}'},table:{group:'Group',user:'User',yourself:'You','subset-warning':'This selection is already included in the following group(s): {{groups}}.',inherited:'Inherited permissions:','inherited-tooltip':'The following permissions were granted in a higher level page and are inherited to all subpages.\\n',actions:{title:'Actions',read:'Read','read-description':'Can watch the video and view metadata.',write:'Read and write','write-description':'Can also edit and delete the video, metadata and other details.',moderate:'Moderator','moderate-description':'Can edit content, add subpages and change the name and subpage order.',admin:'Page admin','admin-description':'Can moderate, delete pages and edit permissions.',unknown:'Unknown permission','unknown-description':'This permission isn\\'t known.','write-access':'write-access','moderate-access':'moderating-rights','admin-access':'page admin-rights','large-group-warning':'You are giving {{val}} to a large group. Is this intentional?'}},unlisted:{note:'This video is unlisted.',explanation:'An unlisted video can only be found by sharing its direct link or via its series.\\n'},'reset-modal':{label:'Reset',title:'Reset changes?',body:'The changes you have made will be reset.'},'save-modal':{title:'Remove own access?','disclaimer-write':'The current selection will remove your write-access. Without this, you will lose the ability to make any further edits.','disclaimer-admin':'The current selection will remove your page admin-rights. Without these, you can no longer edit these permissions, change the realm path, or delete the page.',confirm:'Confirm'}},dashboard:{title:'Dashboard','upload-tile':'Here you can upload a new video from your computer.','studio-tile-title':'Record video','studio-tile-body':'Create videos by recording your screen, webcam and microphone.\\n','my-videos-tile':'Here you can view and edit your videos.','user-realm-tile':'On your personal pages, you can arrange videos, text, and other elements.\\n','manage-pages-tile-title':'Manage pages','manage-pages-tile-body':'To rename, modify, and delete pages, navigate to the page in question. If you are logged in and have the necessary permissions, page management buttons will appear.\\n'},'my-videos':{title:'My videos',navigation:{first:'First page',previous:'Previous page',next:'Next page',last:'Last page'},columns:{description:'Sort by {{title}}, {{direction}}',ascending:'ascending',descending:'descending',title:'Title',created:'Created'},'no-description':'No description','page-showing-video-ids':'{{start}}–{{end}} of {{total}}','no-videos-found':'No videos found.',details:{title:'Video details','share-direct-link':'Share via direct link','set-time':'Start at: ','copy-direct-link-to-clipboard':'Copy video link to clipboard','open-in-editor':'Open in video editor','referencing-pages':'Referencing pages','referencing-pages-explanation':'This video is referenced on the following pages:','no-referencing-pages':'No pages reference this video.','delete':{title:'Delete Video',confirm:'Delete Video?','cannot-be-undone':'This action <strong>cannot</strong> be undone!',failed:'Deleting the video failed.','failed-maybe':'Deleting the video possibly failed.',pending:'Deletion is pending.',tooltip:{failed:'The deletion was requested {{time}} but still has not happened, so it might have failed.\\n',pending:'The deletion of this video was requested in Opencast and it will be removed from this list upon success.\\n'}}},acl:{title:'Access policy'},'technical-details':{title:'Technical details',tracks:'Video/audio tracks',video:'Video',audio:'Audio','unknown-mimetype':'Unknown MIME type','opencast-id':'Opencast ID','copy-oc-id-to-clipboard':'Copy Opencast-ID to clipboard','further-info':'Further information',synced:'Synchronized?','part-of':'Part of:','is-live':'Live?'}},'are-you-sure':'Are you sure?',realm:{'invalid-path':'Error: invalid path to page. Was the page deleted or its path changed?\\n',heading:'Settings of page “{{realm}}”','heading-root':'Homepage settings','descendants-count':'This page has {{count}} direct and indirect subpages.','view-page':'Go to page','name-must-not-be-empty':'Name must not be empty.','path-must-not-be-empty':'Path segment must not be empty.','path-too-short':'Path segment must be at least two characters long.','no-control-in-path':'Path segments may not include control characters.','no-space-in-path':'Path segments may not include whitespace characters.','illegal-chars-in-path':'Path segment may not include the following characters: {{illegalChars}}\\n','reserved-char-in-path':'Path segment may not start with the following characters: {{reservedChars}}\\n',general:{'page-name':'Page name','name-directly':'Name directly','name-directly-description':'Set a fixed name for this page.','name-from-block':'Derive name from video or series','name-from-block-description':'Link a video/series-element from this page: the page name will always be the title of the linked element.\\n','no-blocks':'There are no linkable video/series on this page.','rename-failed':'Failed to change the name.','no-rename-root':'The homepage cannot be renamed. The heading is controlled by the global site title setting.\\n'},children:{heading:'Order of subpages','sort-alphabetically-asc':'Sort alphabetically ascending','sort-alphabetically-desc':'Sort alphabetically descending','order-manually':'Manually order (new subpages will be added at the end)',failed:'Changing the order failed.','move-up':'Move up','move-down':'Move down'},permissions:{heading:'Manage permissions'},'danger-zone':{heading:'Danger zone','root-note':'The homepage cannot be deleted or moved, nor can its path be changed.','change-path':{heading:'Change path',button:'Change path segment',failed:'Changing the path failed.','cannot-userrealm':'The path of your personal page cannot be changed.',warning:'Important: Changing the path of this page invalidates all links to this page, to all direct or indirect subpages, and to all videos linked on any of those pages. Old links, e.g. in personal browser-bookmarks or published somewhere, won\\'t work anymore.\\n'},'delete':{heading:'Delete page',button:'Delete this page and <strong>{{numSubPages}}</strong> subpages','button-single':'Delete page','cannot-be-undone':'This action <strong>cannot</strong> be undone!','confirm-removal':'Delete page?',failed:'Deleting the page failed.',warning:'Deleting this page will also automatically delete all direct and indirect subpages, as well as all content of these pages. This cannot be undone!\\n'}},content:{heading:'Edit page “{{realm}}”','heading-root':'Edit homepage','view-page':'View page',add:'Insert a new block here','add-popup-title':'Add new','add-title':'Title','add-text':'Text','add-series':'Series','add-video':'Video','add-playlist':'Playlist','move-down':'Move block down','move-up':'Move block up',edit:'Edit block',remove:'Remove block','confirm-removal':'Remove block?','cannot-remove-block':'Cannot remove block','cannot-remove-name-source-block':'Removal not possible as the current page derives its name from this block. In order to remove this block, change the name of this page in the page settings.\\n',title:{content:'Title'},text:{content:'You can add your text content here. You can also use Markdown.'},series:{series:{heading:'Series',invalid:'Please select a series','findable-series-note':'You can only select series here which are listed or which you have write-access to.\\n'},metadata:{heading:'Metadata'}},playlist:{playlist:{heading:'Playlist',invalid:'Please select a playlist','findable-playlist-note':'You can only select playlists here which are listed or which you have write-access to.\\n'},metadata:{heading:'Metadata'}},event:{event:{heading:'Event',invalid:'Please select an event','findable-events-note':'You can only select videos here which are listed or which you have write-access to.\\n','no-read-access-to-current':'You do not have read access to the video that is currently referenced here.\\n'}},'show-title':'Show title','show-link':'Show link to video page','show-description':'Show description','display-options':'Display options',cancel:'Discard','confirm-cancel':'Discard changes?','cancel-warning':'Your changes have not yet been saved!','removing-failed':'Removing failed.','moving-failed':'Moving failed.','saving-failed':'Saving your changes failed.'}},'add-child':{heading:'Add page','path-segment':'Path segment','below-this-parent':'The new page will be added below <strong>“{{parent}}”</strong>.','below-root':'The new page will be added directly below the homepage.','button-create-page':'Create page','failed-to-add':'Failed to create page.','page-name-info':'The page name is shown in the navigation menu and as heading on the page itself. You can change the page name at any time.\\n','path-segment-info':'The path segment appears in the URL/link to the new page. Try keeping it rather short and don\\'t repeat information already contained in preceding path segments. Changing the path segment later should be avoided. <br /> Path segments must not contain whitespace nor <code>{{illegalChars}}</code> and they must not start with <code>{{reservedChars}}</code>.\\n'}},'api-remote-errors':{view:{event:'You are not authorized to view this video.',playlist:'You are not authorized to view this playlist.'},upload:{'not-logged-in':'You have to be logged in to upload videos.','not-authorized':'$t(upload.not-authorized)'},mutation:{'not-logged-in':'You have to be logged in to perform this action.','not-a-tobira-admin':'You have to be a Tobira admin to perform this action.'},realm:{'path-is-reserved':'The chosen path is reserved and cannot be used for pages.','path-collision':'A page with this path already exists.','no-moderator-rights':'You are not allowed to modify this page.','no-page-admin-rights':'You are not allowed to carry out this action.','cannot-create-user-realm':'You are not allowed to create your own page.','user-realm-already-exists':'Your own page already exists.','username-not-valid-as-path':'Your username \\'{{username}}\\' contains characters that are not allowed in page paths, thus you cannot create your own page. Contact a system administrator for further assistance.\\n'},event:{'delete':{'not-found':'The video you are trying to delete does not exist. It might have been removed already.\\n','not-allowed':'You are not allowed to delete this video.'}}},embed:{'not-supported':'This page can\\'t be embedded.'}};","export default {general:{language:{language_one:'Sprache',language_other:'Sprachen',name:'Deutsch',selection:'Sprachauswahl, Deutsch ausgewählt'},loading:'Lade...',home:'Startseite',homepage:'Startseite',page:'Seite','leave-page-confirmation':'Seite verlassen? Vorgenommene Änderungen sind möglicherweise noch nicht gespeichert!\\n',action:{close:'Schließen',cancel:'Abbrechen',save:'Speichern',back:'Zurück','goto-homepage':'Zur Startseite',share:'Teilen'},'version-information':'Version','logo-alt':'Startseite von „{{title}}“','no-root-children':'Noch keine Seiten','failed-to-load-thumbnail':'Konnte Vorschaubild nicht laden',yes:'Ja',no:'Nein',form:{'this-field-is-required':'Dieses Feld ist erforderlich.',select:{'no-options':'Keine Optionen','select-option':'Option auswählen'}}},welcome:{title:'Willkommen zu Tobira!',body:'Die Hauptseite scheint noch leer zu sein. Um Inhalte oder weitere Seiten hinzuzufügen, melden Sie sich mit einem Konto mit ausreichenden Rechten an. Danach finden Sie auf der linken Seite Schaltflächen zum Editieren von Seiten.\\n'},errors:{'not-your-fault':'Dies ist höchstwahrscheinlich nicht Ihre Schuld. Sie können es später nochmal versuchen.\\n','unexpected-response':'Interner Fehler: Unerwartete Antwort vom Server.','unexpected-server-error':'Interner Fehler: Unerwarteter Fehler vom Server.','network-error':'Server konnte aufgrund eines Netzwerkfehlers nicht erreicht werden.','not-authorized':'Sie sind nicht autorisiert.','not-authorized-to-view-page':'Sie sind nicht dazu autorisiert, diese Seite aufzurufen.','might-need-to-login':'Sie müssen sich möglicherweise einloggen.','might-need-to-login-link':'Sie müssen sich möglicherweise <1>einloggen</1>.','invalid-input':'Ungültige Eingabe.','opencast-unavailable':'Opencast ist momentan nicht erreichbar.','internal-server-error':'Interner Server-Fehler (es ist ein Problem mit dem Server aufgetreten).','are-you-connected-to-internet':'Sind Sie mit dem Internet verbunden?',unknown:'Unbekannter Fehler.','detailed-error-info':'Detaillierte Fehlerinformationen für Entwickler',embedded:'In der eingebetteten Anwendung ist ein Fehler aufgetreten.'},'not-found':{'page-not-found':'Seite nicht gefunden','video-not-found':'Video nicht gefunden','series-not-found':'Serie nicht gefunden','playlist-not-found':'Playlist nicht gefunden','page-explanation':'Die von Ihnen gewünschte Seite existiert nicht. Sie wurde möglicherweise gelöscht oder umbenannt.\\n','video-explanation':'Das von Ihnen gewünschte Video existiert nicht. Es wurde möglicherweise gelöscht oder verschoben.\\n','series-explanation':'Die von Ihnen gewünschte Serie existiert nicht. Sie wurde möglicherweise gelöscht oder verschoben.\\n','playlist-explanation':'Die von Ihnen gewünschte Playlist existiert nicht. Sie wurde möglicherweise gelöscht oder verschoben.\\n','url-typo':'Falls Sie die Adresse/URL manuell eingegeben haben, prüfen Sie diese auf Fehler.\\n',actions:'Sie können versuchen <1>die Startseite</1> zu besuchen oder die Suche zu benutzen, um die gewünschte Seite zu finden.\\n'},'invalid-url':{title:'Ungültige Adresse',description:'Die von Ihnen eingegebene URL ist nicht gültig. Haben Sie diese per Hand eingegeben, überprüfen Sie sie bitte auf Tippfehler und unerlaubte Zeichen. Sind Sie hingegen einem Link gefolgt, wenden Sie sich an die entsprechende Stelle, die diesen veröffentlicht hat.\\n'},'about-tobira':{title:'Informationen über „Tobira“',body:'Dieses Videoportal nutzt Tobira, eine Videoportal-Software für Opencast. Es erlaubt seinen Nutzern, alle Videos und Serien aus der verbundenen Opencast-Instanz zu durchstöbern, anzuschauen und zu organisieren. Tobira, wie auch Opencast selber, ist kostenlose Open-Source-Software. Weitere Informationen und die Möglichkeit, Fehler zu melden, gibt es im <1>GitHub-Repository des Projekts</1>.\\n'},footer:{'about-tobira':'Über Tobira'},'main-menu':{label:'Menü','color-scheme':{label:'Farbschema',auto:'Auto',light:'Hell',dark:'Dunkel'}},user:{login:'Anmelden',logout:'Abmelden',settings:'Nutzereinstellungen','manage-content':'Verwalten'},'login-page':{heading:'Anmeldung','user-id':'Nutzerkennung',password:'Passwort','bad-credentials':'Anmeldung fehlgeschlagen: Falsche Anmeldedaten.','unexpected-response':'$t(errors.unexpected-response) $t(errors.not-your-fault)','already-logged-in':'Sie sind bereits angemeldet.'},video:{video:'Video','video-page':'Video Seite: „{{video}}“',created:'Erstellt',updated:'Zuletzt verändert',duration:'Abspielzeit',link:'Zur Videoseite','part-of-series':'Teil der Serie','more-from-series':'Mehr von „{{series}}“','more-from-playlist':'Mehr von “{{playlist}}”','deleted-video-block':'Das hier referenzierte Video wurde gelöscht.','not-allowed-video-block':'Sie sind nicht autorisiert, das hier eingebettete Video zu sehen.','not-ready':{title:'Video noch nicht verarbeitet',text:'Das gewünschte Video ist leider noch nicht vollständig verarbeitet worden. Dies sollte in Kürze automatisch passieren. Versuchen Sie es in wenigen Minuten noch einmal.\\n',label:'unverarbeitet'},'thumbnail-for':'Vorschaubild für „{{video}}“',live:'Live',upcoming:'Anstehend',ended:'Beendet',license:'Lizenz',source:'Quelle','stream-ended':'Dieser Stream ist beendet.','stream-not-started-yet':'Dieser Stream hat noch nicht begonnen.',started:'Gestartet','started-when':'Gestartet {{duration}}',starts:'Startet','starts-in':'Startet {{duration}}',description:{'show-more':'...mehr anzeigen','show-less':'Weniger anzeigen'},embed:{'copy-embed-code-to-clipboard':'Einbettungscode in Zwischenablage kopieren'},rss:{'copy-link-to-clipboard':'RSS Link in Zwischenablage kopieren'},caption:'Untertitel',download:{title:'Download',presenter:'Video (Sprecher:in)',slides:'Video (Präsentation)',info:'Hier können Sie das/die Video(s) in unterschiedlichen Formaten/Auflösungen herunterladen  (Rechtsklick - Speichern unter).\\n'},manage:'Verwalten',start:'Anfang',end:'Ende',ends:'Endet',share:{title:'$t(video.share.{{title}})','share-video':'Video teilen','direct-link':'Direktlink',main:'Link',embed:'Einbetten',rss:'RSS','show-qr-code':'QR Code anzeigen'}},playlist:{'deleted-playlist-block':'Die hier referenzierte Playlist wurde gelöscht.','not-allowed-playlist-block':'Sie sind nicht autorisiert, die hier eingebettete Playlist zu sehen.'},series:{series:'Serie',deleted:'Gelöschte Serie','deleted-series-block':'Die hier referenzierte Serie wurde gelöscht.','entry-of-series-thumbnail':'Vorschlaubild für Teil von „{{series}}“','not-ready':{title:'Serie noch nicht synchronisiert',text:'Die Daten der gewünschten Serie wurden leider noch nicht vollständig übertragen. Dies sollte in Kürze automatisch passieren. Versuchen Sie es in wenigen Minuten noch einmal!\\n'}},'videolist-block':{'upcoming-live-streams':'Anstehende Livestreams ({{count}})','missing-video':'Video nicht gefunden','no-videos':'Keine Videos',unauthorized:'Fehlende Berechtigung','hidden-items':{unauthorized_one:'Für ein Video fehlen Ihnen die Zugriffsrechte.',unauthorized_other:'Für {{count}} Videos fehlen Ihnen die Zugriffsrechte.',missing_one:'Ein Video wurde nicht gefunden.',missing_other:'{{count}} Videos wurden nicht gefunden.'},videos:{heading:'Videos'},settings:{order:'Reihenfolge','order-label':'Video Reihenfolge auswählen',original:'Wie Playlist','new-to-old':'Neueste zuerst','old-to-new':'Älteste zuerst','a-z':'A bis Z','z-a':'Z bis A',layout:'Ansicht','layout-label':'Blockansicht ändern',gallery:'Galerie',slider:'Slider',list:'Liste'},slider:{'scroll-left':'Nach links scrollen','scroll-right':'Nach rechts scrollen'}},realm:{'page-settings':'Seiteneinstellungen','edit-page-content':'Seiteninhalt bearbeiten','add-sub-page':'Unterseite hinzufügen','missing-name':'Fehlender Name','user-realm':{'my-page':'Meine Seite','note-label':'Nutzerseite','note-body':'Dies ist eine persönliche Nutzerseite, die allein von {{user}} gepflegt wird. Für alle Inhalte ist {{user}} verantwortlich.\\n',create:{'currently-none':'Sie haben zurzeit keine persönliche Seite.',heading:'Persönliche Seite erstellen','what-you-can-do':'Auf Ihrer persönlichen Seite können Sie frei Videos, Text und andere Elemente anordnen, um so Inhalte besser präsentieren und teilen zu können. Sie können sogar Unterseiten anlegen, um Ihr eigenes kleines Videoportal zu erstellen.\\n','available-at':'Ihre Seite wird unter folgendem Link verfügbar sein:','find-and-delete':'Alle, die diesen Link oder Ihren Benutzernamen kennen, können Ihre Seite besuchen. Ihre Seite wird jedoch nicht in der Hauptnavigation dieses Videoportals auftauchen. Sie können Ihre Seite später jederzeit wieder löschen.\\n',button:'Persönliche Seite erstellen'}}},search:{'input-label':'Suche',title:'Suchergebnisse für <i>{{query}}</i> ({{count}} Treffer)','no-query':'Suchergebnisse','no-results':'Keine Ergebnisse','too-few-characters':'Tippen Sie weitere Zeichen, um die Suche zu starten.',unavailable:'Die Suchfunktion ist zurzeit nicht verfügbar. Versuchen Sie es später erneut.',filter:{all:'Alle',event:'Videos',realm:'Seiten',series:'Serien'},'select-time-frame':'Zeitraum auswählen','clear-time-frame':'Zeitraum zurücksetzen'},upload:{title:'Video hochladen','drop-to-upload':'Videodatei zum Hochladen per Drag-and-drop hinzufügen','not-authorized':'Sie haben nicht die Berechtigung, Videos hochzuladen.','select-files':'Datei auswählen',reselect:'Datei erneut auswählen','too-many-files':'Sie haben zu viele Dateien ausgewählt. Zurzeit werden nur einzelne Dateien unterstützt.\\n','not-a-file':'Sie haben etwas in diesen Bereich gezogen, das keine Datei ist.','not-video-or-audio':'Nur Video- und Audiodateien können hochgeladen werden.',starting:'Starte Upload...',finishing:'Schließe Upload ab...','waiting-for-metadata':'Zum Fertigstellen bitte Videoinformationen speichern',cancel:'Upload abbrechen','upload-cancelled':'Der Upload wurde abgebrochen.','still-uploading':'Video lädt hoch. Bitte schließen Sie diese Seite nicht, bevor der Upload beendet ist.\\n','time-estimate':{'a-few-seconds':'wenige Sekunden','a-minute':'eine Minute','an-hour':'eine Stunde',seconds:'Sekunden',minutes:'Minuten',hours:'Stunden','time-left':'{{time}} verbleibend'},finished:'Ihr Video wurde erfolgreich hochgeladen und wird nun verarbeitet. Es kann wie gewohnt angeschaut werden, sobald die Verarbeitung abgeschlossen ist. Sie können diese Seite jetzt schließen.\\n',metadata:{title:'Videotitel',description:'Beschreibung',required:'Pflichtfeld',save:'Speichern und fertigstellen','note-writable-series':'Sie können Videos nur in Serien hochladen, auf die Sie Schreibzugriff haben. Andere Serien sind daher hier nicht auswählbar.\\n'},errors:{'failed-to-upload':'Hochladen fehlgeschlagen.',unknown:'Während des Dateiuploads ist ein unbekannter Fehler aufgetreten.','field-required':'Dieses Feld darf nicht leer sein.','opencast-server-error':'Opencast-Server-Fehler (unerwartete Antwort).','opencast-unreachable':'Netzwerkfehler: Opencast kann nicht erreicht werden.','jwt-invalid':'Interner Fremdauthentifizierungsfehler: Opencast hat das Hochladen nicht autorisiert.'}},acl:{'unknown-user-note':'unbekannt','no-entries':'Keine Einträge','admin-user':'Admin',groups:{admins:'Administration',everyone:'Alle','logged-in-users':'Eingeloggte Nutzende','global-page-admins':'Globale Seitenadministration'}},manage:{access:{'authorized-groups':'Autorisierte Gruppen','authorized-users':'Autorisierte Personen','users-no-options':{'initial-searchable':'Nach Name suchen oder exakten Nutzernamen/exakte E-Mail angeben','none-found-searchable':'Keine Personen gefunden','initial-not-searchable':'Geben Sie Nutzernamen oder E-Mail an, um Personen hinzuzufügen','none-found-not-searchable':'Keine Person mit diesem Nutzernamen bzw. dieser E-Mail gefunden'},select:{groups:'Gruppen hinzufügen',users:'Personen hinzufügen',create:'{{item}} erstellen'},table:{group:'Gruppe',user:'Person',yourself:'Sie','subset-warning':'Diese Auswahl ist bereits in den folgenden Gruppen enthalten: {{groups}}.',inherited:'Geerbte Berechtigungen:','inherited-tooltip':'Die folgenden Berechtigungen wurden auf einer übergeordneten Seite gewährt und werden auf alle Unterseiten vererbt.\\n',actions:{title:'Berechtigung',read:'Lesen','read-description_one':'Kann das Video anschauen und Metadaten sehen.','read-description_other':'Können das Video anschauen und Metadaten sehen.',write:'Lesen und schreiben','write-description_one':'Kann außerdem das Video editieren, löschen und Metadaten sowie andere Videodetails verändern.\\n','write-description_other':'Können außerdem das Video editieren, löschen und Metadaten sowie andere Videodetails verändern.\\n',moderate:'Moderation','moderate-description_one':'Kann Unterseiten hinzufügen, Inhalte und den Namen der Seite sowie die Reihenfolge der Unterseiten bearbeiten.\\n','moderate-description_other':'Können Unterseiten hinzufügen, Inhalte und den Namen der Seite sowie die Reihenfolge der Unterseiten bearbeiten.\\n',admin:'Seitenadmin','admin-description_one':'Kann moderieren, Seiten löschen und Berechtigungen bearbeiten.\\n','admin-description_other':'Können moderieren, Seiten löschen und Berechtigungen bearbeiten.\\n',unknown:'Unbekanntes Berechtigungsschema','unknown-description':'Dieses Berechtigungsschema ist nicht bekannt.','write-access':'Schreibzugriff','moderate-access':'Moderationsrechte','admin-access':'Adminrechte','large-group-warning':'Sie geben einer großen Gruppe {{val}}. Ist das beabsichtigt?'}},unlisted:{note:'Dieses Video ist ungelistet.',explanation:'Ein ungelistetes Video ist nur über seinen direkten Link oder seine Serie aufrufbar.\\n'},'reset-modal':{label:'Zurücksetzen',title:'Änderungen zurücksetzen?',body:'Von Ihnen getätigte Änderungen werden zurückgesetzt.'},'save-modal':{title:'Eigenen Zugriff entfernen?','disclaimer-write':'Die aktuelle Auswahl wird ihren Schreibzugriff entfernen. Ohne diesen werden Sie keine weiteren Änderungen vornehmen können.','disclaimer-admin':'Die aktuelle Auswahl wird ihre Verwaltungsrechte entfernen. Ohne diese werden Sie keine weiteren Änderungen an diesen Berechtigungen und dem Seitenpfad vornehmen können, und die Seite kann von Ihnen nicht mehr gelöscht werden.',confirm:'Bestätigen'}},dashboard:{title:'Dashboard','upload-tile':'Hier können Sie Videos von Ihrem Computer hochladen.','studio-tile-title':'Video aufnehmen','studio-tile-body':'Erstellen Sie Videos, indem Sie Ihren Bildschirm, Ihre Webcam und Ihr Mikrofonsignal aufzeichnen.\\n','my-videos-tile':'Hier finden Sie Ihre Videos und können diese verwalten und bearbeiten.','user-realm-tile':'Auf ihren persönlichen Seiten können Sie Videos, Text und andere Elemente anordnen.\\n','manage-pages-tile-title':'Seiten verwalten','manage-pages-tile-body':'Um Seiten zu bearbeiten, umzubenennen und zu löschen, navigieren Sie zu der gewünschten Seite. Solange Sie angemeldet sind und die benötigten Rechte haben, gibt es dort entsprechende Seitenverwaltungs-Buttons in der Seitenleiste bzw. im Menu.\\n'},'my-videos':{title:'Meine Videos',navigation:{first:'Erste Seite',previous:'Vorherige Seite',next:'Nächste Seite',last:'Letzte Seite'},columns:{description:'Sortieren nach {{title}}, {{direction}}',ascending:'aufsteigend',descending:'absteigend',title:'Titel',created:'Erstellt'},'no-description':'Keine Beschreibung','page-showing-video-ids':'{{start}}–{{end}} von {{total}}','no-videos-found':'Keine Videos gefunden.',details:{title:'Videodetails','share-direct-link':'Via Direktlink teilen','set-time':'Starten bei: ','copy-direct-link-to-clipboard':'Videolink in Zwischenablage kopieren','open-in-editor':'Im Videoeditor öffnen','referencing-pages':'Referenzierende Seiten','referencing-pages-explanation':'Dieses Video wird von den folgenden Seiten referenziert:','no-referencing-pages':'Dieses Video wird von keiner Seite referenziert.','delete':{title:'Video löschen',confirm:'Video löschen?','cannot-be-undone':'Diese Aktion kann <strong>nicht</strong> rückgängig gemacht werden!',failed:'Löschen fehlgeschlagen.','failed-maybe':'Löschen möglicherweise fehlgeschlagen.',pending:'Löschvorgang ausstehend.',tooltip:{failed:'Der Löschvorgang für dieses Video wurde {{time}} angesetzt, ist aber bisher nicht erfolgt und daher möglicherweise fehlgeschlagen.\\n',pending:'Der Löschvorgang dieses Videos in Opencast wurde angesetzt und es wird nach dessen Erfolg hier entfernt.\\n'}}},acl:{title:'Zugriffsrechte'},'technical-details':{title:'Technische Details',tracks:'Video-/Audiospuren',video:'Video',audio:'Audio','unknown-mimetype':'Unbekannter MIME-Type','opencast-id':'Opencast-ID','copy-oc-id-to-clipboard':'Opencast-ID in Zwischenablage kopieren','further-info':'Weitere Informationen',synced:'Synchronisiert?','part-of':'Teil von:','is-live':'Live?'}},'are-you-sure':'Sind Sie sich sicher?',realm:{'invalid-path':'Fehler: ungültiger Pfad zur Seite. Wurde die Seite gelöscht oder ihr Pfad geändert?\\n',heading:'Einstellungen zur Seite „{{realm}}“','heading-root':'Einstellungen zur Startseite','descendants-count':'Diese Seite besitzt {{count}} direkte und indirekte Unterseiten.','view-page':'Zur Seite','name-must-not-be-empty':'Name darf nicht leer sein.','path-must-not-be-empty':'Pfadsegment darf nicht leer sein.','path-too-short':'Pfadsegment muss mindestens zwei Zeichen lang sein.','no-control-in-path':'Pfadsegment darf keine Kontrollzeichen enthalten.','no-space-in-path':'Pfadsegment darf keine Leerzeichen enthalten.','illegal-chars-in-path':'Pfadsegment darf nicht folgende Zeichen enthalten: {{illegalChars}}\\n','reserved-char-in-path':'Pfadsegment darf nicht mit den folgenden Zeichen beginnen: {{reservedChars}}\\n',general:{'page-name':'Seitenname','name-directly':'Direkt benennen','name-directly-description':'Festen Namen für diese Seite vergeben.','name-from-block':'Name von Video oder Serie beziehen','name-from-block-description':'Video/Serie-Element von dieser Seite verknüpfen, sodass der Seitenname immer dem Titel des verknüpften Elements entspricht.\\n','no-blocks':'Auf dieser Seite befinden sich keine verknüpfbaren Videos/Serien.','rename-failed':'Änderung des Namen fehlgeschlagen.','no-rename-root':'Der Name der Startseite kann nicht geändert werden. Die Überschrift wird von der globalen Seitentitel-Einstellung kontrolliert.\\n'},children:{heading:'Reihenfolge Unterseiten','sort-alphabetically-asc':'Alphabetisch aufsteigend sortieren','sort-alphabetically-desc':'Alphabetisch absteigend sortieren','order-manually':'Manuell ordnen (neue Unterseiten werden hinten angehangen)',failed:'Änderung fehlgeschlagen.','move-up':'Hoch schieben','move-down':'Runter schieben'},permissions:{heading:'Berechtigungen verwalten'},'danger-zone':{heading:'Gefahrenbereich','root-note':'Die Startseite kann nicht gelöscht oder verschoben werden. Auch der Pfad kann nicht geändert werden.\\n','change-path':{heading:'Pfad ändern',button:'Pfadsegment ändern',failed:'Änderung des Pfades fehlgeschlagen.','cannot-userrealm':'Der Pfad Ihrer persönlichen Seite kann nicht geändert werden.',warning:'Wichtig: Wenn Sie den Pfad ändern, invalidieren Sie damit alle bisherigen Links zu dieser Seite, zu allen direkten und indirekten Unterseiten, und zu allen Videos, die auf diesen eingebunden sind. Alte Links funktionieren dann nicht mehr. Das betrifft persönliche Browser-Lesezeichen wie auch bereits veröffentlichte Links.\\n'},'delete':{heading:'Seite löschen',button:'Diese Seite und <strong>{{numSubPages}}</strong> Unterseiten löschen','button-single':'Seite löschen','cannot-be-undone':'Diese Aktion kann <strong>nicht</strong> rückgängig gemacht werden!','confirm-removal':'Seite löschen?',failed:'Löschung fehlgeschlagen.',warning:'Wenn Sie diese Seite löschen, werden automatisch alle direkten und indirekten Unterseiten sowie alle Inhalte dieser Seiten mitgelöscht. Die Löschung kann nicht wieder rückgängig gemacht werden!\\n'}},content:{heading:'Seite „{{realm}}“ bearbeiten','heading-root':'Startseite bearbeiten','view-page':'Seite ansehen',add:'Hier einen neuen Block einfügen','add-popup-title':'Neu hinzufügen','add-title':'Titel','add-text':'Text','add-series':'Serie','add-video':'Video','add-playlist':'Playlist','move-down':'Block nach unten verschieben','move-up':'Block nach oben verschieben',edit:'Block bearbeiten',remove:'Block entfernen','confirm-removal':'Block entfernen?','cannot-remove-block':'Block nicht entfernbar','cannot-remove-name-source-block':'Entfernen nicht möglich, da diese Seite ihren Namen von diesem Block bezieht. Um den Block zu entfernen, müssen Sie zuerst den Seitennamen in den Seiteneinstellungen ändern.\\n',title:{content:'Titel'},text:{content:'Hier können Sie Ihren Text einfügen. Sie können auch Markdown verwenden.'},series:{series:{heading:'Serie',invalid:'Bitte eine Serie auswählen','findable-series-note':'Sie können hier nur Serien wählen, die gelistet sind oder auf die Sie Schreibzugriff haben.\\n'},metadata:{heading:'Metadaten'}},playlist:{playlist:{heading:'Playlist',invalid:'Bitte eine Playlist auswählen','findable-playlist-note':'Sie können hier nur Playlisten wählen, die gelistet sind oder auf die Sie Schreibzugriff haben.\\n'},metadata:{heading:'Metadaten'}},event:{event:{heading:'Video',invalid:'Bitte ein Video auswählen','findable-events-note':'Sie können hier nur Videos wählen, die gelistet sind oder auf die Sie Schreibzugriff haben.\\n','no-read-access-to-current':'Sie haben keinen Lesezugriff zu dem derzeit verlinkten Video.\\n'}},'show-title':'Titel anzeigen','show-link':'Link zur Videoseite anzeigen','show-description':'Beschreibung anzeigen','display-options':'Anzeigeoptionen',cancel:'Verwerfen','confirm-cancel':'Änderungen verwerfen?','cancel-warning':'Ihre Änderungen wurden noch nicht gespeichert!','removing-failed':'Entfernen ist fehlgeschlagen.','moving-failed':'Verschieben ist fehlgeschlagen.','saving-failed':'Speichern Ihrer Änderungen ist fehlgeschlagen.'}},'add-child':{heading:'Seite hinzufügen','path-segment':'Pfadsegment','below-this-parent':'Die neue Seite wird unter <strong>„{{parent}}“</strong> hinzugefügt.','below-root':'Die neue Seite wird direkt unter der Startseite hinzugefügt.','button-create-page':'Seite erstellen','failed-to-add':'Seite konnte nicht erstellt werden.','page-name-info':'Der Seitename wird im Navigationsmenü und als Überschrift auf der Seite selber angezeigt. Seitennamen können jederzeit geändert werden.\\n','path-segment-info':'Das Pfadsegment wird Teil der URL/des Links der neuen Seite. Pfadsegmente sollten möglichst kurz sein und keine Information aus vorangehenden Pfadsegmenten wiederholen. Eine spätere Änderung sollte vermieden werden. <br /> Pfadsegmente dürfen weder Leerzeichen noch <code>{{illegalChars}}</code> enthalten und nicht mit <code>{{reservedChars}}</code> beginnen.\\n'}},'api-remote-errors':{view:{event:'Sie sind nicht autorisiert, dieses Video zu sehen.',playlist:'Sie sind nicht autorisiert, diese Playlist zu sehen.'},upload:{'not-logged-in':'Sie müssen angemeldet sein, um Videos hochzuladen.','not-authorized':'$t(upload.not-authorized)'},mutation:{'not-logged-in':'Sie müssen eingeloggt sein, um diese Aktion auszuführen.','not-a-tobira-admin':'Sie müssen Tobira Admin sein, um diese Aktion auszuführen.'},realm:{'path-is-reserved':'Dieser Pfad ist reserviert und kann nicht für Seiten genutzt werden.','path-collision':'Eine Seite mit diesem Pfad existiert bereits.','no-moderator-rights':'Sie haben nicht die Berechtigung, diese Seite zu bearbeiten.','no-page-admin-rights':'Sie haben nicht die Berechtigung, diese Aktion durchzuführen.','cannot-create-user-realm':'Sie haben nicht die Berechtigung, eine persönliche Seite anzulegen.','user-realm-already-exists':'Ihre persönliche Seite existiert bereits.','username-not-valid-as-path':'Ihr Nutzername \\'{{username}}\\' enthält Zeichen, die nicht in Seitenpfaden erlaubt sind. Daher können Sie sich keine persönliche Seite anlegen. Kontaktieren Sie einen Systemadministrator für weitere Unterstützung.\\n'},event:{'delete':{'not-found':'Das zu löschende Video existiert nicht. Möglicherweise wurde es bereits entfernt.','not-allowed':'Sie haben nicht die Berechtigung, dieses Video zu löschen.'}}},embed:{'not-supported':'Diese Seite kann nicht eingebettet werden.'}};","import { useTranslation } from \"react-i18next\";\nimport CONFIG from \"../config\";\nimport { Link } from \"../router\";\nimport { translatedConfig } from \"../util\";\nimport { COLORS } from \"../color\";\nimport { AboutRoute } from \"../routes/About\";\n\n\nexport const Footer: React.FC = () => {\n    const { t, i18n } = useTranslation();\n\n    return (\n        <footer css={{\n            backgroundColor: COLORS.neutral10,\n            padding: 16,\n            fontSize: 14,\n            textAlign: \"center\",\n        }}>\n            <ul css={{\n                listStyle: \"none\",\n                margin: 0,\n                padding: 0,\n                display: \"flex\",\n                justifyContent: \"center\",\n                flexWrap: \"wrap\",\n                \"& > li\": {\n                    \"&:not(:first-child):before\": {\n                        content: \"\\\"•\\\"\",\n                        color: COLORS.neutral60,\n                        margin: \"0 12px\",\n                    },\n                    a: {\n                        borderRadius: 4,\n                        outlineOffset: 1,\n                    },\n                },\n            }}>\n                {CONFIG.footerLinks.map((entry, i) => {\n                    if (entry === \"about\") {\n                        return <li key={i}>\n                            <Link to={AboutRoute.url}>{t(\"footer.about-tobira\")}</Link>\n                        </li>;\n                    } else if (entry === \"graphiql\") {\n                        return <li key={i}>\n                            <Link to=\"/~graphiql\" htmlLink>Graph<em>i</em>QL</Link>\n                        </li>;\n                    } else {\n                        return <li key={i}>\n                            <Link to={\n                                typeof entry.link === \"string\"\n                                    ? entry.link\n                                    : translatedConfig(entry.link, i18n)\n                            }>\n                                {translatedConfig(entry.label, i18n)}\n                            </Link>\n                        </li>;\n                    }\n                })}\n            </ul>\n        </footer>\n    );\n};\n","import React, { ReactNode, useContext, useState } from \"react\";\n\nimport { bug } from \"@opencast/appkit\";\n\n\ntype MenuState = \"closed\" | \"burger\" | \"search\";\ntype SetMenuState = React.Dispatch<React.SetStateAction<MenuState>>;\nclass Menu {\n    public readonly state: MenuState;\n    private readonly setState: SetMenuState;\n\n    public constructor(state: MenuState, setState: SetMenuState) {\n        this.state = state;\n        this.setState = setState;\n    }\n\n    public close() {\n        this.setState(\"closed\");\n    }\n\n    public toggleMenu(menu: Exclude<MenuState, \"closed\">) {\n        this.setState(state => state === \"closed\" ? menu : \"closed\");\n    }\n}\n\nconst MenuContext = React.createContext<Menu>(new Menu(\"closed\", () => (\n    bug(\"missing menu state context provider\")\n)));\nexport const useMenu = (): Menu => useContext(MenuContext);\n\nexport const MenuProvider: React.FC<{ children: ReactNode }> = ({ children }) => {\n    const [state, setState] = useState<MenuState>(\"closed\");\n\n    return (\n        <MenuContext.Provider value={new Menu(state, setState)}>\n            {children}\n        </MenuContext.Provider>\n    );\n};\n","import React, { ReactNode } from \"react\";\nimport { LuChevronLeft, LuChevronRight, LuCornerLeftUp } from \"react-icons/lu\";\nimport { graphql, useFragment } from \"react-relay\";\n\nimport type { NavigationData$key } from \"./__generated__/NavigationData.graphql\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n    ellipsisOverflowCss,\n    focusStyle,\n    LinkList,\n    LinkWithIcon,\n    SIDE_BOX_BORDER_RADIUS,\n} from \"../ui\";\nimport { MissingRealmName, sortRealms } from \"../routes/util\";\nimport { COLORS } from \"../color\";\n\n\n/** The breakpoint, in pixels, where mobile/desktop navigations are swapped. */\nexport const BREAKPOINT = 880;\n\nexport type NavItems = [] | JSX.Element | [JSX.Element, JSX.Element];\n\ntype Props = {\n    fragRef: NavigationData$key;\n};\n\n/**\n * Navigation for realm pages. Shows all children of the current realm, as well\n * as the current realm name and a button to the parent. The `fragRef` is a\n * reference to a realm that has the data of the `NavigationData` fragment in\n * it.\n */\nexport const Nav: React.FC<Props> = ({ fragRef }) => {\n    const { t, i18n } = useTranslation();\n    const realm = useFragment(\n        graphql`\n            fragment NavigationData on Realm {\n                id\n                name\n                childOrder\n                isUserRoot\n                children { id name path }\n                parent { isMainRoot name path }\n            }\n        `,\n        fragRef,\n    );\n\n    const parent = realm.isUserRoot\n        ? {\n            path: \"/\",\n            name: t(\"general.home\"),\n            isMainRoot: true,\n        }\n        : realm.parent;\n    const hasRealmParent = parent != null;\n\n    // We expect all production instances to have more than the root realm. So\n    // we print this information instead of an empty div to avoid confusion.\n    if (realm.children.length === 0 && !hasRealmParent) {\n        return <div css={{ margin: \"8px 12px\" }}>{t(\"general.no-root-children\")}</div>;\n    }\n\n    const children = sortRealms(realm.children, realm.childOrder, i18n.language);\n\n    return <nav>\n        {hasRealmParent && <>\n            <LinkWithIcon\n                to={parent.path}\n                iconPos=\"left\"\n                css={{\n                    color: COLORS.neutral60,\n                    padding: \"10px 14px\",\n                    borderRadius: `${SIDE_BOX_BORDER_RADIUS}px ${SIDE_BOX_BORDER_RADIUS}px 0 0`,\n                    ...focusStyle({ inset: true }),\n                }}\n            >\n                {/* Show arrow and hide chevron in burger menu */}\n                <LuCornerLeftUp css={{ display: \"none\" }}/>\n                <LuChevronLeft />\n                {parent.isMainRoot ? t(\"general.home\") : parent.name ?? <MissingRealmName />}\n            </LinkWithIcon>\n            <div css={{\n                padding: \"8px 14px 8px 16px\",\n                color: COLORS.primary2,\n                backgroundColor: COLORS.neutral20,\n                border: `2px solid ${COLORS.neutral05}`,\n                borderLeft: \"none\",\n                borderRight: \"none\",\n            }}>{realm.name ?? <MissingRealmName />}</div>\n        </>}\n        <LinkList\n            items={children.map(child => (\n                <Item\n                    key={child.id}\n                    label={child.name ?? <MissingRealmName />}\n                    link={child.path}\n                />\n            ))}\n        />\n    </nav>;\n};\n\ntype ItemProps = {\n    label: ReactNode;\n    link: string;\n};\n\nconst Item: React.FC<ItemProps> = ({ label, link }) => (\n    <LinkWithIcon to={link} iconPos=\"right\">\n        <div css={ellipsisOverflowCss(3)}>{label}</div>\n        <LuChevronRight />\n    </LinkWithIcon>\n);\n","import { COLORS } from \"../color\";\n\ntype BurgerMenuProps = {\n    hide: () => void;\n    items: [] | readonly [JSX.Element] | readonly [JSX.Element, JSX.Element];\n};\n\nexport const BurgerMenu: React.FC<BurgerMenuProps> = ({ hide, items }) => (\n    <div\n        onClick={e => {\n            if (e.target === e.currentTarget) {\n                hide();\n            }\n        }}\n        css={{\n            position: \"absolute\",\n            top: \"var(--header-height)\",\n            bottom: 0,\n            left: 0,\n            right: 0,\n            zIndex: 1000,\n            backgroundColor: \"#000000a0\",\n        }}\n    >\n        <div tabIndex={-1} css={{\n            position: \"absolute\",\n            display: \"flex\",\n            flexDirection: \"column\",\n            justifyContent: \"space-between\",\n            top: 0,\n            right: 0,\n            backgroundColor: COLORS.neutral05,\n            height: \"100%\",\n            width: \"clamp(260px, 75%, 450px)\",\n            overflowY: \"auto\",\n            borderTop: `1px solid ${COLORS.neutral25}`,\n            \"> :nth-child(2)\": { marginTop: 26 },\n            li: {\n                borderRadius: 4,\n                margin: 8,\n                borderBottom: \"none\",\n                \"a, span, button\": {\n                    padding: 16,\n                    borderRadius: 4,\n                },\n            },\n            nav: {\n                \"> a\": {\n                    margin: 8,\n                    padding: \"12px 4px\",\n                    borderRadius: 4,\n                    \"svg:first-of-type\": {\n                        display: \"block\",\n                        fontSize: 24,\n                    },\n                    \"svg:last-of-type\": { display: \"none\" },\n                },\n                \"> div\": {\n                    backgroundColor: COLORS.neutral20,\n                    borderRadius: 4,\n                    border: \"none\",\n                    color: COLORS.primary2,\n                    padding: 16,\n                    margin: \"0 8px\",\n                    \"~ ul\": { marginLeft: 26 },\n                },\n            },\n        }}>\n            {items.length > 0 && <div>{items[0]}</div>}\n            {items.length > 1 && <>\n                <div>{items[1]}</div>\n            </>}\n        </div>\n    </div>\n);\n","import React, { ReactNode, Suspense } from \"react\";\nimport { keyframes } from \"@emotion/react\";\nimport { useTranslation } from \"react-i18next\";\nimport { screenWidthAtMost } from \"@opencast/appkit\";\n\nimport { Header } from \"./header\";\nimport { BREAKPOINT as NAV_BREAKPOINT, NavItems } from \"./Navigation\";\nimport { useMenu } from \"./MenuState\";\nimport { Footer } from \"./Footer\";\nimport { BurgerMenu } from \"./Burger\";\nimport { SideBox } from \"../ui\";\nimport { OUTER_CONTAINER_MARGIN } from \".\";\nimport { userDataFragment, UserProvider } from \"../User\";\nimport { GraphQLTaggedNode, PreloadedQuery, useFragment, usePreloadedQuery } from \"react-relay\";\nimport { OperationType } from \"relay-runtime\";\nimport { UserData$key } from \"../__generated__/UserData.graphql\";\nimport { useNoindexTag } from \"../util\";\n\n\nexport const MAIN_PADDING = 16;\n\ntype Props = {\n    nav: NavItems;\n    children: ReactNode;\n};\n\nexport const Root: React.FC<Props> = ({ nav, children }) => {\n    const menu = useMenu();\n    const navElements = Array.isArray(nav) ? nav : [nav] as const;\n    const navExists = navElements.length > 0;\n\n    return (\n        <Outer disableScrolling={menu.state === \"burger\"}>\n            <Header hideNavIcon={!navExists} />\n            {menu.state === \"burger\" && navExists && (\n                <BurgerMenu items={navElements} hide={() => menu.close()} />\n            )}\n            <Main>\n                {/* Sidebar */}\n                {navExists && <div css={{\n                    flex: \"1 0 12.5%\",\n                    minWidth: 240,\n                    maxWidth: 360,\n                    marginRight: 48,\n                    [screenWidthAtMost(NAV_BREAKPOINT)]: {\n                        display: \"none\",\n                    },\n                }}>\n                    {navElements.map((elem, i) => <SideBox key={i}>{elem}</SideBox>)}\n                </div>}\n\n                {/* Main part */}\n                <div css={{ width: \"100%\", minWidth: 0, flex: \"12 0 0\" }}>\n                    {children}\n                </div>\n            </Main>\n            <Footer />\n        </Outer>\n    );\n};\n\ntype OuterProps = {\n    disableScrolling?: boolean;\n    children: ReactNode;\n};\n\nexport const Outer: React.FC<OuterProps> = ({ children, disableScrolling = false }) => (\n    <div css={{\n        minHeight: \"100%\",\n        maxWidth: 2290,\n        margin: \"0 auto\",\n        display: \"flex\",\n        flexDirection: \"column\",\n        ...disableScrolling && {\n            overflow: \"hidden\",\n            height: \"100%\",\n        },\n    }}>{children}</div>\n);\n\nconst Main: React.FC<{ children: ReactNode }> = ({ children }) => (\n    <main css={{\n        margin: OUTER_CONTAINER_MARGIN,\n        marginBottom: 48,\n        padding: MAIN_PADDING,\n        flexGrow: 1,\n        display: \"flex\",\n        alignItems: \"stretch\",\n    }}>{children}</main>\n);\n\nexport const InitialLoading: React.FC = () => {\n    const { t } = useTranslation();\n    const pulsing = keyframes({\n        \"0%\": { opacity: 0.5 },\n        \"50%\": { opacity: 1 },\n        \"100%\": { opacity: 0.5 },\n    });\n\n    return (\n        <Outer>\n            <Header />\n            <Main>\n                <div css={{ margin: \"auto\", marginTop: \"min(120px, 20vh)\" }}>\n                    <div css={{\n                        marginTop: 32,\n                        animation: `${pulsing} 1.2s infinite`,\n                        fontSize: 20,\n                    }}>{t(\"general.loading\")}</div>\n                </div>\n            </Main>\n            <Footer />\n        </Outer>\n    );\n};\n\n/** A query that contains user data needed for the header */\ninterface QueryWithUserData extends OperationType {\n    response: UserData$key;\n}\n\ntype RootLoaderProps<Q extends QueryWithUserData> = {\n    query: GraphQLTaggedNode;\n    queryRef: PreloadedQuery<Q>;\n    nav: (data: Q[\"response\"]) => NavItems;\n    render: (data: Q[\"response\"]) => JSX.Element;\n    /** If set to `true`, a `<meta name=\"robots\" content=\"noindex\">` tag is added. */\n    noindex?: boolean;\n};\n\n/** Entry point for almost all routes: loads the GraphQL query and renders the main page layout */\nexport const RootLoader = <Q extends QueryWithUserData>(props: RootLoaderProps<Q>) => (\n    <Suspense fallback={<InitialLoading />}>\n        <RootLoaderImpl {...props} />\n    </Suspense>\n);\n\nexport const RootLoaderImpl = <Q extends QueryWithUserData>({\n    query,\n    queryRef,\n    nav,\n    render,\n    noindex = false,\n}: RootLoaderProps<Q>) => {\n    useNoindexTag(noindex);\n    const data = usePreloadedQuery(query, queryRef);\n    const userData = useFragment(userDataFragment, data);\n\n    return (\n        <UserProvider data={userData?.currentUser}>\n            <Root nav={nav(data)}>{render(data)}</Root>\n        </UserProvider>\n    );\n};\n","/**\n * @generated SignedSource<<bb570a5f71c1aac03103647810bf7d63>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nexport type RealmOrder = \"ALPHABETIC_ASC\" | \"ALPHABETIC_DESC\" | \"BY_INDEX\" | \"%future added value\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type NavigationData$data = {\n  readonly childOrder: RealmOrder;\n  readonly children: ReadonlyArray<{\n    readonly id: string;\n    readonly name: string | null | undefined;\n    readonly path: string;\n  }>;\n  readonly id: string;\n  readonly isUserRoot: boolean;\n  readonly name: string | null | undefined;\n  readonly parent: {\n    readonly isMainRoot: boolean;\n    readonly name: string | null | undefined;\n    readonly path: string;\n  } | null | undefined;\n  readonly \" $fragmentType\": \"NavigationData\";\n};\nexport type NavigationData$key = {\n  readonly \" $data\"?: NavigationData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"NavigationData\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv1 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n};\nreturn {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"NavigationData\",\n  \"selections\": [\n    (v0/*: any*/),\n    (v1/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"childOrder\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"isUserRoot\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Realm\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"children\",\n      \"plural\": true,\n      \"selections\": [\n        (v0/*: any*/),\n        (v1/*: any*/),\n        (v2/*: any*/)\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Realm\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"parent\",\n      \"plural\": false,\n      \"selections\": [\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"isMainRoot\",\n          \"storageKey\": null\n        },\n        (v1/*: any*/),\n        (v2/*: any*/)\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"Realm\",\n  \"abstractKey\": null\n};\n})();\n\n(node as any).hash = \"ae4f15ab8282bfec4377175ab4b7a876\";\n\nexport default node;\n","import React, { useCallback, useEffect, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { HiOutlineSearch } from \"react-icons/hi\";\nimport { ProtoButton, screenWidthAtMost } from \"@opencast/appkit\";\nimport { LuX } from \"react-icons/lu\";\n\nimport { useRouter } from \"../../router\";\nimport {\n    handleNavigation,\n    SearchRoute,\n    isSearchActive,\n    isValidSearchItemType,\n} from \"../../routes/Search\";\nimport { focusStyle } from \"../../ui\";\nimport { Spinner } from \"@opencast/appkit\";\nimport { currentRef, useDebounce } from \"../../util\";\nimport { BREAKPOINT as NAV_BREAKPOINT } from \"../Navigation\";\nimport { COLORS } from \"../../color\";\nimport { useUser } from \"../../User\";\n\n\ntype SearchFieldProps = {\n    variant: \"desktop\" | \"mobile\";\n};\n\nexport const SearchField: React.FC<SearchFieldProps> = ({ variant }) => {\n    const { t } = useTranslation();\n    const router = useRouter();\n    const ref = useRef<HTMLInputElement>(null);\n    const { debounce } = useDebounce();\n\n    // If the user is unknown, then we are still in the initial loading phase.\n    // We don't want users to input anything into the search field in that\n    // state, as their input would be ignored and discarded as soon as the\n    // initial-loading phase is done.\n    const disabled = useUser() === \"unknown\";\n\n    // Register global shortcut to focus search bar\n    useEffect(() => {\n        const handleShortcut = (ev: KeyboardEvent) => {\n            // Clear input field. See comment inside `handleNavigation` function\n            // in `routes/Search.tsx` for explanation. I'd rather do this here than\n            // needing to pass the input ref.\n            if (ev.key === \"Escape\" && ref.current) {\n                ref.current.value = \"\";\n            }\n            // If any element is focussed that could receive character input, we\n            // don't do anything.\n            if (/^input|textarea|select|button$/i.test(document.activeElement?.tagName ?? \"\")) {\n                return;\n            }\n\n            // With ctrl and meta key, this could be bound to some other\n            // shortcut (ctrl+s) that we want to ignore.\n            if (ev.ctrlKey || ev.metaKey) {\n                return;\n            }\n\n            if (ev.key === \"s\" || ev.key === \"S\" || ev.key === \"/\") {\n                ref.current?.focus();\n            }\n        };\n\n        document.addEventListener(\"keyup\", handleShortcut);\n        return () => document.removeEventListener(\"keyup\", handleShortcut);\n    }, []);\n\n    const height = 42;\n    const spinnerSize = 24;\n    const paddingSpinner = (height - spinnerSize) / 2;\n    const iconStyle = { position: \"absolute\", right: paddingSpinner, top: paddingSpinner } as const;\n\n\n    const lastTimeout = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n    useEffect(() => () => clearTimeout(lastTimeout.current));\n\n    const onSearchRoute = isSearchActive();\n    const getSearchParam = (searchParameter: string) => {\n        const searchParams = new URLSearchParams(document.location.search);\n        return onSearchRoute\n            ? searchParams.get(searchParameter) ?? undefined\n            : undefined;\n    };\n    const defaultValue = getSearchParam(\"q\");\n\n\n    const search = useCallback(debounce((expression: string) => {\n        const filters = {\n            itemType: isValidSearchItemType(getSearchParam(\"f\")),\n            start: getSearchParam(\"start\"),\n            end: getSearchParam(\"end\"),\n        };\n        router.goto(SearchRoute.url({ query: expression, ...filters }), onSearchRoute);\n    }, 250), []);\n\n    return (\n        <div css={{\n            position: \"relative\",\n            margin: \"0 8px\",\n            flex: 1,\n            ...variant === \"desktop\" && {\n                maxWidth: 372,\n                [screenWidthAtMost(NAV_BREAKPOINT)]: {\n                    display: \"none\",\n                },\n            },\n        }}>\n            <HiOutlineSearch css={{\n                position: \"absolute\",\n                height: \"100%\",\n                left: 11,\n                fontSize: 23,\n                color: COLORS.neutral60,\n            }} />\n            <form onSubmit={event => {\n                event.preventDefault();\n                clearTimeout(lastTimeout.current);\n                search(currentRef(ref).value);\n            }}>\n                <label css={{ display: \"flex\" }}>\n                    <span css={{ display: \"none\" }}>{t(\"search.input-label\")}</span>\n                    <input\n                        ref={ref}\n                        type=\"text\"\n                        disabled={disabled}\n                        placeholder={t(\"search.input-label\")}\n                        defaultValue={defaultValue}\n                        // The `onSearchRoute` part of this is a hacky fix to the search\n                        // losing focus when transitioning from any route to the search\n                        // route.\n                        autoFocus={variant === \"mobile\" || onSearchRoute}\n                        onChange={e => {\n                            clearTimeout(lastTimeout.current);\n                            lastTimeout.current = setTimeout(() => {\n                                search(e.target.value);\n                            }, 30);\n                        }}\n                        css={{\n                            flex: 1,\n                            color: COLORS.neutral60,\n                            backgroundColor: COLORS.neutral05,\n                            border: `1px solid ${COLORS.neutral40}`,\n                            borderRadius: 4,\n                            minWidth: 50,\n                            height,\n                            paddingLeft: 42,\n                            paddingRight: 12,\n                            \":hover\": {\n                                borderColor: COLORS.neutral25,\n                                outline: `2.5px solid ${COLORS.neutral25}`,\n                                outlineOffset: -1,\n                            },\n                            \":focus-visible\": { borderColor: COLORS.focus },\n                            ...focusStyle({ offset: -1 }),\n                            \"&::placeholder\": {\n                                color: COLORS.neutral60,\n                                opacity: 1,\n                            },\n                        }}\n                    />\n                </label>\n            </form>\n            {router.isTransitioning && isSearchActive() && <Spinner\n                size={spinnerSize}\n                css={iconStyle}\n            />}\n            {!router.isTransitioning && isSearchActive() && <ProtoButton\n                onClick={() => handleNavigation(router, ref)}\n                css={{\n                    \":hover, :focus\": {\n                        color: COLORS.neutral90,\n                        borderColor: COLORS.neutral25,\n                        outline: `2.5px solid ${COLORS.neutral25}`,\n                    },\n                    ...focusStyle({}),\n                    borderRadius: 4,\n                    color: COLORS.neutral60,\n                    ...iconStyle,\n                }}\n            ><LuX size={spinnerSize} css={{ display: \"block\" }} /></ProtoButton>}\n        </div>\n    );\n};\n","import { useTranslation } from \"react-i18next\";\nimport { screenWidthAbove, screenWidthAtMost, useColorScheme } from \"@opencast/appkit\";\n\nimport CONFIG from \"../../config\";\nimport { BREAKPOINT_SMALL } from \"../../GlobalStyle\";\nimport { Link } from \"../../router\";\nimport { focusStyle } from \"../../ui\";\nimport { translatedConfig } from \"../../util\";\nimport { HEADER_BASE_PADDING } from \"./ui\";\nimport { COLORS } from \"../../color\";\n\n\nexport const Logo: React.FC = () => {\n    const { t, i18n } = useTranslation();\n    const isDark = useColorScheme().scheme === \"dark\";\n\n    // This is a bit tricky: we want to specify the `width` and `height`\n    // attributes on the `img` elements in order to avoid layout shift. That\n    // already rules out the `<picture>` element since that assumes all sources\n    // have the same aspect ratio.\n    //\n    // The resolutions of the logos is specified in the config. However, to\n    // faithfully represent the aspect ratio of the images with an integer\n    // resolution, large numbers might be required. But setting the `width` to\n    // a large number means the `<img>` will take that space in pixels. But\n    // that's often too large. Easy fix: `width: auto` since we already have\n    // `height: 100%`. However, we also need `max-width: 100%` so that the logo\n    // shrinks on very small screens. But using that makes the logo not take up\n    // the correct width when still being loaded: the parent `<a>` shrinks as\n    // much as possible, making the `max-width: 100%` also shrink the image.\n    //\n    // The solution is to calculate the correct `flex-basis` for the `<a>`\n    // element manually.\n\n    const large = CONFIG.logo.large;\n    const small = CONFIG.logo.small ?? CONFIG.logo.large;\n    const largeDark = CONFIG.logo.largeDark ?? CONFIG.logo.large;\n    const smallDark = CONFIG.logo.smallDark\n        ?? CONFIG.logo.largeDark\n        ?? CONFIG.logo.small\n        ?? CONFIG.logo.large;\n\n    // If the dark logos are not specified, we default to the white ones but\n    // inverting them.\n    const invertLargeDark = CONFIG.logo.largeDark === null;\n    const invertSmallDark = CONFIG.logo.smallDark === null && CONFIG.logo.largeDark === null;\n\n    const alt = t(\"general.logo-alt\", { title: translatedConfig(CONFIG.siteTitle, i18n) });\n    const invertCss = {\n        filter: \"invert(100%) hue-rotate(180deg)\",\n    };\n\n    return (\n        <Link to=\"/\" css={{\n            height: `calc(100% + ${HEADER_BASE_PADDING * 2}px)`,\n            flex: \"0 1 auto\",\n            margin: `-${HEADER_BASE_PADDING}px 0`,\n            \":hover\": { outlineOffset: -4, outline: `2px solid ${COLORS.neutral25}` },\n            display: \"block\",\n            borderRadius: 8,\n            ...focusStyle({ offset: -4 }),\n            \"& > img\": {\n                height: \"100%\",\n                width: \"auto\",\n                maxWidth: \"100%\",\n            },\n        }}>\n            <img\n                width={(isDark ? largeDark : large).resolution[0]}\n                height={(isDark ? largeDark : large).resolution[1]}\n                src={(isDark ? largeDark : large).path}\n                alt={alt}\n                css={{\n                    ...isDark && invertLargeDark && invertCss,\n                    [screenWidthAtMost(BREAKPOINT_SMALL)]: {\n                        display: \"none\",\n                    },\n                }}\n            />\n            <img\n                width={(isDark ? smallDark : small).resolution[0]}\n                height={(isDark ? smallDark : small).resolution[1]}\n                src={(isDark ? smallDark : small).path}\n                alt={alt}\n                css={{\n                    ...isDark && invertSmallDark && invertCss,\n                    [screenWidthAbove(BREAKPOINT_SMALL)]: {\n                        display: \"none\",\n                    },\n                }}\n            />\n        </Link>\n    );\n};\n","import React, { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n    LuAlertTriangle, LuLogIn, LuMoon, LuSun, LuFolder, LuFilm,\n    LuUpload, LuVideo, LuLogOut, LuChevronDown, LuUserCheck,\n} from \"react-icons/lu\";\nimport { HiOutlineFire, HiOutlineTranslate } from \"react-icons/hi\";\nimport {\n    match, ProtoButton, screenWidthAbove, screenWidthAtMost,\n    HeaderMenuItemDef, HeaderMenuProps, WithHeaderMenu, checkboxMenuItem, useColorScheme,\n} from \"@opencast/appkit\";\n\nimport { BREAKPOINT_MEDIUM } from \"../../GlobalStyle\";\nimport i18n, { languages } from \"../../i18n\";\nimport { Link } from \"../../router\";\nimport { User, useUser } from \"../../User\";\nimport { ActionIcon, ICON_STYLE } from \"./ui\";\nimport CONFIG from \"../../config\";\nimport { Spinner } from \"@opencast/appkit\";\nimport { focusStyle } from \"../../ui\";\nimport { ExternalLink } from \"../../relay/auth\";\nimport { COLORS } from \"../../color\";\nimport { translatedConfig } from \"../../util\";\nimport { UploadRoute } from \"../../routes/Upload\";\nimport { ManageRoute } from \"../../routes/manage\";\nimport { ManageVideosRoute } from \"../../routes/manage/Video\";\nimport { LoginLink } from \"../../routes/util\";\n\n\n\n/** User-related UI in the header. */\nexport const UserBox: React.FC = () => {\n    const { t } = useTranslation();\n    const user = useUser();\n\n    const iconCss = {\n        height: \"100%\",\n        margin: \"0 9px\",\n        fontSize: 22,\n        opacity: 0.4,\n    };\n\n    let boxContent;\n    if (user === \"unknown\") {\n        boxContent = <Spinner css={iconCss} />;\n    } else if (user === \"error\") {\n        // TODO: tooltip\n        boxContent = <LuAlertTriangle css={iconCss} />;\n    } else if (user === \"none\") {\n        boxContent = <LoggedOut />;\n    } else {\n        boxContent = <LoggedIn {...{ t, user }} />;\n    }\n\n    return <>\n        <LanguageSettings />\n        <ColorSchemeSettings />\n        {boxContent}\n    </>;\n};\n\n\n/** User-related UI in header when the user is NOT logged in. */\nconst LoggedOut: React.FC = () => {\n    const { t } = useTranslation();\n\n    return (\n        <LoginLink\n            css={{\n                /* Show labelled button on larger screens. */\n                [screenWidthAbove(BREAKPOINT_MEDIUM)]: {\n                    color: COLORS.primary0BwInverted,\n                    display: \"flex\",\n                    alignItems: \"center\",\n                    gap: 10,\n                    marginLeft: 4,\n                    borderRadius: 8,\n                    padding: \"7px 14px\",\n                    backgroundColor: COLORS.primary0,\n                    textDecoration: \"none\",\n                    svg: { fontSize: 20 },\n                    \":hover, :focus\": {\n                        backgroundColor: COLORS.primary1,\n                        color: COLORS.primary1BwInverted,\n                    },\n                    ...focusStyle({ offset: 1 }),\n                },\n                /* Show only the icon on mobile devices. */\n                [screenWidthAtMost(BREAKPOINT_MEDIUM)]: {\n                    color: COLORS.neutral90,\n                    ...ICON_STYLE,\n                    span: { display: \"none\" },\n                },\n            }}\n        >\n            <LuLogIn />\n            <span>{t(\"user.login\")}</span>\n        </LoginLink>\n    );\n};\n\n/** Header button and associated floating menu to choose between color schemes */\nexport const ColorSchemeSettings: React.FC = () => {\n    const { t } = useTranslation();\n    const { scheme, isAuto, update } = useColorScheme();\n\n    const currentPref = isAuto ? \"auto\" : scheme;\n    const choices = [\"auto\", \"light\", \"dark\"] as const;\n    const menuItems: HeaderMenuItemDef[] = choices.map(choice => checkboxMenuItem({\n        checked: currentPref === choice,\n        children: <>{t(`main-menu.color-scheme.${choice}`)}</>,\n        onClick: () => update(choice),\n    }));\n\n    return (\n        <WithHeaderMenu\n            menu={{\n                label: t(\"main-menu.color-scheme.label\"),\n                items: menuItems,\n                breakpoint: BREAKPOINT_MEDIUM,\n            }}\n        >\n            <ActionIcon title={t(\"main-menu.color-scheme.label\")}>\n                {scheme === \"light\" ? <LuMoon /> : <LuSun />}\n            </ActionIcon>\n        </WithHeaderMenu>\n    );\n};\n\n/** Header button and associated floating menu to choose between languages */\nexport const LanguageSettings: React.FC = () => {\n    const { t, i18n } = useTranslation();\n    const isCurrentLanguage = (language: string) => language === i18n.resolvedLanguage;\n\n    const menuItems = Object.keys(languages).map(lng => checkboxMenuItem({\n        checked: isCurrentLanguage(lng),\n        children: <>{t(\"general.language.name\", { lng })}</>,\n        onClick: () => {\n            if (!isCurrentLanguage(lng)) {\n                i18n.changeLanguage(lng);\n            }\n        },\n    }));\n\n    const label = t(\"general.language.language_one\");\n    return (\n        <WithHeaderMenu\n            menu={{\n                label,\n                items: menuItems,\n                breakpoint: BREAKPOINT_MEDIUM,\n            }}\n        >\n            <ActionIcon title={t(\"general.language.selection\")}>\n                <HiOutlineTranslate />\n            </ActionIcon>\n        </WithHeaderMenu>\n    );\n};\n\n\ntype LoggedInProps = {\n    user: User;\n};\n\n/** User-related UI in header when the user IS logged in. */\nconst LoggedIn: React.FC<LoggedInProps> = ({ user }) => {\n    const { t } = useTranslation();\n\n    type LogoutState = \"idle\" | \"pending\" | \"error\";\n    const [logoutState, setLogoutState] = useState<LogoutState>(\"idle\");\n    const deleteSession = () => {\n        // We don't do anything if a request is already pending.\n        if (logoutState === \"pending\") {\n            return;\n        }\n\n        setLogoutState(\"pending\");\n        fetch(\"/~session\", { method: \"DELETE\", keepalive: true })\n            .then(() => {\n                if (CONFIG.auth.logoutLink === null) {\n                    // We deliberately ignore the `status`. See `handle_logout` for\n                    // more information.\n                    //\n                    // We hard forward to the home page to get rid of any stale state.\n                    window.location.href = \"/\";\n                }\n            })\n            .catch(error => {\n                // TODO: this is not great. It should happen only extremely\n                // rarely, but still, just showing a triangle is not very great\n                // for the user.\n\n                // eslint-disable-next-line no-console\n                console.error(\"Error during logout: \", error);\n                setLogoutState(\"error\");\n            });\n    };\n\n    const indent = { paddingLeft: 30 };\n    const items: HeaderMenuProps[\"items\"] = [\n        {\n            icon: <LuFolder />,\n            wrapper: <Link to={ManageRoute.url} />,\n            children: t(\"user.manage-content\"),\n            css: { minWidth: 200 },\n        },\n        ...user.canCreateUserRealm ? [{\n            icon: <HiOutlineFire />,\n            wrapper: <Link to={`/@${user.username}`} />,\n            children: t(\"realm.user-realm.my-page\"),\n            css: indent,\n        }] : [],\n        {\n            icon: <LuFilm />,\n            wrapper: <Link to={ManageVideosRoute.url} />,\n            children: t(\"manage.my-videos.title\"),\n            css: indent,\n        },\n        ...user.canUpload ? [{\n            icon: <LuUpload />,\n            wrapper: <Link to={UploadRoute.url} />,\n            children: t(\"upload.title\"),\n            css: indent,\n        }] : [],\n        ...user.canUseStudio ? [{\n            icon: <LuVideo />,\n            wrapper: <ExternalLink\n                service=\"STUDIO\"\n                params={{\n                    \"return.target\": document.location.href,\n                    \"return.label\": translatedConfig(CONFIG.siteTitle, i18n),\n                }}\n                fallback=\"link\"\n            />,\n            keepOpenAfterClick: true,\n            children: t(\"manage.dashboard.studio-tile-title\"),\n            css: { ...indent, width: \"100%\" },\n        }] : [],\n\n        // Logout button\n        {\n            icon: match(logoutState, {\n                \"idle\": () => <LuLogOut />,\n                \"pending\": () => <Spinner />,\n                \"error\": () => <LuAlertTriangle />,\n            }),\n            children: t(\"user.logout\"),\n            css: {\n                \"&&\": {\n                    color: COLORS.danger0,\n                    width: \"100%\",\n                },\n            },\n            ...CONFIG.auth.logoutLink !== null\n                ? {\n                    wrapper: <Link\n                        to={CONFIG.auth.logoutLink}\n                        onClick={CONFIG.auth.usesTobiraSessions ? deleteSession : () => {}}\n                        htmlLink\n                    />,\n                }\n                : {\n                    keepOpenAfterClick: true,\n                    wrapper: <ProtoButton onClick={deleteSession} />,\n                },\n        },\n    ];\n\n    const menuProps = {\n        label: user.displayName,\n        breakpoint: BREAKPOINT_MEDIUM,\n        items,\n    };\n\n    return <WithHeaderMenu menu={menuProps}>\n        <div css={{ position: \"relative\" }}>\n            <ProtoButton title={t(\"user.settings\")} css={{\n                display: \"flex\",\n                alignItems: \"center\",\n                backgroundColor: COLORS.neutral05,\n                border: `1px solid ${COLORS.neutral40}`,\n                gap: 12,\n                borderRadius: 8,\n                padding: \"8px 10px 8px 16px\",\n                cursor: \"pointer\",\n                \":hover\": {\n                    borderColor: COLORS.neutral25,\n                    outline: `2.5px solid ${COLORS.neutral25}`,\n                    outlineOffset: -1,\n                },\n                \":focus-visible\": { borderColor: COLORS.focus },\n                ...focusStyle({ offset: -1 }),\n                [screenWidthAtMost(BREAKPOINT_MEDIUM)]: {\n                    display: \"none\",\n                },\n            }}>\n                <span css={{\n                    maxWidth: \"clamp(170px, 12vw, 230px)\",\n                    whiteSpace: \"nowrap\",\n                    textOverflow: \"ellipsis\",\n                    overflow: \"hidden\",\n                }}>\n                    {user.displayName}\n                </span>\n                <LuChevronDown size={20}/>\n            </ProtoButton>\n            {/* Show icon on mobile devices. */}\n            <ActionIcon\n                title={t(\"user.settings\")}\n                css={{\n                    [screenWidthAbove(BREAKPOINT_MEDIUM)]: {\n                        display: \"none\",\n                    },\n                }}>\n                <LuUserCheck css={{ polyline: { stroke: COLORS.happy1 } }}/>\n            </ActionIcon>\n        </div>\n    </WithHeaderMenu>;\n};\n","import React from \"react\";\nimport { LuArrowLeft, LuMenu, LuX } from \"react-icons/lu\";\nimport { HiOutlineSearch } from \"react-icons/hi\";\nimport { useTranslation } from \"react-i18next\";\nimport { match, screenWidthAbove } from \"@opencast/appkit\";\n\nimport { useMenu } from \"../MenuState\";\nimport { BREAKPOINT as NAV_BREAKPOINT } from \"../Navigation\";\nimport { OUTER_CONTAINER_MARGIN } from \"..\";\nimport { ActionIcon, ButtonContainer, HEADER_BASE_PADDING } from \"./ui\";\nimport { SearchField } from \"./Search\";\nimport { Logo } from \"./Logo\";\nimport { ColorSchemeSettings, LanguageSettings, UserBox } from \"./UserBox\";\nimport { COLORS } from \"../../color\";\n\n\ntype Props = {\n    hideNavIcon?: boolean;\n    loginMode?: boolean;\n};\n\nexport const Header: React.FC<Props> = ({ hideNavIcon = false, loginMode = false }) => {\n    const menu = useMenu();\n\n    const content = match(menu.state, {\n        \"closed\": () => <DefaultMode hideNavIcon={hideNavIcon} />,\n        \"search\": () => <SearchMode />,\n        \"burger\": () => <OpenMenuMode />,\n    });\n\n    return <>\n        <header css={{\n            margin: OUTER_CONTAINER_MARGIN,\n            height: \"var(--header-height)\",\n            display: \"flex\",\n            padding: `${HEADER_BASE_PADDING}px 16px`,\n            paddingLeft: 0,\n            alignItems: \"center\",\n            justifyContent: \"space-between\",\n            backgroundColor: COLORS.neutral05,\n        }}>\n            {loginMode ? <LoginMode /> : content}\n        </header>\n        <div css={{ margin: \"0 0 16px 0 \", height: 2, backgroundColor: COLORS.neutral15 }} />\n    </>;\n};\n\nconst LoginMode: React.FC = () => <>\n    <Logo />\n    <ButtonContainer>\n        <LanguageSettings />\n        <ColorSchemeSettings />\n    </ButtonContainer>\n</>;\n\nconst SearchMode: React.FC = () => {\n    const { t } = useTranslation();\n    const menu = useMenu();\n\n    return <>\n        <ActionIcon\n            title={t(\"general.action.back\")}\n            onClick={() => menu.close()}\n            css={{ marginLeft: 8 }}\n        >\n            <LuArrowLeft />\n        </ActionIcon>\n        <SearchField variant=\"mobile\" />\n    </>;\n};\n\nconst OpenMenuMode: React.FC = () => {\n    const { t } = useTranslation();\n    const menu = useMenu();\n\n    return <>\n        <Logo />\n        <ButtonContainer>\n            <ActionIcon\n                title={t(\"general.action.close\")}\n                onClick={() => menu.close()}\n                css={buttonOutline}\n            >\n                <LuX />\n            </ActionIcon>\n        </ButtonContainer>\n    </>;\n};\n\nconst DefaultMode: React.FC<{ hideNavIcon: boolean }> = ({ hideNavIcon }) => {\n    const { t } = useTranslation();\n    const menu = useMenu();\n\n    return <>\n        <Logo />\n        <SearchField variant=\"desktop\" />\n        <ButtonContainer>\n            <ActionIcon\n                title={t(\"search.input-label\")}\n                onClick={() => menu.toggleMenu(\"search\")}\n                css={{\n                    [screenWidthAbove(NAV_BREAKPOINT)]: {\n                        display: \"none\",\n                    },\n                }}\n            >\n                <HiOutlineSearch />\n            </ActionIcon>\n            <UserBox />\n            {!hideNavIcon && (\n                <ActionIcon\n                    title={t(\"main-menu.label\")}\n                    onClick={() => menu.toggleMenu(\"burger\")}\n                    css={{\n                        ...buttonOutline,\n                        // More margin because of the outline\n                        marginLeft: 4,\n                        [screenWidthAbove(NAV_BREAKPOINT)]: {\n                            display: \"none\",\n                        },\n                    }}\n                >\n                    <LuMenu />\n                </ActionIcon>\n            )}\n        </ButtonContainer>\n    </>;\n};\n\nconst buttonOutline = {\n    button: {\n        padding: 5,\n        outline: `1.5px solid ${COLORS.neutral25}`,\n    },\n};\n","import React, { ReactNode } from \"react\";\n\nimport { BREAKPOINT_SMALL } from \"../../GlobalStyle\";\nimport { focusStyle } from \"../../ui\";\nimport { useTitle } from \"../../util\";\nimport { COLORS } from \"../../color\";\nimport { screenWidthAtMost } from \"@opencast/appkit\";\n\n\nexport const HEADER_BASE_PADDING = 24;\n\nexport const ButtonContainer: React.FC<{ children: ReactNode }> = ({ children }) => (\n    <div css={{\n        display: \"flex\",\n        position: \"relative\",\n        alignItems: \"center\",\n        button: { color: COLORS.neutral90 },\n        gap: 8,\n        [screenWidthAtMost(BREAKPOINT_SMALL)]: { gap: 4 },\n    }}>\n        {children}\n    </div>\n);\n\ntype ActionIconProps = {\n    onClick?: () => void;\n    title: string;\n    className?: string;\n    children: ReactNode;\n};\n\nexport const ICON_STYLE = {\n    border: \"none\",\n    background: \"none\",\n    padding: 5,\n    margin: 0,\n    borderRadius: 6,\n    lineHeight: 0,\n    cursor: \"pointer\",\n    fontSize: 28,\n    opacity: \"0.75\",\n    \":hover, :focus\": { opacity: 1 },\n    \":hover\": { outline: `2px solid ${COLORS.neutral25}` },\n    ...focusStyle({}),\n    [screenWidthAtMost(BREAKPOINT_SMALL)]: { fontSize: 24 },\n};\n\n/** A single button with icon in the header. */\nexport const ActionIcon = React.forwardRef<HTMLDivElement, ActionIconProps>(\n    ({ title, onClick, children, className }, ref) => (\n        <div ref={ref} {...{ className }} css={{\n            height: \"100%\",\n            display: \"flex\",\n            alignItems: \"center\",\n        }}>\n            <button\n                title={title}\n                onClick={onClick}\n                css={ICON_STYLE}\n            >{children}</button>\n        </div>\n    ),\n);\n\ntype PageTitleProps = {\n    title: string;\n    className?: string;\n};\n\n/** A `h1` wrapper that calls `useTitle` */\nexport const PageTitle: React.FC<PageTitleProps> = ({ title, className }) => {\n    useTitle(title);\n    return <h1 {...{ className }}>{title}</h1>;\n};\n","// This funky expressions just means: above a screen width of 1200px, the extra\n// space will be 8% margin left and right. This is the middle ground between\n// filling the full screen and having a fixed max width.\nexport const OUTER_CONTAINER_MARGIN = \"0 calc(max(0px, 100% - 1200px) * 0.08)\";\n","import React, { useEffect, useRef, useState, useTransition } from \"react\";\nimport { bug } from \"@opencast/appkit\";\n\n\n/** A single route. You probably want to use `makeRoute` to create this. */\nexport type Route = {\n    /**\n     * Checks if this route matches with the given URL. If it does, this\n     * function may prepare the route and then has to return a `MatchedRoute`.\n     * If the URL doesn't match this route, `null` should be returned.\n     */\n    match: (url: URL) => MatchedRoute | null;\n};\n\n/** A route used as fallback (if no other route matches) */\nexport type FallbackRoute = {\n    /** Similar to `Route.match`, but without the option to return null. */\n    prepare: (url: URL) => MatchedRoute;\n};\n\n/**\n * A route that has been successfully matched against an URL and has been\n * prepared. It can now be rendered.\n */\nexport type MatchedRoute = {\n    /** Called during React rendering phase. */\n    render: () => JSX.Element;\n\n    /** Called once the route is no longer active. Can be used for cleanup. */\n    dispose?: () => void;\n};\n\n// /** Creates the internal representation of the given route. */\n// export const makeRoute = (match: (url: URL) => MatchedRoute | null): Route => ({ match });\n\n/** Will replace `makeRoute` in the future. */\nexport const makeRoute = <T extends Route>(obj: T): T => obj;\n\n/** Routing definition */\ninterface Config {\n    /** The fallback route. Used when no routes in `routes` match. */\n    fallback: FallbackRoute;\n\n    /** All routes. They are matched in order, with the first matching one \"winning\". */\n    routes: Route[];\n\n    /** If set to `true`, debug messages are logged via `console.debug`. Default: `false`. */\n    debug?: boolean;\n}\n\n/** Props of the `<Link>` component. */\ntype LinkProps = {\n    to: string;\n} & Omit<React.ComponentPropsWithoutRef<\"a\">, \"href\">;\n\n/** Props of the `<Router>` component. */\ntype RouterProps = {\n    initialRoute: MatchedRoute;\n    children: JSX.Element;\n};\n\nexport type RouterLib = {\n    /**\n     * Matches the given full href against all routes, returning the first\n     * matched route or throwing an error if no route matches.\n     */\n    matchRoute: (href: string) => MatchedRoute;\n\n    /**\n     * Like `matchRoute(window.location.href)`. Intended to be called before\n     * `React.render` to obtain the initial route for the application.\n     */\n    matchInitialRoute: () => MatchedRoute;\n\n    /** Hook to obtain a reference to the router. */\n    useRouter: () => RouterControl;\n\n    /**\n     * An internal link, using the defined routes. Should be used instead of\n     * `<a>`. Has to be mounted below a `<Router>`!\n     *\n     * This component reacts to clicks and prevents any default action (e.g. the\n     * browser navigating to that link). Instead, our router is notified of the new\n     * route and renders appropriately.\n     */\n    Link: ReturnType<typeof React.forwardRef<HTMLAnchorElement, LinkProps>>;\n\n    /**\n     * Renders the currently matched route. Has to be used somewhere inside of a\n     * `<Router>`.\n     */\n    ActiveRoute: () => JSX.Element;\n\n    /** Provides the required context for `<Link>` and `<ActiveRoute>` components. */\n    Router: (props: RouterProps) => JSX.Element;\n};\n\n/** Helper class: a list of listeners */\nclass Listeners<F extends (...args: unknown[]) => unknown> {\n    private list: { listener: F }[] = [];\n\n    /** Pass through the iterable protocol to the inner list */\n    public [Symbol.iterator]() {\n        return this.list[Symbol.iterator]();\n    }\n\n    /** Adds a new listener. Returns function to remove that listener again. */\n    public add(listener: F): () => void {\n        // We wrap this listener in a new object to be able to find this exact\n        // instance in the list later in order to remove it.\n        const obj = { listener };\n        this.list.push(obj);\n        return () => {\n            this.list = this.list.filter(l => l !== obj);\n        };\n    }\n\n    /** Call all listeners with the same arguments. */\n    public callAll(args: Parameters<F>) {\n        for (const { listener } of this.list) {\n            listener(args);\n        }\n    }\n}\n\nexport type AtNavListener = () => void;\nexport type BeforeNavListener = () => \"prevent-nav\" | undefined;\n\n/** Obtained via `useRouter`, allowing you to perform some routing-related actions. */\nexport interface RouterControl {\n    /**\n     * Navigates to a new URI, just like creating a `<Link to={uri}>` and\n     * clicking it. If `replace` is `false`, a new entry is added to the\n     * history stack. If it is `true`, the current entry is replaced.\n     */\n    goto(uri: string, replace?: boolean): void;\n\n    /**\n     * Like `history.pushState` (with fewer arguments): pushes a new history\n     * entry, but does NOT trigger rendering the correct route. So you rarely\n     * want this! Use `goto` instead.\n     */\n    push(uri: string): void;\n\n    /**\n     * Like `history.replaceState` (with fewer arguments): replaces the URL of\n     * the current history entry. Does NOT cause the router to render the\n     * appropriate route.\n     */\n    replace(uri: string): void;\n\n    /**\n     * Adds a listener function that is called whenever a route transition is\n     * about to be performed. Neither the location nor the matched route has to\n     * change: the listener is also called when a navigation to the current\n     * location is initiated.\n     *\n     * Returns a function that removes the listener. Call the function at an\n     * appropriate time to prevent memory leaks.\n     */\n    listenAtNav(listener: AtNavListener): () => void;\n\n    /**\n     * Like `listenAtNav`, but is called *before* the navigation is performed.\n     * Each listener has the ability to prevent navigation by calling the\n     * passed function.\n     */\n    listenBeforeNav(listener: BeforeNavListener): () => void;\n\n    /**\n     * Indicates whether we are currently transitioning to a new route. Intended\n     * to show a loading indicator.\n     */\n    isTransitioning: boolean;\n\n    /**\n     * Indicates whether a user navigated to the current route from outside Tobira.\n     */\n    internalOrigin: boolean;\n}\n\nexport const makeRouter = <C extends Config, >(config: C): RouterLib => {\n    // Helper to log debug messages if `config.debug` is true.\n    const debugLog = (...args: unknown[]) => {\n        if (config.debug) {\n            // eslint-disable-next-line no-console\n            console.debug(\"[rauta] \", ...args);\n        }\n    };\n\n    /** What rauta stores in the history state */\n    type _State = {\n        /** The last scroll position of the route */\n        scrollY: number;\n        /** An increasing number. Is used to undo popstate events. */\n        index: number;\n    };\n\n    // We maintain an index in a variable here to know the \"previous index\" when\n    // we are reacting to \"onPopState\" events.\n    let currentIndex = 0;\n\n    // If the page is first loaded, we want to correctly set the state.\n    if (window.history.state?.index == null) {\n        window.history.replaceState({ index: 0, ...window.history.state }, \"\");\n    }\n    if (window.history.state?.scrollY == null) {\n        window.history.replaceState({ scrollY: window.scrollY, ...window.history.state }, \"\");\n    }\n\n    /** Wrapper for `history.pushState` */\n    const push = (url: string) => {\n        const index = currentIndex + 1;\n        window.history.pushState({ scrollY: 0, index }, \"\", url);\n        currentIndex = index;\n    };\n\n    /** Wrapper for `history.replaceState`. If `url` is `null`, it is not changed. */\n    const replace = (url: string | null) => {\n        const state = {\n            scrollY: window.scrollY,\n            index: currentIndex,\n        };\n        window.history.replaceState(state, \"\", url ?? undefined);\n    };\n\n    const updateScrollPos = () => replace(null);\n\n\n    const shouldPreventNav = (listeners: Listeners<BeforeNavListener>): boolean => {\n        for (const { listener } of listeners) {\n            if (listener() === \"prevent-nav\") {\n                return true;\n            }\n        }\n\n        return false;\n    };\n\n    const useRouterImpl = (caller: string): RouterControl => {\n        const context = React.useContext(Context);\n        if (context === null) {\n            return bug(`${caller} used without a parent <Router>! That's not allowed.`);\n        }\n\n        return {\n            isTransitioning: context.isTransitioning,\n            push,\n            replace,\n            listenAtNav: (listener: AtNavListener) =>\n                context.listeners.atNav.add(listener),\n            listenBeforeNav: (listener: BeforeNavListener) =>\n                context.listeners.beforeNav.add(listener),\n            goto: (uri: string, replaceEntry = false): void => {\n                updateScrollPos();\n\n                if (shouldPreventNav(context.listeners.beforeNav)) {\n                    return;\n                }\n\n                const href = new URL(uri, document.baseURI).href;\n                const newRoute = matchRoute(href);\n\n                // When navigating to new routes, the scroll position always\n                // starts as 0 (i.e. the very top).\n                context.setActiveRoute({ route: newRoute, initialScroll: 0 });\n                (replaceEntry ? replace : push)(href);\n\n                debugLog(`Setting active route for '${href}' (index ${currentIndex}) `\n                    + \"to: \", newRoute);\n            },\n            internalOrigin: window.history.state?.index > 0,\n        };\n    };\n\n    const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(\n        ({ to, children, onClick, ...props }, ref) => {\n            const router = useRouterImpl(\"<Link>\");\n\n            const handleClick = (e: React.MouseEvent<HTMLAnchorElement>) => {\n                // If the caller specified a handler, we will call it first.\n                onClick?.(e);\n\n                // We only want to react to simple mouse clicks.\n                if (e.ctrlKey || e.metaKey || e.altKey || e.shiftKey || e.button !== 0) {\n                    return;\n                }\n\n                e.preventDefault();\n                router.goto(to);\n            };\n\n            return <a ref={ref} href={to} onClick={handleClick} {...props}>{children}</a>;\n        },\n    );\n\n    const matchRoute = (href: string): MatchedRoute => {\n        const url = new URL(href);\n        for (const route of config.routes) {\n            const matched: MatchedRoute | null = route.match(url);\n\n            if (matched !== null) {\n                return matched;\n            }\n        }\n\n        return config.fallback.prepare(url);\n    };\n\n    const matchInitialRoute = (): MatchedRoute => matchRoute(window.location.href);\n\n    type ActiveRoute = {\n        route: MatchedRoute;\n\n        /** A scroll position that should be restored when the route is first rendered */\n        initialScroll: number | null;\n    };\n\n    type ContextData = {\n        activeRoute: ActiveRoute;\n        setActiveRoute: (newRoute: ActiveRoute) => void;\n        listeners: {\n            atNav: Listeners<AtNavListener>;\n            beforeNav: Listeners<BeforeNavListener>;\n        };\n        isTransitioning: boolean;\n    };\n\n    const Context = React.createContext<ContextData | null>(null);\n\n    const useRouter = (): RouterControl => useRouterImpl(\"`useRouter`\");\n\n    /** Provides the required context for `<Link>` and `<ActiveRoute>` components. */\n    const Router = ({ initialRoute, children }: RouterProps) => {\n        const listeners = useRef<ContextData[\"listeners\"]>({\n            atNav: new Listeners(),\n            beforeNav: new Listeners(),\n        });\n        const [activeRoute, setActiveRouteRaw] = useState<ActiveRoute>({\n            route: initialRoute,\n            initialScroll: window.history.state?.scrollY ?? null,\n        });\n        const [isPending, startTransition] = useTransition();\n\n        // Remember if there was actually any event that made the router\n        // navigate away from the current route. This is basically just to make\n        // `StrictMode` work, as with that, this component might be unmounted\n        // for reasons other than a route change.\n        const navigatedAway = useRef(false);\n        const setActiveRoute = (newRoute: ActiveRoute) => {\n            navigatedAway.current = true;\n            startTransition(() => {\n                setActiveRouteRaw(() => newRoute);\n                listeners.current.atNav.callAll([]);\n            });\n        };\n\n        // Register some event listeners and set global values.\n        useEffect(() => {\n            // Whenever the user navigates forwards or backwards in the browser,\n            // we have to render the corresponding route. We also restore the\n            // scroll position which we store within the history state.\n            // Finally, this is used to prevent navigating away from a route if\n            // this is blocked.\n            let ignoreNextPop = false;\n            const onPopState = (e: PopStateEvent) => {\n                // This is unfortunately necessary since we need to use `go()`\n                // below to undo some navigation. So we trigger this event ourselves.\n                // But that we want to ignore. This boolean variable is not 100%\n                // guaranteed to work as intended. There could be `popstate` events\n                // already queued or happening during this handler function. So we\n                // might ignore the wrong event. But we have not found any way to\n                // improve this situation, unfortunately. AND: we weren't able to\n                // trigger any weird behavior in practice, so that's good.\n                if (ignoreNextPop) {\n                    ignoreNextPop = false;\n                    return;\n                }\n\n                const newIndexRaw = e.state?.index;\n                const newIndex = typeof newIndexRaw === \"number\" ? newIndexRaw : null;\n                debugLog(`Handling popstate event to '${window.location.href}' `\n                    + `(indices ${currentIndex} -> ${newIndex})`);\n                if (shouldPreventNav(listeners.current.beforeNav)) {\n                    // We want to prevent the browser from going backwards or forwards.\n                    // Unfortunately, `e.preventDefault()` does nothing as the event is not\n                    // cancelable. So we can only undo the change, at least most of the time.\n                    if (newIndex != null) {\n                        // The state that was transitioned to was controlled by us (this will\n                        // be the case most of the time). We ignore a delta of 0\n                        const delta = currentIndex - newIndex;\n                        debugLog(`Undoing popstate event via go(${delta})`);\n                        ignoreNextPop = true;\n                        window.history.go(delta);\n                        return;\n                    } else {\n                        // There was no index stored in the state. This should almost never happen,\n                        // except if other JS code here uses the `history` API directly. If the\n                        // forward/backward buttons direct to a non-Tobira site, the \"popstate\"\n                        // event is not fired, but the onbeforeunload is triggered.\n                        //\n                        // If this happens, we do not `return` and actually render the correct\n                        // route. Otherwise we have a strange inconsistent app state.\n                        debugLog(\"Can't undo popstate event :-(\");\n                    }\n                }\n\n                currentIndex = newIndex ?? 0;\n\n                const newRoute = matchRoute(window.location.href);\n                setActiveRoute({ route: newRoute, initialScroll: e.state?.scrollY });\n                debugLog(\n                    \"Reacting to 'popstate' event: setting active route for\"\n                        + `'${window.location.href}' to: `,\n                    newRoute,\n                );\n            };\n\n            // To prevent the browser restoring any scroll position.\n            history.scrollRestoration = \"manual\";\n\n            // We want an up2date scroll value in our history state. Always\n            // updating it in onScroll unfortunately lead to laggy behavior on\n            // some machines. So we are debouncing here.\n            let timer: ReturnType<typeof setTimeout>;\n            const onScroll = () => {\n                clearTimeout(timer);\n                timer = setTimeout(() => updateScrollPos(), 200);\n            };\n\n            window.addEventListener(\"popstate\", onPopState);\n            window.addEventListener(\"scroll\", onScroll);\n            window.addEventListener(\"beforeunload\", updateScrollPos);\n            return () => {\n                window.removeEventListener(\"popstate\", onPopState);\n                window.removeEventListener(\"scroll\", onScroll);\n                window.removeEventListener(\"beforeunload\", updateScrollPos);\n            };\n        }, []);\n\n        // Dispose of routes when they are no longer needed.\n        useEffect(() => () => {\n            if (navigatedAway.current && activeRoute.route.dispose) {\n                debugLog(\"Disposing of route: \", activeRoute);\n                activeRoute.route.dispose();\n            }\n        }, [activeRoute, navigatedAway]);\n\n        const contextData = {\n            setActiveRoute,\n            activeRoute,\n            listeners: listeners.current,\n            isTransitioning: isPending,\n        };\n\n        return <Context.Provider value={contextData}>{children}</Context.Provider>;\n    };\n\n    const ActiveRoute = () => {\n        const context = React.useContext(Context);\n        if (context === null) {\n            throw new Error(\"<ActiveRoute> used without a parent <Router>! That's not allowed.\");\n        }\n\n        useEffect(() => {\n            const scroll = context.activeRoute.initialScroll;\n            if (scroll != null) {\n                debugLog(\"Restoring scroll position to: \", scroll);\n                window.scrollTo(0, scroll);\n            }\n        }, [context.activeRoute]);\n\n        return <React.Fragment key={currentIndex}>\n            {context.activeRoute.route.render()}\n        </React.Fragment>;\n    };\n\n    return {\n        Link,\n        matchRoute,\n        matchInitialRoute,\n        useRouter,\n        ActiveRoute,\n        Router,\n    };\n};\n","/**\n * @generated SignedSource<<fb2ff118e5673c5fe8c97516312ca5bf>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nexport type JwtService = \"EDITOR\" | \"STUDIO\" | \"UPLOAD\" | \"%future added value\";\nexport type authJwtQuery$variables = {\n  service: JwtService;\n};\nexport type authJwtQuery$data = {\n  readonly jwt: string;\n};\nexport type authJwtQuery = {\n  response: authJwtQuery$data;\n  variables: authJwtQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"service\"\n  }\n],\nv1 = [\n  {\n    \"alias\": null,\n    \"args\": [\n      {\n        \"kind\": \"Variable\",\n        \"name\": \"service\",\n        \"variableName\": \"service\"\n      }\n    ],\n    \"kind\": \"ScalarField\",\n    \"name\": \"jwt\",\n    \"storageKey\": null\n  }\n];\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"authJwtQuery\",\n    \"selections\": (v1/*: any*/),\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"authJwtQuery\",\n    \"selections\": (v1/*: any*/)\n  },\n  \"params\": {\n    \"cacheID\": \"0d23380d92c2c62e2e9cf62d19b39be9\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"authJwtQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query authJwtQuery(\\n  $service: JwtService!\\n) {\\n  jwt(service: $service)\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"c190dfaefa4f570a079eab2d138ccd2e\";\n\nexport default node;\n","import React from \"react\";\nimport { fetchQuery, graphql } from \"react-relay\";\nimport { bug, match } from \"@opencast/appkit\";\n\nimport CONFIG from \"../config\";\nimport { environment } from \".\";\nimport { authJwtQuery, JwtService } from \"./__generated__/authJwtQuery.graphql\";\nimport { FormEvent, PropsWithChildren } from \"react\";\nimport { Link } from \"../router\";\nimport { LinkButton } from \"../ui/LinkButton\";\n\n\n/** Different external services we can link to using JWT pre-authentication */\ntype JwtLinkedService = \"EDITOR\" | \"STUDIO\";\n\nconst serviceUrl = (service: JwtLinkedService): URL => new URL(match(service, {\n    EDITOR: () => CONFIG.opencast.editorUrl,\n    STUDIO: () => CONFIG.opencast.studioUrl,\n}));\n\nexport type ExternalLinkProps = PropsWithChildren<{\n    className?: string;\n    fallback: \"link\" | \"button\";\n} & ({\n    service: \"STUDIO\";\n    params: {\n        \"return.target\": string;\n        \"return.label\": string;\n    };\n} | {\n    service: \"EDITOR\";\n    params: {\n        id: string;\n        callbackUrl: string;\n        callbackSystem: string;\n    };\n})>;\n\n/**\n * Authenticate a link to one of the Opencast hosted services we link to\n * when `pre_auth_external_links` is enabled.\n * In that case, this renders a form `POST`-ing you to Opencasts redirect endpoint\n * passing along a JWT to get an authenticated session.\n * The redirection then takes you to the final destination.\n * If the setting is not enabled, this is just a normal link.\n */\nexport const ExternalLink = React.forwardRef<HTMLButtonElement, ExternalLinkProps>(({\n    className,\n    fallback,\n    service,\n    children,\n    params,\n}, ref) => {\n    const target = serviceUrl(service);\n    for (const [key, value] of Object.entries(params)) {\n        target.searchParams.append(key, value);\n    }\n\n    if (!CONFIG.auth.preAuthExternalLinks) {\n        return match(fallback, {\n            link: () => <Link className={className} to={target.toString()} target=\"_blank\">\n                {children}\n            </Link>,\n            button: () => <LinkButton className={className} to={target.toString()} target=\"_blank\">\n                {children}\n            </LinkButton>,\n        });\n    }\n\n    const redirect = new URL(\"/redirect/get\", target);\n\n    const onSubmit = async (event: FormEvent) => {\n        event.preventDefault();\n        const form = event.target as HTMLFormElement & { jwt: HTMLInputElement };\n        form.jwt.value = await getJwt(service);\n        form.submit();\n    };\n\n    return <form action={redirect.toString()} method=\"POST\" onSubmit={onSubmit}>\n        <input type=\"hidden\" name=\"target\" value={target.toString()} />\n        <input type=\"hidden\" name=\"jwt\" />\n\n        <button\n            {...{ ref, className }}\n            css={{\n                backgroundColor: \"transparent\",\n                border: \"none\",\n            }}\n        >{children}</button>\n    </form>;\n});\n\n/**\n * Internal helper function to fetch JWTs mainly to hide the ceremony involved\n * with using Relay observables. Errors (as opposed to rejects) when the query returns\n * more or less than one result(s).\n */\nexport const getJwt = (service: JwtService): Promise<string> => (\n    new Promise((resolve, reject) => {\n        let gotResult = false;\n        let out: authJwtQuery[\"response\"];\n        const query = graphql`\n            query authJwtQuery($service: JwtService!) {\n                jwt(service: $service)\n            }\n        `;\n        fetchQuery<authJwtQuery>(\n            environment,\n            query,\n            { service },\n            // Use \"network-only\" as we always want a fresh JWTs. `fetchQuery` should already\n            // never write any values into the cache, but better make sure.\n            { fetchPolicy: \"network-only\" },\n        ).subscribe({\n            complete: () => {\n                if (!gotResult) {\n                    bug(\"'complete' callback before receiving any data\");\n                } else {\n                    resolve(out.jwt);\n                }\n            },\n            error: (error: unknown) => reject(error),\n            next: data => {\n                if (gotResult) {\n                    bug(\"unexpected second data when retrieving JWT\");\n                } else {\n                    out = data;\n                    gotResult = true;\n                }\n            },\n        });\n    })\n);\n","import type {\n    GraphQLSingularResponse,\n    GraphQLResponseWithData,\n    GraphQLResponseWithoutData,\n} from \"relay-runtime\";\n\n\n// This module contains custom `Error`-s thrown by our Relay network layer\n// which the application logic can use to distinguish between different\n// causes of errors, and display useful information about them\n// or even (partly) try to recover from then.\n// With our current usage of Relay, these will be most useful in error boundaries.\n\n\n/** When the API returns invalid JSON */\nexport class NotJson extends Error {\n    public inner: Error;\n\n    public constructor(inner: Error) {\n        super();\n        this.name = \"Non-JSON GraphQL Response\";\n        this.inner = inner;\n        this.message = `GraphQL API returned invalid JSON: ${inner}`;\n    }\n}\n\n/**\n * This error gets thrown if there was an error \"below\" the layer of GraphQL,\n * i.e. when we didn't even get a response from the API. This can happen if the\n * status code is `4xx` or `5xx`.\n */\nexport class ServerError extends Error {\n    public response: Response;\n\n    public constructor(response: Response) {\n        super(response.statusText);\n        this.name = \"Server Error\";\n        this.response = response;\n    }\n}\n\n/**\n * This error is supposed to be thrown whenever the API response contained an\n * `errors` field. This is GraphQL's mechanism to report errors, as opposed to\n * the HTTP status code based reporting of typical REST APIs. This way, GraphQL\n * can even report partial errors (together with a partial response).\n *\n * For us, this is kind of awkward to use, because the Relay hooks never pass\n * these errors to the calling component. With this error, you can at least\n * grab them in an error boundary, though, and you can even get the partial\n * data, if any, because we package it in here. Note, however, that we\n * currently recommend modeling error/partial data situations explicitly\n * instead of relying on this, because of how awkward it would be to pass the\n * partial data to your component from the error boundary. (You would have to\n * extract the Relay query from the rendering logic, so that you can call the\n * latter from both, the component that does the query, and from the error\n * boundary.)\n */\nexport class APIError extends Error {\n    // Note: This is a kind of misleading name.\n    // There could still be a `data` field on this.\n    public response: GraphQLResponseWithoutData;\n    public errors: ApiError[];\n\n    public constructor(response: GraphQLResponseWithoutData) {\n        super();\n        this.name = \"API Error\";\n        this.response = response;\n        this.errors = this.response.errors.map(e => ({\n            message: e.message,\n            /* eslint-disable @typescript-eslint/no-explicit-any */\n            path: (e as any).path,\n            kind: (e as any).extensions.kind,\n            key: (e as any).extensions.key,\n            /* eslint-enable @typescript-eslint/no-explicit-any */\n        }));\n        this.message = (() => {\n            let out = \"\";\n            for (const err of this.errors) {\n                out += `\\n- ${err.message}`;\n                if (err.path) {\n                    const path = typeof err.path === \"string\"\n                        ? err.path\n                        : err.path.join(\".\");\n                    out += ` (at \\`${path}\\`)`;\n                }\n                if (err.key) {\n                    out += ` [key: '${err.key}']`;\n                }\n            }\n            return out;\n        })();\n    }\n}\n\n/** Checks whether the given GraphQL response contains any errors. */\nexport const hasErrors = (\n    response: GraphQLSingularResponse,\n): response is GraphQLResponseWithoutData =>\n    (response as GraphQLResponseWithData).errors !== undefined;\n\nexport type ApiError = {\n    message: string;\n    path?: string | string[];\n    kind?: ErrorKind;\n    key?: string;\n};\n\n/**\n * Possible kinds of errors that the API can report.\n *\n * This has to be kept in sync with the `ApiErrorKind` in `api/err.rs`!\n */\nexport type ErrorKind = \"INVALID_INPUT\"\n    | \"NOT_AUTHORIZED\"\n    | \"INTERNAL_SERVER_ERROR\"\n    | \"OPENCAST_UNAVAILABLE\"\n;\n","import { loadQuery as relayLoadQuery, LoadQueryOptions } from \"react-relay\";\nimport type { PreloadedQuery } from \"react-relay\";\nimport { Environment, Store, RecordSource, Network } from \"relay-runtime\";\nimport type {\n    GraphQLSingularResponse,\n    GraphQLTaggedNode,\n    OperationType,\n    VariablesOf,\n} from \"relay-runtime\";\n\nimport { hasErrors, APIError, ServerError, NotJson } from \"./errors\";\nimport { NetworkError } from \"../util/err\";\n\n\nexport const environment = new Environment({\n    store: new Store(new RecordSource()),\n    network: Network.create(\n        async ({ text: query }, variables) => {\n            const response = await fetch(\"/graphql\", {\n                method: \"POST\",\n                headers: { \"Content-Type\": \"application/json\" },\n                body: JSON.stringify({ query, variables }),\n            }).catch(e => { throw new NetworkError(e); });\n\n            if (!response.ok) {\n                throw new ServerError(response);\n            }\n\n            // Download full response and parse as JSON.\n            const text = await response.text()\n                .catch(e => { throw new NetworkError(e); });\n            let json;\n            try {\n                json = JSON.parse(text);\n            } catch (e) {\n                // According to MDN, `JSON.parse` always throws a `SyntaxError`.\n                throw new NotJson(e as SyntaxError);\n            }\n\n            // TODO I'm not actually sure we really always get a singular response ...\n            const gqlResponse = json as GraphQLSingularResponse;\n            if (hasErrors(gqlResponse)) {\n                throw new APIError(gqlResponse);\n            }\n            return gqlResponse;\n        },\n    ),\n});\n\n/** Like `loadQuery` from relay, but using our environment */\nexport function loadQuery<TQuery extends OperationType>(\n    preloadableRequest: GraphQLTaggedNode,\n    variables: VariablesOf<TQuery>,\n    options?: LoadQueryOptions,\n): PreloadedQuery<TQuery> {\n    return relayLoadQuery(environment, preloadableRequest, variables, options);\n}\n\n\n/** Extract queried fields from Relay types. Removes internal properties. */\nexport type Fields<T> = {\n    [K in FieldKeys<keyof T>]: T[K];\n};\ntype FieldKeys<T> = T extends ` ${infer _}` ? never : T;\n\n\nexport * from \"./errors\";\n","import React, { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { graphql, useFragment, useMutation } from \"react-relay\";\nimport { bug, unreachable, useColorScheme, WithTooltip } from \"@opencast/appkit\";\n\nimport { LuArrowUp, LuArrowDown } from \"react-icons/lu\";\nimport { RealmOrder } from \"../../../layout/__generated__/NavigationData.graphql\";\nimport {\n    ChildOrderEditData$data,\n    ChildOrderEditData$key,\n} from \"./__generated__/ChildOrderEditData.graphql\";\nimport { Button, Spinner, boxError } from \"@opencast/appkit\";\nimport { displayCommitError } from \"./util\";\nimport { sortRealms } from \"../../util\";\nimport { focusStyle } from \"../../../ui\";\nimport { COLORS } from \"../../../color\";\n\n\nconst fragment = graphql`\n    fragment ChildOrderEditData on Realm {\n        id\n        name\n        childOrder\n        children { id name index }\n    }\n`;\n\n\n\n// We request the exact same data as in the query so that relay can update all\n// internal data and everything is up to date.\nconst mutation = graphql`\n    mutation ChildOrderMutation(\n        $parent: ID!,\n        $order: RealmOrder!,\n        $indices: [ChildIndex!],\n    ) {\n        setChildOrder(parent: $parent, childOrder: $order, childIndices: $indices) {\n            ... ChildOrderEditData\n        }\n    }\n`;\n\n\n\ntype Child = ChildOrderEditData$data[\"children\"][0];\ntype SortOrder = Exclude<RealmOrder, \"%future added value\">;\n\ntype Props = {\n    fragRef: ChildOrderEditData$key;\n};\n\n/** The actual implementation with a given realm path */\nexport const ChildOrder: React.FC<Props> = ({ fragRef }) => {\n    const { t, i18n } = useTranslation();\n    const realm = useFragment(fragment, fragRef);\n\n    const initialSortOrder = realm.childOrder === \"%future added value\"\n        // This is not optimal. The only useful thing we could do in the future\n        // is to disable the whole form just to be save, whenever we encounter\n        // a sort order we don't know.\n        ? bug(\"unknown realm sort order\")\n        : realm.childOrder;\n    const [sortOrder, setSortOrder] = useState<SortOrder>(initialSortOrder);\n    const [children, setChildren] = useState(realm.children);\n\n    // Swaps `index` with `index + 1`.\n    const swap = (index: number) => {\n        setChildren([\n            ...children.slice(0, index),\n            children[index + 1],\n            children[index],\n            ...children.slice(index + 2),\n        ]);\n    };\n\n    // Check if anything has changed\n    const anyChange = initialSortOrder !== sortOrder\n        || children.some((c, i) => c.id !== realm.children[i].id);\n\n    const [commitError, setCommitError] = useState<JSX.Element | null>(null);\n    const [commit, isInFlight] = useMutation(mutation);\n    const save = async () => {\n        commit({\n            variables: {\n                parent: realm.id,\n                order: sortOrder,\n                indices: sortOrder === \"BY_INDEX\"\n                    ? children.map((c, i) => ({ id: c.id, index: i }))\n                    : null,\n            },\n            onError: e => {\n                setCommitError(displayCommitError(e, t(\"manage.realm.children.failed\")));\n            },\n        });\n    };\n\n\n    type SortOrderOptionProps = {\n        label: string;\n        order: SortOrder;\n    };\n\n    const SortOrderOption: React.FC<SortOrderOptionProps> = ({ label, order }) => (\n        <div css={{ margin: 6 }}>\n            <label css={{ display: \"flex\" }}>\n                <input\n                    type=\"radio\"\n                    checked={order === sortOrder}\n                    onChange={() => setSortOrder(order)}\n                    css={{\n                        alignSelf: \"center\",\n                        marginRight: 14,\n                        height: 16,\n                        width: 16,\n                        flexShrink: 0,\n                    }}\n                />\n                {label}\n            </label>\n        </div>\n    );\n\n    const sortedChildren = sortRealms(children, sortOrder, i18n.language);\n\n    return <>\n        <h2>{t(\"manage.realm.children.heading\")}</h2>\n        <div>\n            <SortOrderOption\n                label={t(\"manage.realm.children.sort-alphabetically-asc\")}\n                order=\"ALPHABETIC_ASC\"\n            />\n            <SortOrderOption\n                label={t(\"manage.realm.children.sort-alphabetically-desc\")}\n                order=\"ALPHABETIC_DESC\"\n            />\n            <SortOrderOption\n                label={t(\"manage.realm.children.order-manually\") + \":\"}\n                order=\"BY_INDEX\"\n            />\n\n            {sortOrder === \"BY_INDEX\" && <ChildList swap={swap}>\n                {sortedChildren}\n            </ChildList>}\n\n            <div css={{ display: \"flex\", alignItems: \"center\" }}>\n                <Button onClick={save} disabled={!anyChange}>{t(\"general.action.save\")}</Button>\n                {isInFlight && <Spinner size={20} css={{ marginLeft: 16 }} />}\n            </div>\n            {boxError(commitError)}\n        </div>\n    </>;\n};\n\n\ntype ChildListProps = {\n    children: readonly Child[];\n    swap: (index: number) => void;\n};\n\nconst ChildList: React.FC<ChildListProps> = ({ children, swap }) => (\n    <ol css={{ maxWidth: 900, padding: 0 }}>\n        {children.map((child, i) => <ChildEntry\n            key={child.id}\n            index={i}\n            numChildren={children.length}\n            swap={swap}\n            realmName={child.name ?? unreachable(\"realm child without name\")}\n        />)}\n    </ol>\n);\n\ntype ChildEntryProps = {\n    index: number;\n    numChildren: number;\n    swap: (index: number) => void;\n    realmName: string;\n};\n\nconst ChildEntry: React.FC<ChildEntryProps> = ({ index, swap, realmName, numChildren }) => {\n    const { t } = useTranslation();\n    const isDark = useColorScheme().scheme === \"dark\";\n\n    return (\n        <li css={{\n            display: \"flex\",\n            alignItems: \"center\",\n            border: `1px solid ${COLORS.neutral25}`,\n            margin: \"4px 0\",\n            borderRadius: 4,\n        }}>\n            <div css={{\n                display: \"flex\",\n                flexDirection: \"column\",\n                marginRight: 16,\n                fontSize: 18,\n                borderRight: `1px solid ${COLORS.neutral25}`,\n                \"& > div\": {\n                    \"&:first-child > button\": {\n                        borderBottom: `1px solid ${COLORS.neutral25}`,\n                        borderTopLeftRadius: 4,\n                    },\n                    \"&:last-child > button\": {\n                        borderBottomLeftRadius: 4,\n                    },\n                },\n                \"& button\": {\n                    border: \"none\",\n                    display: \"flex\",\n                    alignItems: \"center\",\n                    padding: \"5px 12px\",\n                    backgroundColor: \"inherit\",\n                    ...isDark && { color: COLORS.neutral60 },\n                    \"&:disabled\": {\n                        color: \"transparent\",\n                    },\n                    \"&:not([disabled])\": {\n                        cursor: \"pointer\",\n                        \"&:hover, &:focus\": {\n                            backgroundColor: COLORS.neutral10,\n                            ...isDark && {\n                                backgroundColor: COLORS.neutral15,\n                                color: COLORS.neutral80,\n                            },\n                        },\n                        ...focusStyle({ offset: -1.5 }),\n                    },\n                },\n            }}>\n                <WithTooltip tooltip={t(\"manage.realm.children.move-up\")} placement=\"left\">\n                    <button onClick={() => swap(index - 1)} disabled={index === 0}>\n                        <LuArrowUp />\n                    </button>\n                </WithTooltip>\n                <WithTooltip tooltip={t(\"manage.realm.children.move-down\")} placement=\"left\">\n                    <button onClick={() => swap(index)} disabled={index === numChildren - 1}>\n                        <LuArrowDown />\n                    </button>\n                </WithTooltip>\n            </div>\n            <div css={{ padding: 4 }}>{realmName}</div>\n        </li>\n    );\n};\n","import { useTranslation } from \"react-i18next\";\nimport { graphql, useFragment, useMutation } from \"react-relay\";\nimport { useState } from \"react\";\nimport { bug, match } from \"@opencast/appkit\";\n\nimport type {\n    GeneralRealmData$data,\n    GeneralRealmData$key,\n} from \"./__generated__/GeneralRealmData.graphql\";\nimport { useForm } from \"react-hook-form\";\nimport { Input, Select } from \"../../../ui/Input\";\nimport { Button, Spinner, boxError, Card } from \"@opencast/appkit\";\nimport { Form } from \"../../../ui/Form\";\nimport { displayCommitError } from \"./util\";\nimport { COLORS } from \"../../../color\";\n\n\nconst fragment = graphql`\n    fragment GeneralRealmData on Realm {\n        id\n        name\n        nameSource {\n            __typename\n            ... on PlainRealmName { name }\n            ... on RealmNameFromBlock {\n                block { id }\n            }\n        }\n        blocks {\n            id\n            ... on VideoBlock {\n                event {\n                    ...on AuthorizedEvent { title }\n                }\n            }\n            ... on SeriesBlock {\n                series {\n                    title\n                }\n            }\n        }\n        isMainRoot\n    }\n`;\n\n\n// We request the exact same data as in the query so that relay can update all\n// internal data and everything is up to date.\nconst renameMutation = graphql`\n    mutation GeneralRealmRenameMutation($id: ID!, $name: UpdatedRealmName!) {\n        renameRealm(id: $id, name: $name) {\n            ... GeneralRealmData\n        }\n    }\n`;\n\n\ntype Props = {\n    fragRef: GeneralRealmData$key;\n};\n\nexport const General: React.FC<Props> = ({ fragRef }) => {\n    const { t } = useTranslation();\n    const realm = useFragment(fragment, fragRef);\n\n    // We do not allow changing the name of the root realm.\n    if (realm.isMainRoot) {\n        return <p>{t(\"manage.realm.general.no-rename-root\")}</p>;\n    }\n\n    const { nameSource, ...rest } = realm;\n    if (nameSource == null) {\n        return bug(\"name source is null for non-root realm\");\n    }\n\n    return <NameForm realm={{ nameSource, ...rest }} />;\n};\n\ntype NameFormProps = {\n    realm: GeneralRealmData$data & {\n        nameSource: NonNullable<GeneralRealmData$data[\"nameSource\"]>;\n    };\n};\n\nexport const NameForm: React.FC<NameFormProps> = ({ realm }) => {\n    type FormData = {\n        name: string | null;\n        block: string | null;\n        nameSource: \"plain-name\" | \"name-from-block\";\n    };\n\n    const initial = {\n        name: realm.nameSource.__typename === \"PlainRealmName\"\n            ? realm.name\n            : null,\n        block: realm.nameSource.__typename === \"RealmNameFromBlock\"\n            // TODO: this breaks when we add new block types\n            ? realm.nameSource.block.id ?? null\n            : null,\n        nameSource: realm.nameSource.__typename === \"PlainRealmName\"\n            ? \"plain-name\"\n            : \"name-from-block\",\n    } as const;\n\n    const { t } = useTranslation();\n    const { register, handleSubmit, watch, formState: { errors } } = useForm<FormData>({\n        mode: \"onChange\",\n        defaultValues: initial,\n    });\n\n    const [commitError, setCommitError] = useState<JSX.Element | null>(null);\n    const [commit, isInFlight] = useMutation(renameMutation);\n\n    const onSubmit = handleSubmit(data => {\n        commit({\n            variables: {\n                id: realm.id,\n                name: {\n                    plain: data.nameSource === \"plain-name\" ? data.name : null,\n                    block: data.nameSource === \"name-from-block\" ? data.block : null,\n                },\n            },\n            onError: e => {\n                setCommitError(displayCommitError(e, t(\"manage.realm.general.rename-failed\")));\n            },\n        });\n    });\n\n    const validation = {\n        required: t(\"manage.realm.name-must-not-be-empty\"),\n    };\n\n\n    const name = watch(\"name\");\n    const block = watch(\"block\");\n    const nameSource = watch(\"nameSource\");\n    const isPlain = nameSource === \"plain-name\";\n    const canSave = match(nameSource, {\n        \"name-from-block\": () => block != null && block !== initial.block,\n        \"plain-name\": () => !!name && name !== initial.name,\n    });\n\n    const suitableBlocks = realm.blocks\n        .map(block => {\n            // We simply don't show events/series that cannot be accessed, are\n            // still pending, or are deleted.\n            let label;\n            if (block.event?.title != null) {\n                label = t(\"video.video\") + \": \" + block.event.title;\n            } else if (block.series?.title != null) {\n                label = t(\"series.series\") + \": \" + block.series.title;\n            } else {\n                return null;\n            }\n\n            return { id: block.id, label };\n        })\n        .filter(<T, >(b: T | null): b is T => b != null);\n\n    return <>\n        <h2 css={{ marginTop: 48 }}>{t(\"manage.realm.general.page-name\")}</h2>\n        <Form onSubmit={onSubmit} css={{ marginBottom: 32 }}>\n            <div\n                css={{\n                    marginBottom: 16,\n                    border: `1px solid ${COLORS.neutral25}`,\n                    borderRadius: 4,\n                    \"& > div\": {\n                        \"&:not(:first-child)\": {\n                            borderTop: `1px solid ${COLORS.neutral25}`,\n                        },\n                        \"& > label\": {\n                            padding: 12,\n                            margin: 0,\n                            display: \"flex\",\n                            gap: 16,\n                            alignItems: \"center\",\n                            cursor: \"pointer\",\n                            \"& > input[type=radio]\": {\n                                width: 16,\n                                height: 16,\n                                margin: 0,\n                                flexShrink: 0,\n                            },\n                        },\n                        \"& > div\": {\n                            padding: `0 12px 12px ${12 + 16 + 16}px`,\n                        },\n                    },\n                }}\n            >\n                <div>\n                    <label>\n                        <input type=\"radio\" value=\"plain-name\" {...register(\"nameSource\")} />\n                        <div>\n                            {t(\"manage.realm.general.name-directly\")}\n                            <div css={{ fontWeight: \"normal\", fontSize: 14 }}>\n                                {t(\"manage.realm.general.name-directly-description\")}\n                            </div>\n                        </div>\n                    </label>\n                    {isPlain && <div>\n                        <Input\n                            defaultValue={realm.name ?? \"\"}\n                            error={!!errors.name}\n                            placeholder={t(\"manage.realm.general.page-name\")}\n                            css={{ width: 500, maxWidth: \"100%\" }}\n                            {...register(\"name\", validation)}\n                        />\n                        {errors.name && <div css={{ marginTop: 8 }}>\n                            <Card kind=\"error\">{errors.name.message}</Card>\n                        </div>}\n                    </div>}\n                </div>\n\n                <div>\n                    <label>\n                        <input type=\"radio\" value=\"name-from-block\" {...register(\"nameSource\")} />\n                        <div>\n                            {t(\"manage.realm.general.name-from-block\")}\n                            <div css={{ fontWeight: \"normal\", fontSize: 14 }}>\n                                {t(\"manage.realm.general.name-from-block-description\")}\n                            </div>\n                        </div>\n                    </label>\n                    {!isPlain && <div>\n                        {suitableBlocks.length === 0 && <div>\n                            <Card kind=\"error\">{t(\"manage.realm.general.no-blocks\")}</Card>\n                        </div>}\n                        {suitableBlocks.length > 0 && <Select\n                            css={{ width: 500, maxWidth: \"100%\" }}\n                            error={\"event\" in errors}\n                            defaultValue={initial.block ?? undefined}\n                            {...register(\"block\")}\n                        >\n                            {suitableBlocks.map(({ id, label }) => (\n                                <option key={id} value={id}>{label}</option>\n                            ))}\n                        </Select>}\n                    </div>}\n                </div>\n            </div>\n\n            <div css={{ display: \"flex\", alignItems: \"center\" }}>\n                <Button type=\"submit\" disabled={isInFlight || !canSave}>\n                    {t(\"general.action.save\")}\n                </Button>\n                {isInFlight && <Spinner size={20} css={{ marginLeft: 16 }} />}\n            </div>\n\n            {boxError(commitError)}\n        </Form>\n    </>;\n};\n","import React from \"react\";\nimport { Input, InputProps } from \"./Input\";\nimport { Spinner } from \"@opencast/appkit\";\nimport { COLORS } from \"../color\";\n\n\ntype Props = InputProps & {\n    base: string;\n    spinner?: boolean;\n};\n\nexport const PathSegmentInput = React.forwardRef<HTMLInputElement, Props>(\n    ({ base, spinner = false, ...rest }, ref) => (\n        <div css={{\n            display: \"inline-flex\",\n            flexWrap: \"wrap\",\n            position: \"relative\",\n            alignItems: \"center\",\n            justifyContent: \"center\",\n            border: `1px solid ${COLORS.neutral15}`,\n            borderRadius: 4,\n            gap: 8,\n            backgroundColor: COLORS.neutral10,\n        }}>\n            <span css={{ paddingLeft: 8, overflow: \"auto\" }}>\n                {base.split(\"/\").join(\"\\u200b/\") + (base.endsWith(\"/\") ? \"\" : \"/\")}\n            </span>\n            <Input\n                css={{ margin: -1, width: 160 }}\n                spellCheck={false}\n                autoCapitalize=\"none\"\n                ref={ref}\n                {...rest}\n            />\n            {spinner && <Spinner size={20} css={{ position: \"absolute\", right: 6 }}/>}\n        </div>\n    ),\n);\n","import { ReactNode, useRef } from \"react\";\nimport { Trans, useTranslation } from \"react-i18next\";\nimport { graphql, useFragment, useMutation } from \"react-relay\";\nimport { useForm } from \"react-hook-form\";\nimport { bug } from \"@opencast/appkit\";\n\nimport type {\n    DangerZoneRealmData$data,\n    DangerZoneRealmData$key,\n} from \"./__generated__/DangerZoneRealmData.graphql\";\nimport { currentRef } from \"../../../util\";\nimport { Button, boxError, Card } from \"@opencast/appkit\";\nimport { PathSegmentInput } from \"../../../ui/PathSegmentInput\";\nimport { displayCommitError, realmValidations } from \"./util\";\nimport {\n    DangerZoneRemoveRealmMutation$data,\n} from \"./__generated__/DangerZoneRemoveRealmMutation.graphql\";\nimport { useRouter } from \"../../../router\";\nimport { useState } from \"react\";\nimport { ConfirmationModal, ConfirmationModalHandle } from \"../../../ui/Modal\";\nimport { COLORS } from \"../../../color\";\nimport { ManageRealmRoute } from \".\";\n\n\nconst fragment = graphql`\n    fragment DangerZoneRealmData on Realm {\n        id\n        name\n        isMainRoot\n        isUserRoot\n        path\n        numberOfDescendants\n    }\n`;\n\ntype Props = {\n    fragRef: DangerZoneRealmData$key;\n};\n\n/**\n * Realm settings that should not be changed lightly.\n */\nexport const DangerZone: React.FC<Props> = ({ fragRef }) => {\n    const { t } = useTranslation();\n    const realm = useFragment(fragment, fragRef);\n\n    const Section: React.FC<{ children: ReactNode }> = ({ children }) => (\n        <div css={{\n            padding: \"16px 16px\",\n            \"&:not(:last-child)\": {\n                borderBottom: `1px solid ${COLORS.danger0}`,\n            },\n            \"& > h3\": {\n                marginBottom: 16,\n            },\n        }}>{children}</div>\n    );\n\n    return <>\n        <h2>{t(\"manage.realm.danger-zone.heading\")}</h2>\n        {realm.isMainRoot\n            ? <p>{t(\"manage.realm.danger-zone.root-note\")}</p>\n            : (\n                <div css={{\n                    border: `2px solid ${COLORS.danger0}`,\n                    borderRadius: 4,\n                    margin: 8,\n                    marginBottom: 96,\n                    marginTop: 16,\n                }}>\n                    <Section><ChangePath realm={realm} /></Section>\n                    <Section><RemoveRealm realm={realm} /></Section>\n                </div>\n            )\n        }\n    </>;\n};\n\nconst changePathMutation = graphql`\n    mutation DangerZoneChangePathMutation($id: ID!, $set: UpdateRealm!) {\n        updateRealm(id: $id, set: $set) {\n            ... DangerZoneRealmData\n        }\n    }\n`;\n\ntype InnerProps = {\n    realm: DangerZoneRealmData$data;\n};\n\nconst ChangePath: React.FC<InnerProps> = ({ realm }) => {\n    type FormData = {\n        pathSegment: string;\n    };\n\n    const router = useRouter();\n    const { t } = useTranslation();\n    const { register, handleSubmit, watch, formState: { errors } } = useForm<FormData>({\n        mode: \"onChange\",\n    });\n\n    const pathSegmentRegex = /[^/]+$/;\n    const currentPathSegment = realm.path.match(pathSegmentRegex)?.[0]\n        ?? bug(\"no path segment in path\");\n    const typedPathSegment = watch(\"pathSegment\", currentPathSegment);\n\n    const [commitError, setCommitError] = useState<JSX.Element | null>(null);\n    const [commit, isInFlight] = useMutation(changePathMutation);\n\n    if (realm.isUserRoot) {\n        return <>\n            <h3>{t(\"manage.realm.danger-zone.change-path.heading\")}</h3>\n            <p css={{ fontSize: 14 }}>\n                {t(\"manage.realm.danger-zone.change-path.cannot-userrealm\")}\n            </p>\n        </>;\n    }\n\n    const onSubmit = handleSubmit(data => {\n        commit({\n            variables: {\n                id: realm.id,\n                set: {\n                    pathSegment: data.pathSegment,\n                },\n            },\n            onCompleted: () => {\n                // We have to change the current URL path, otherwise the URL is invalid.\n                const newPath = realm.path.replace(pathSegmentRegex, data.pathSegment);\n                router.replace(ManageRealmRoute.url({ realmPath: newPath }));\n            },\n            onError: error => {\n                const failure = t(\"manage.realm.danger-zone.change-path.failed\");\n                setCommitError(displayCommitError(error, failure));\n            },\n        });\n    });\n\n    return <>\n        <h3>{t(\"manage.realm.danger-zone.change-path.heading\")}</h3>\n        <p css={{ fontSize: 14 }}>{t(\"manage.realm.danger-zone.change-path.warning\")}</p>\n        <form onSubmit={onSubmit} css={{ marginTop: 32, textAlign: \"center\" }}>\n            <div css={{ marginBottom: 16 }}>\n                <PathSegmentInput\n                    base={realm.path.replace(pathSegmentRegex, \"\")}\n                    spinner={isInFlight}\n                    error={!!errors.pathSegment}\n                    defaultValue={currentPathSegment}\n                    {...register(\"pathSegment\", realmValidations(t).path)}\n                />\n            </div>\n            {errors.pathSegment && <>\n                <Card kind=\"error\" css={{ marginBottom: 16 }}>\n                    {errors.pathSegment.message}\n                </Card>\n                <br />\n            </>}\n            <Button\n                kind=\"danger\"\n                type=\"submit\"\n                disabled={typedPathSegment === currentPathSegment || isInFlight}\n            >\n                {t(\"manage.realm.danger-zone.change-path.button\")}\n            </Button>\n            {boxError(commitError)}\n        </form>\n    </>;\n};\n\n// We fetch all `NavigationData` to update our local cache and show the correct\n// new children, without the removed realm.\nconst removeRealmMutation = graphql`\n    mutation DangerZoneRemoveRealmMutation($id: ID!) {\n        removeRealm(id: $id) {\n            parent {\n                path\n                ... NavigationData\n            }\n        }\n    }\n`;\n\nconst RemoveRealm: React.FC<InnerProps> = ({ realm }) => {\n    const { t } = useTranslation();\n    const [commit] = useMutation(removeRealmMutation);\n    const router = useRouter();\n    const modalRef = useRef<ConfirmationModalHandle>(null);\n\n    const remove = () => {\n        commit({\n            variables: {\n                id: realm.id,\n            },\n            updater: store => store.delete(realm.id),\n            onCompleted: response => {\n                const typedResponse = response as DangerZoneRemoveRealmMutation$data;\n                router.goto(typedResponse.removeRealm.parent?.path ?? \"/\");\n            },\n            onError: error => {\n                const failedAction = t(\"manage.realm.danger-zone.delete.failed\");\n                currentRef(modalRef).reportError(displayCommitError(error, failedAction));\n            },\n        });\n    };\n\n    const buttonContent = realm.numberOfDescendants === 0\n        ? t(\"manage.realm.danger-zone.delete.button-single\")\n        : <span>\n            <Trans i18nKey=\"manage.realm.danger-zone.delete.button\">\n                {{ numSubPages: realm.numberOfDescendants }}\n            </Trans>\n        </span>;\n\n    return <>\n        <h3>{t(\"manage.realm.danger-zone.delete.heading\")}</h3>\n        <p css={{ fontSize: 14 }}>\n            {t(\"manage.realm.danger-zone.delete.warning\")}\n        </p>\n        <div css={{ marginTop: 32, textAlign: \"center\" }}>\n            <Button kind=\"danger\" onClick={() => currentRef(modalRef).open()}>\n                <span css={{ whiteSpace: \"normal\", textWrap: \"balance\" }}>\n                    {buttonContent}\n                </span>\n            </Button>\n        </div>\n        <ConfirmationModal\n            title={t(\"manage.realm.danger-zone.delete.confirm-removal\")}\n            {...{ buttonContent }}\n            onSubmit={remove}\n            ref={modalRef}\n        >\n            <p>\n                <Trans i18nKey=\"manage.realm.danger-zone.delete.cannot-be-undone\" />\n            </p>\n        </ConfirmationModal>\n    </>;\n};\n","import React, { RefObject, useId, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { graphql, useFragment, commitLocalUpdate, useRelayEnvironment } from \"react-relay\";\nimport type { RecordProxy, RecordSourceProxy } from \"relay-runtime\";\nimport { LuPlus, LuHash, LuType, LuFilm, LuLayoutGrid, LuListVideo } from \"react-icons/lu\";\nimport {\n    ProtoButton, bug, useColorScheme, Floating, FloatingContainer,\n    FloatingHandle, FloatingTrigger, WithTooltip, useFloatingItemProps,\n} from \"@opencast/appkit\";\n\nimport { AddButtonsRealmData$key } from \"./__generated__/AddButtonsRealmData.graphql\";\nimport { IconType } from \"react-icons\";\nimport { focusStyle } from \"../../../../ui\";\nimport { COLORS } from \"../../../../color\";\n\n\ntype Props = {\n    index: number;\n    realm: AddButtonsRealmData$key;\n};\n\nexport const AddButtons: React.FC<Props> = ({ index, realm }) => {\n    const { t } = useTranslation();\n    const floatingRef = useRef<FloatingHandle>(null);\n\n    const BUTTON_SIZE = 36;\n\n    return (\n        <FloatingContainer\n            ref={floatingRef}\n            trigger=\"click\"\n            placement=\"top\"\n            borderRadius={8}\n            ariaRole=\"menu\"\n            distance={6}\n            css={{ alignSelf: \"center\" }}\n        >\n            <FloatingTrigger>\n                <div>\n                    <WithTooltip\n                        tooltip={\n                            <div css={{ maxWidth: \"35vw\" }}>\n                                {t(\"manage.realm.content.add\")}\n                            </div>\n                        }\n                        placement=\"right\"\n                    >\n                        <ProtoButton aria-label={t(\"manage.realm.content.add\")} css={{\n                            width: BUTTON_SIZE,\n                            height: BUTTON_SIZE,\n                            fontSize: 24,\n                            borderRadius: 4,\n                            backgroundColor: COLORS.primary0,\n                            color: COLORS.primary0BwInverted,\n                            display: \"flex\",\n                            alignItems: \"center\",\n                            justifyContent: \"center\",\n                            \"&:hover, &:focus\": {\n                                backgroundColor: COLORS.primary1,\n                                color: COLORS.primary1BwInverted,\n                            },\n                            ...focusStyle({ offset: 1 }),\n                        }}>\n                            <LuPlus />\n                        </ProtoButton>\n                    </WithTooltip>\n                </div>\n            </FloatingTrigger>\n            <AddButtonsMenu {...{ index, realm, floatingRef }} />\n        </FloatingContainer>\n    );\n};\n\nconst AddButtonsMenu: React.FC<Props & {floatingRef: RefObject<FloatingHandle>}> = ({\n    index, realm, floatingRef,\n}) => {\n    const isDark = useColorScheme().scheme === \"dark\";\n    const { t } = useTranslation();\n    const itemProps = useFloatingItemProps();\n    const menuId = useId();\n\n    const { id: realmId } = useFragment(graphql`\n        fragment AddButtonsRealmData on Realm {\n            id\n        }\n    `, realm);\n\n    const env = useRelayEnvironment();\n\n    const addBlock = (\n        type: string,\n        prepareBlock?: (store: RecordSourceProxy, block: RecordProxy) => void,\n    ) => {\n        commitLocalUpdate(env, store => {\n            const realm = store.get(realmId) ?? bug(\"could not find realm\");\n\n            const blocks = [\n                ...realm.getLinkedRecords(\"blocks\") ?? bug(\"realm does not have blocks\"),\n            ];\n\n            const id = \"clNEWBLOCK\";\n            const block = store.create(id, `${type}Block`);\n            prepareBlock?.(store, block);\n            block.setValue(true, \"editMode\");\n            block.setValue(id, \"id\");\n\n            blocks.splice(index, 0, block);\n\n            realm.setLinkedRecords(blocks, \"blocks\");\n        });\n    };\n\n    type Block = \"title\" | \"text\" | \"series\" | \"video\" | \"playlist\";\n    const buttonProps: [IconType, Block, () => void][] = [\n        [LuHash, \"title\", () => addBlock(\"Title\")],\n        [LuType, \"text\", () => addBlock(\"Text\")],\n        [LuLayoutGrid, \"series\", () => addBlock(\"Series\", (_store, block) => {\n            block.setValue(\"NEW_TO_OLD\", \"order\");\n            block.setValue(\"GALLERY\", \"layout\");\n            block.setValue(true, \"showTitle\");\n            block.setValue(false, \"showMetadata\");\n        })],\n        [LuFilm, \"video\", () => addBlock(\"Video\", (_store, block) => {\n            block.setValue(true, \"showTitle\");\n            block.setValue(true, \"showLink\");\n        })],\n        [LuListVideo, \"playlist\", () => addBlock(\"Playlist\", (_store, block) => {\n            block.setValue(\"ORIGINAL\", \"order\");\n            block.setValue(\"GALLERY\", \"layout\");\n            block.setValue(true, \"showTitle\");\n            block.setValue(false, \"showMetadata\");\n        })],\n    ];\n\n    return (\n        <Floating\n            padding={0}\n            borderWidth={isDark ? 1 : 0}\n            backgroundColor={isDark ? COLORS.neutral15 : COLORS.neutral05}\n            shadowBlur={12}\n            shadowColor=\"rgba(0, 0, 0, 30%)\"\n            css={{ width: 200 }}\n        >\n            <div css={{\n                fontSize: 14,\n                color: COLORS.neutral60,\n                padding: \"8px 16px\",\n                cursor: \"default\",\n            }}>{t(\"manage.realm.content.add-popup-title\")}</div>\n            <ul css={{\n                listStyle: \"none\",\n                margin: 0,\n                padding: 0,\n                \"& > li:not(:last-child)\": {\n                    borderBottom: `1px solid ${isDark ? COLORS.neutral25 : COLORS.neutral15}`,\n                },\n            }}>\n                {buttonProps.map(([icon, type, onClick], index) => <AddItem\n                    key={`${menuId}-${type}`}\n                    close={() => floatingRef.current?.close()}\n                    Icon={icon}\n                    label={t(`manage.realm.content.add-${type}`)}\n                    {...itemProps(index)}\n                    {...{ onClick }}\n                />)}\n            </ul>\n        </Floating>\n    );\n};\n\ntype AddItemProps = {\n    label: string;\n    Icon: IconType;\n    onClick: () => void;\n    close: () => void;\n};\n\nconst AddItem = React.forwardRef<HTMLButtonElement, AddItemProps>(({\n    label, Icon, onClick, close,\n}, ref) => (\n    <li role=\"menuitem\" css={{\n        \"&:last-child > button\": {\n            borderBottomLeftRadius: 8,\n            borderBottomRightRadius: 8,\n        },\n    }}>\n        <ProtoButton\n            {...{ ref }}\n            onClick={() => {\n                onClick();\n                close();\n            }}\n            css={{\n                width: \"100%\",\n                height: \"100%\",\n                padding: \"6px 16px\",\n                display: \"flex\",\n                alignItems: \"center\",\n                gap: 16,\n                backgroundColor: \"transparent\",\n                \"&:hover, &:focus\": {\n                    backgroundColor: COLORS.neutral10,\n                },\n                ...focusStyle({ inset: true }),\n            }}\n        >\n            {<Icon css={{ color: COLORS.primary0, fontSize: 18 }}/>}\n            {label}\n        </ProtoButton>\n    </li>\n));\n","import React from \"react\";\nimport { useColorScheme } from \"@opencast/appkit\";\n\nimport { focusStyle } from \"../../../../ui\";\nimport { COLORS } from \"../../../../color\";\n\n\ntype ButtonProps = React.ComponentProps<\"button\">;\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>((props, ref) => (\n    <button\n        ref={ref}\n        type=\"button\"\n        css={{\n            display: \"flex\",\n            padding: 6,\n            alignItems: \"center\",\n            border: \"none\",\n            color: COLORS.neutral60,\n            backgroundColor: \"inherit\",\n            transition: \"background-color 0.15s, color 0.15s\",\n            \"&[disabled]\": {\n                color: COLORS.neutral25,\n            },\n            \"&:not([disabled])\": {\n                cursor: \"pointer\",\n                \"&:hover, &:focus\": {\n                    backgroundColor: COLORS.neutral10,\n                    ...useColorScheme().scheme === \"dark\" && {\n                        backgroundColor: COLORS.neutral15,\n                        color: COLORS.neutral80,\n                    },\n                },\n                ...focusStyle({}),\n            },\n        }}\n        {...props}\n    />\n));\n\ntype ButtonGroupProps = React.ComponentProps<\"div\">;\n\nexport const ButtonGroup: React.FC<ButtonGroupProps> = props => (\n    <div\n        {...props}\n        css={{\n            fontSize: 18,\n            display: \"flex\",\n            alignItems: \"center\",\n            border: `1px solid ${COLORS.neutral25}`,\n            borderRadius: 4,\n            \"& > *\": {\n                display: \"flex\",\n                color: COLORS.neutral60,\n                \"&:not(:last-child)\": {\n                    borderRight: `1px solid ${COLORS.neutral25}`,\n                },\n                \"&:last-child > button\": {\n                    borderTopRightRadius: 4,\n                },\n                \"&:first-child > button\": {\n                    borderBottomLeftRadius: 4,\n                },\n            },\n        }}\n    />\n);\n","import React, { useRef } from \"react\";\nimport { useTranslation, Trans } from \"react-i18next\";\nimport { useFragment, graphql, useMutation } from \"react-relay\";\nimport { LuTrash } from \"react-icons/lu\";\nimport { WithTooltip } from \"@opencast/appkit\";\n\nimport type { RemoveButtonData$key } from \"./__generated__/RemoveButtonData.graphql\";\nimport type { RemoveButtonMutation } from \"./__generated__/RemoveButtonMutation.graphql\";\nimport {\n    ConfirmationModal, ConfirmationModalHandle, Modal, ModalHandle,\n} from \"../../../../../ui/Modal\";\nimport { displayCommitError } from \"../../util\";\nimport { Button } from \"../util\";\nimport { currentRef } from \"../../../../../util\";\nimport { COLORS } from \"../../../../../color\";\n\n\ntype Props = {\n    block: RemoveButtonData$key;\n    onConfirm?: () => void;\n    nameSourceBlock?: string;\n};\n\nexport const RemoveButton: React.FC<Props> = ({ block: blockRef, onConfirm, nameSourceBlock }) => {\n    const { t } = useTranslation();\n\n\n    const block = useFragment(graphql`\n        fragment RemoveButtonData on Block {\n            id\n        }\n    `, blockRef);\n\n\n    const [commit] = useMutation<RemoveButtonMutation>(graphql`\n        mutation RemoveButtonMutation($id: ID!) {\n            removeBlock(id: $id) {\n                id @deleteRecord\n                realm {\n                    ... ContentManageRealmData\n                }\n            }\n        }\n    `);\n\n    const remove = () => {\n        commit({\n            variables: block,\n            onCompleted: () => {\n                currentRef(modalRef).done();\n            },\n            onError: error => {\n                currentRef(modalRef).reportError(\n                    displayCommitError(error, t(\"manage.realm.content.removing-failed\")),\n                );\n            },\n        });\n    };\n\n\n    const modalRef = useRef<ConfirmationModalHandle>(null);\n    const cannotDeleteModalRef = useRef<ModalHandle>(null);\n\n    return <>\n        <WithTooltip tooltip={t(\"manage.realm.content.remove\")}>\n            <Button\n                aria-label={t(\"manage.realm.content.remove\")}\n                css={{\n                    color: COLORS.danger0,\n                    \"&&:hover, &&:focus\": {\n                        backgroundColor: COLORS.danger0,\n                        color: COLORS.danger0BwInverted,\n                    },\n                }}\n                onClick={() => {\n                    if (nameSourceBlock === block.id) {\n                        currentRef(cannotDeleteModalRef).open();\n                    } else {\n                        currentRef(modalRef).open();\n                        onConfirm?.();\n                    }\n                }}\n            >\n                <LuTrash />\n            </Button>\n        </WithTooltip>\n        <Modal ref={cannotDeleteModalRef} title={t(\"manage.realm.content.cannot-remove-block\")}>\n            {t(\"manage.realm.content.cannot-remove-name-source-block\")}\n        </Modal>\n        <ConfirmationModal\n            title={t(\"manage.realm.content.confirm-removal\")}\n            buttonContent={t(\"manage.realm.content.remove\")}\n            onSubmit={remove}\n            ref={modalRef}\n        >\n            <p>\n                <Trans i18nKey=\"manage.realm.danger-zone.delete.cannot-be-undone\" />\n            </p>\n        </ConfirmationModal>\n    </>;\n};\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useFragment, graphql, useMutation } from \"react-relay\";\nimport { LuArrowDown, LuArrowUp } from \"react-icons/lu\";\nimport { WithTooltip } from \"@opencast/appkit\";\n\nimport type { MoveButtonsData$key } from \"./__generated__/MoveButtonsData.graphql\";\nimport type { MoveButtonsMutation } from \"./__generated__/MoveButtonsMutation.graphql\";\nimport { Button } from \"../util\";\n\n\ntype Props = {\n    realm: MoveButtonsData$key;\n    index: number;\n    onCommit?: () => void;\n    onCompleted?: () => void;\n    onError?: (error: Error) => void;\n};\n\nexport const MoveButtons: React.FC<Props> = ({\n    realm,\n    index,\n    onCommit,\n    onCompleted,\n    onError,\n}) => {\n    const { t } = useTranslation();\n\n\n    const { id: realmId, blocks } = useFragment(graphql`\n        fragment MoveButtonsData on Realm {\n            id\n            # We need this list only for the length,\n            # but we have to query *something* from it.\n            blocks { id }\n        }\n    `, realm);\n\n\n    const [commitMove] = useMutation<MoveButtonsMutation>(graphql`\n        mutation MoveButtonsMutation($realmId: ID!, $indexA: Int!, $indexB: Int!) {\n            swapBlocksByIndex(realm: $realmId, indexA: $indexA, indexB: $indexB) {\n                ... ContentManageRealmData\n            }\n        }\n    `);\n\n    const move = (direction: -1 | 1) => {\n        commitMove({\n            variables: {\n                realmId,\n                indexA: index,\n                indexB: index + direction,\n            },\n            onCompleted,\n            onError,\n        });\n        onCommit?.();\n    };\n\n\n    return <>\n        <WithTooltip tooltip={t(\"manage.realm.content.move-down\")}>\n            <Button\n                aria-label={t(\"manage.realm.content.move-down\")}\n                disabled={index === blocks.length - 1}\n                onClick={() => move(1)}\n            >\n                <LuArrowDown />\n            </Button>\n        </WithTooltip>\n        <WithTooltip tooltip={t(\"manage.realm.content.move-up\")}>\n            <Button\n                aria-label={t(\"manage.realm.content.move-up\")}\n                disabled={index === 0}\n                onClick={() => move(-1)}\n            >\n                <LuArrowUp />\n            </Button>\n        </WithTooltip>\n    </>;\n};\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { graphql, useFragment } from \"react-relay\";\nimport { LuPenSquare } from \"react-icons/lu\";\nimport { WithTooltip } from \"@opencast/appkit\";\n\nimport type {\n    EditButtonsRealmData$key,\n} from \"./__generated__/EditButtonsRealmData.graphql\";\nimport { Button, ButtonGroup as BaseButtonGroup } from \"../util\";\nimport { RemoveButton } from \"./RemoveButton\";\nimport { MoveButtons } from \"./MoveButtons\";\n\n\ntype Props = {\n    realm: EditButtonsRealmData$key;\n    index: number;\n    onCommit?: () => void;\n    onCompleted?: () => void;\n    onError?: (error: Error, action: \"manage.realm.content.moving-failed\") => void;\n    onEdit?: () => void;\n};\n\nexport const EditButtons: React.FC<Props> = ({\n    realm: realmRef,\n    index,\n    onCommit,\n    onCompleted,\n    onError,\n    onEdit,\n}) => {\n    const { t } = useTranslation();\n\n    const realm = useFragment(graphql`\n        fragment EditButtonsRealmData on Realm {\n            ... MoveButtonsData\n            blocks {\n                ... RemoveButtonData\n            }\n            nameSource {\n                ... on RealmNameFromBlock {\n                    block { id }\n                }\n            }\n        }\n    `, realmRef);\n    const { blocks } = realm;\n\n    const onMoveError = (error: Error) => {\n        onError?.(error, \"manage.realm.content.moving-failed\");\n    };\n\n    return <ButtonGroup>\n        <MoveButtons {...{ realm, index, onCommit, onCompleted }} onError={onMoveError} />\n        <WithTooltip tooltip={t(\"manage.realm.content.edit\")}>\n            <Button aria-label={t(\"manage.realm.content.edit\")} onClick={onEdit}>\n                <LuPenSquare />\n            </Button>\n        </WithTooltip>\n        <RemoveButton\n            block={blocks[index]}\n            onConfirm={onCompleted}\n            nameSourceBlock={realm.nameSource?.block?.id}\n        />\n    </ButtonGroup>;\n};\n\ntype ButtonGroupProps = React.ComponentProps<typeof BaseButtonGroup>;\n\nexport const ButtonGroup: React.FC<ButtonGroupProps> = props => (\n    <BaseButtonGroup css={{\n        float: \"right\",\n        borderTop: \"none\",\n        borderRight: \"none\",\n        borderTopLeftRadius: 0,\n        borderTopRightRadius: 0,\n        borderBottomRightRadius: 0,\n        marginTop: -12,\n        marginRight: -12,\n    }} {...props} />\n);\n\n// For use in block mutations that might have an effect on the realm name.\n// Only used to be included in queries in order to update the store\n// eslint-disable-next-line @typescript-eslint/no-unused-expressions\nconst _frag = graphql`\n    fragment EditBlockUpdateRealmNameData on Block {\n        realm {\n            name,\n            nameSource {\n                ... on RealmNameFromBlock {\n                    block { id }\n                }\n            }\n        }\n    }\n`;\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { graphql, useFragment, useMutation } from \"react-relay\";\nimport { useFormContext } from \"react-hook-form\";\n\nimport { Input } from \"../../../../../../ui/Input\";\nimport { EditModeForm } from \".\";\nimport type {\n    TitleEditModeBlockData$key,\n} from \"./__generated__/TitleEditModeBlockData.graphql\";\nimport type {\n    TitleEditCreateMutation,\n} from \"./__generated__/TitleEditCreateMutation.graphql\";\nimport type {\n    TitleEditSaveMutation,\n} from \"./__generated__/TitleEditSaveMutation.graphql\";\n\n\ntype TitleFormData = {\n    content: string;\n};\n\ntype EditTitleBlockProps = {\n    block: TitleEditModeBlockData$key;\n};\n\nexport const EditTitleBlock: React.FC<EditTitleBlockProps> = ({ block: blockRef }) => {\n    const { t } = useTranslation();\n\n\n    const { content } = useFragment(graphql`\n        fragment TitleEditModeBlockData on TitleBlock {\n            content\n        }\n    `, blockRef);\n\n\n    const form = useFormContext<TitleFormData>();\n\n\n    const [save] = useMutation<TitleEditSaveMutation>(graphql`\n        mutation TitleEditSaveMutation($id: ID!, $set: UpdateTitleBlock!) {\n            updateTitleBlock(id: $id, set: $set) {\n                ... BlocksBlockData\n            }\n        }\n    `);\n\n    const [create] = useMutation<TitleEditCreateMutation>(graphql`\n        mutation TitleEditCreateMutation($realm: ID!, $index: Int!, $block: NewTitleBlock!) {\n            addTitleBlock(realm: $realm, index: $index, block: $block) {\n                ... ContentManageRealmData\n            }\n        }\n    `);\n\n\n    return <EditModeForm create={create} save={save} map={(data: TitleFormData) => data}>\n        <h3><Input\n            placeholder={t(\"manage.realm.content.title.content\")}\n            defaultValue={content}\n            css={{ display: \"block\", width: \"100%\" }}\n            {...form.register(\"content\")}\n        /></h3>\n    </EditModeForm>;\n};\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { graphql, useFragment, useMutation } from \"react-relay\";\nimport { useFormContext } from \"react-hook-form\";\n\nimport { TextArea } from \"../../../../../../ui/Input\";\nimport { EditModeForm } from \".\";\nimport type {\n    TextEditModeBlockData$key,\n} from \"./__generated__/TextEditModeBlockData.graphql\";\nimport type {\n    TextEditCreateMutation,\n} from \"./__generated__/TextEditCreateMutation.graphql\";\nimport type {\n    TextEditSaveMutation,\n} from \"./__generated__/TextEditSaveMutation.graphql\";\n\n\ntype TextFormData = {\n    content: string;\n};\n\ntype EditTextBlockProps = {\n    block: TextEditModeBlockData$key;\n};\n\nexport const EditTextBlock: React.FC<EditTextBlockProps> = ({ block: blockRef }) => {\n    const { t } = useTranslation();\n\n\n    const { content } = useFragment(graphql`\n        fragment TextEditModeBlockData on TextBlock {\n            content\n        }\n    `, blockRef);\n\n\n    const form = useFormContext<TextFormData>();\n\n\n    const [save] = useMutation<TextEditSaveMutation>(graphql`\n        mutation TextEditSaveMutation($id: ID!, $set: UpdateTextBlock!) {\n            updateTextBlock(id: $id, set: $set) {\n                ... BlocksBlockData\n            }\n        }\n    `);\n\n    const [create] = useMutation<TextEditCreateMutation>(graphql`\n        mutation TextEditCreateMutation($realm: ID!, $index: Int!, $block: NewTextBlock!) {\n            addTextBlock(realm: $realm, index: $index, block: $block) {\n                ... ContentManageRealmData\n            }\n        }\n    `);\n\n\n    return <EditModeForm create={create} save={save} map={(data: TextFormData) => data}>\n        <TextArea\n            placeholder={t(\"manage.realm.content.text.content\")}\n            defaultValue={content}\n            css={{ display: \"block\" }}\n            {...form.register(\"content\")}\n        />\n    </EditModeForm>;\n};\n","import React, { ReactNode, useId } from \"react\";\nimport { COLORS } from \"../../../../../../color\";\nimport { screenWidthAbove, screenWidthAtMost } from \"@opencast/appkit\";\nimport { BREAKPOINT_SMALL } from \"../../../../../../GlobalStyle\";\nimport { DisplayOptionGroup } from \"../../../../../../ui/Input\";\nimport { useTranslation } from \"react-i18next\";\nimport { FieldValues, UseFormReturn } from \"react-hook-form\";\nimport {\n    VideoListLayout,\n    VideoListOrder,\n} from \"../../../../../../ui/Blocks/__generated__/SeriesBlockData.graphql\";\n\n\nexport const Heading: React.FC<{ id?: string; children: ReactNode }> = ({ id, children }) =>\n    <h3 id={id} css={{\n        \":not(:first-of-type)\": { marginTop: 12 },\n        marginBottom: 8,\n        fontSize: 18,\n    }}>\n        {children}\n    </h3>;\n\n\ntype NiceRadioProps = React.PropsWithChildren<{\n    breakpoint: number;\n}>;\n\n/**\n * A form input element letting the user chose between different options.\n * `children` should be a list of `NiceRadioOption`.\n */\nexport const NiceRadio: React.FC<NiceRadioProps> = ({ children, breakpoint }) => (\n    // Getting this styled with CSS is quite fiddly mainly due to border radius.\n    <div css={{\n        display: \"inline-flex\",\n        [screenWidthAtMost(breakpoint)]: {\n            flexDirection: \"column\",\n        },\n\n        \"& > label\": {\n            \"& > div\": {\n                border: `1px solid ${COLORS.neutral40}`,\n                padding: \"6px 12px\",\n                cursor: \"pointer\",\n                backgroundColor: COLORS.neutral05,\n            },\n            \"& > input:checked + div\": {\n                backgroundColor: COLORS.neutral10,\n                outline: `2px solid ${COLORS.primary0}`,\n                outlineOffset: -2,\n                position: \"relative\", // Needed so that the outline is over sibling divs\n            },\n            // The attribute selector increases specificity\n            \":focus-within div[role='button']\": {\n                backgroundColor: COLORS.neutral20,\n                outline: `3px solid ${COLORS.primary0}`,\n            },\n            \"& > input\": {\n                position: \"absolute\",\n                opacity: 0, // Needed for the radio input to work for keyboard-only users\n            },\n            [screenWidthAtMost(breakpoint)]: {\n                \"&:first-child > div\": {\n                    borderRadius: \"8px 8px 0 0\",\n                },\n                \"&:last-child > div\": {\n                    borderRadius: \"0 0 8px 8px\",\n                },\n                \"&:not(:first-child) > div\": {\n                    marginTop: -1,\n                },\n            },\n            [screenWidthAbove(breakpoint)]: {\n                \":first-child > div\": {\n                    borderRadius: \"8px 0 0 8px\",\n                },\n                \"&:last-child > div\": {\n                    borderRadius: \"0 8px 8px 0\",\n                },\n                \"&:not(:first-child) > div\": {\n                    marginLeft: -1,\n                },\n            },\n        },\n    }}>{children}</div>\n);\n\n\n\ntype NiceRadioOptionProps = React.PropsWithChildren<JSX.IntrinsicElements[\"input\"]>;\n\nexport const NiceRadioOption = React.forwardRef<HTMLInputElement, NiceRadioOptionProps>(\n    ({ children, ...rest }, ref) => (\n        <label>\n            <input type=\"radio\" ref={ref} {...rest} />\n            <div role=\"button\">{children}</div>\n        </label>\n    ),\n);\n\ntype VideoListFormFieldProps<TFieldValues extends FieldValues> = {\n    form: UseFormReturn<TFieldValues>;\n    order: VideoListOrder;\n    layout: VideoListLayout;\n    showTitle: boolean;\n    showMetadata: boolean;\n    allowOriginalOrder?: boolean;\n}\n\nexport function VideoListFormFields<TFieldValues extends FieldValues>({\n    form,\n    order,\n    layout,\n    showTitle,\n    showMetadata,\n    allowOriginalOrder,\n}: VideoListFormFieldProps<TFieldValues>) {\n    const { t } = useTranslation();\n    const headingId = useId();\n    const optionProps = [\n        {\n            option: \"order\",\n            title: t(\"videolist-block.settings.new-to-old\"),\n            checked: order === \"NEW_TO_OLD\",\n            value: \"NEW_TO_OLD\",\n        },\n        {\n            option: \"order\",\n            title: t(\"videolist-block.settings.old-to-new\"),\n            checked: order === \"OLD_TO_NEW\",\n            value: \"OLD_TO_NEW\",\n        },\n        {\n            option: \"order\",\n            title: t(\"videolist-block.settings.a-z\"),\n            checked: order === \"AZ\",\n            value: \"AZ\",\n        },\n        {\n            option: \"order\",\n            title: t(\"videolist-block.settings.z-a\"),\n            checked: order === \"ZA\",\n            value: \"ZA\",\n        },\n    ];\n    if (allowOriginalOrder) {\n        optionProps.unshift({\n            option: \"order\",\n            title: t(\"videolist-block.settings.original\"),\n            checked: order === \"ORIGINAL\",\n            value: \"ORIGINAL\",\n        });\n    }\n\n    return (\n        <div\n            css={{\n                display: \"flex\",\n                flexDirection: \"row\",\n                flexWrap: \"wrap\",\n                marginTop: 12,\n                justifyContent: \"start\",\n                rowGap: 24,\n                columnGap: 96,\n                [screenWidthAtMost(1000)]: {\n                    columnGap: 48,\n                },\n                [screenWidthAtMost(BREAKPOINT_SMALL)]: {\n                    flexDirection: \"column\",\n                    gap: 12,\n                },\n            }}\n        >\n            <div\n                role=\"group\"\n                aria-labelledby={headingId + \"-order\"}\n            >\n                <Heading id={headingId + \"-order\"}>{t(\"videolist-block.settings.order\")}</Heading>\n                <DisplayOptionGroup type=\"radio\" {...{ form, optionProps }} />\n            </div>\n            <div\n                role=\"group\"\n                aria-labelledby={headingId + \"-view\"}\n            >\n                <Heading id={headingId + \"-view\"}>{t(\"videolist-block.settings.layout\")}</Heading>\n                <DisplayOptionGroup type=\"radio\" {...{ form }} optionProps={[\n                    {\n                        option: \"layout\",\n                        title: t(\"videolist-block.settings.slider\"),\n                        checked: layout === \"SLIDER\",\n                        value: \"SLIDER\",\n                    },\n                    {\n                        option: \"layout\",\n                        title: t(\"videolist-block.settings.gallery\"),\n                        checked: layout === \"GALLERY\",\n                        value: \"GALLERY\",\n                    },\n                    {\n                        option: \"layout\",\n                        title: t(\"videolist-block.settings.list\"),\n                        checked: layout === \"LIST\",\n                        value: \"LIST\",\n                    },\n                ]} />\n            </div>\n            <div\n                role=\"group\"\n                aria-labelledby={headingId + \"-metadata\"}\n            >\n                <Heading id={headingId + \"-metadata\"}>\n                    {t(\"manage.realm.content.series.metadata.heading\")}\n                </Heading>\n                <DisplayOptionGroup type=\"checkbox\" {...{ form }} optionProps={[\n                    {\n                        option: \"showTitle\",\n                        title: t(\"manage.realm.content.show-title\"),\n                        checked: showTitle,\n                    },\n                    {\n                        option: \"showMetadata\",\n                        title: t(\"manage.realm.content.show-description\"),\n                        checked: showMetadata,\n                    },\n                ]} />\n            </div>\n        </div>\n    );\n}\n\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { graphql, useFragment, useMutation } from \"react-relay\";\nimport { useController, useFormContext } from \"react-hook-form\";\n\nimport { EditModeForm } from \".\";\nimport { Heading, VideoListFormFields } from \"./util\";\nimport type {\n    VideoListOrder,\n    VideoListLayout,\n    SeriesEditModeBlockData$key,\n} from \"./__generated__/SeriesEditModeBlockData.graphql\";\nimport {\n    SeriesEditSaveMutation,\n} from \"./__generated__/SeriesEditSaveMutation.graphql\";\nimport {\n    SeriesEditCreateMutation,\n} from \"./__generated__/SeriesEditCreateMutation.graphql\";\nimport { Card } from \"@opencast/appkit\";\nimport { VideoListSelector } from \"../../../../../../ui/SearchableSelect\";\nimport { InfoTooltip } from \"../../../../../../ui\";\nimport { isRealUser, useUser } from \"../../../../../../User\";\n\n\ntype SeriesFormData = {\n    series: string;\n    order: VideoListOrder;\n    layout: VideoListLayout;\n    showTitle: boolean;\n    showMetadata: boolean;\n};\n\ntype EditSeriesBlockProps = {\n    block: SeriesEditModeBlockData$key;\n};\n\nexport const EditSeriesBlock: React.FC<EditSeriesBlockProps> = ({ block: blockRef }) => {\n    const { series, showTitle, showMetadata, order, layout } = useFragment(graphql`\n        fragment SeriesEditModeBlockData on SeriesBlock {\n            series {\n                id\n                opencastId\n                title\n                syncedData {\n                    # only queried to see whether syncedData is null\n                    description\n                }\n            }\n            showTitle\n            showMetadata\n            order\n            layout\n        }\n    `, blockRef);\n\n    const [save] = useMutation<SeriesEditSaveMutation>(graphql`\n        mutation SeriesEditSaveMutation($id: ID!, $set: UpdateSeriesBlock!) {\n            updateSeriesBlock(id: $id, set: $set) {\n                ... BlocksBlockData\n                ... EditBlockUpdateRealmNameData\n            }\n        }\n    `);\n\n    const [create] = useMutation<SeriesEditCreateMutation>(graphql`\n        mutation SeriesEditCreateMutation($realm: ID!, $index: Int!, $block: NewSeriesBlock!) {\n            addSeriesBlock(realm: $realm, index: $index, block: $block) {\n                ... ContentManageRealmData\n            }\n        }\n    `);\n\n    const { t } = useTranslation();\n    const user = useUser();\n\n    const form = useFormContext<SeriesFormData>();\n    const { formState: { errors }, control } = form;\n    const { field: seriesField } = useController({\n        defaultValue: series?.id,\n        name: \"series\",\n        control,\n        rules: { required: true },\n    });\n\n    return <EditModeForm create={create} save={save} map={(data: SeriesFormData) => data}>\n        <Heading>\n            {t(\"manage.realm.content.series.series.heading\")}\n            {isRealUser(user) && !user.canFindUnlisted && <InfoTooltip\n                info={t(\"manage.realm.content.series.series.findable-series-note\")}\n            />}\n        </Heading>\n        {\"series\" in errors && <div css={{ margin: \"8px 0\" }}>\n            <Card kind=\"error\">{t(\"manage.realm.content.series.series.invalid\")}</Card>\n        </div>}\n        <VideoListSelector\n            type=\"series\"\n            defaultValue={series == null ? undefined : {\n                ...series,\n                description: series.syncedData?.description ?? null,\n            }}\n            onChange={data => seriesField.onChange(data?.id)}\n            onBlur={seriesField.onBlur}\n            autoFocus\n        />\n        <VideoListFormFields {...{ form, order, layout, showMetadata, showTitle }} />\n    </EditModeForm>;\n};\n","import React, { ReactNode, useState } from \"react\";\nimport { fetchQuery, graphql, useFragment, useMutation } from \"react-relay\";\nimport { useTranslation } from \"react-i18next\";\nimport { TFunction } from \"i18next\";\nimport { Controller, useFormContext } from \"react-hook-form\";\n\nimport { Card } from \"@opencast/appkit\";\nimport { EditModeForm } from \".\";\nimport { Heading } from \"./util\";\nimport type {\n    VideoEditModeBlockData$data,\n    VideoEditModeBlockData$key,\n} from \"./__generated__/VideoEditModeBlockData.graphql\";\nimport type { VideoEditSaveMutation } from \"./__generated__/VideoEditSaveMutation.graphql\";\nimport type { VideoEditCreateMutation } from \"./__generated__/VideoEditCreateMutation.graphql\";\nimport { SearchableSelect } from \"../../../../../../ui/SearchableSelect\";\nimport { Creators, Thumbnail } from \"../../../../../../ui/Video\";\nimport { environment } from \"../../../../../../relay\";\nimport { VideoEditModeSearchQuery } from \"./__generated__/VideoEditModeSearchQuery.graphql\";\nimport { MovingTruck } from \"../../../../../../ui/Waiting\";\nimport { ErrorDisplay } from \"../../../../../../util/err\";\nimport { DisplayOptionGroup } from \"../../../../../../ui/Input\";\nimport { InfoTooltip } from \"../../../../../../ui\";\nimport { isRealUser, useUser } from \"../../../../../../User\";\n\n\ntype VideoFormData = {\n    event: string;\n    showTitle: boolean;\n    showLink: boolean;\n};\n\ntype EditVideoBlockProps = {\n    block: VideoEditModeBlockData$key;\n};\n\nexport const EditVideoBlock: React.FC<EditVideoBlockProps> = ({ block: blockRef }) => {\n    const { event, showTitle, showLink } = useFragment(graphql`\n        fragment VideoEditModeBlockData on VideoBlock {\n            event {\n                __typename,\n                ... on NotAllowed { dummy }\n                ... on AuthorizedEvent {\n                    id\n                    title\n                    series { title }\n                    created\n                    isLive\n                    creators\n                    syncedData { thumbnail duration startTime endTime }\n                }\n            }\n            showTitle\n            showLink\n        }\n    `, blockRef);\n\n\n    const [save] = useMutation<VideoEditSaveMutation>(graphql`\n        mutation VideoEditSaveMutation($id: ID!, $set: UpdateVideoBlock!) {\n            updateVideoBlock(id: $id, set: $set) {\n                ... VideoEditModeBlockData\n                ... BlocksBlockData\n                ... EditBlockUpdateRealmNameData\n            }\n        }\n    `);\n\n    const [create] = useMutation<VideoEditCreateMutation>(graphql`\n        mutation VideoEditCreateMutation($realm: ID!, $index: Int!, $block: NewVideoBlock!) {\n            addVideoBlock(realm: $realm, index: $index, block: $block) {\n                ... ContentManageRealmData\n            }\n        }\n    `);\n\n    const { t } = useTranslation();\n    const user = useUser();\n\n    const form = useFormContext<VideoFormData>();\n    const { formState: { errors } } = form;\n\n    const currentEvent = event?.__typename === \"AuthorizedEvent\"\n        ? { ...event, ...event.syncedData, seriesTitle: event.series?.title }\n        : undefined;\n\n    return <EditModeForm create={create} save={save} map={(data: VideoFormData) => data}>\n        <Heading>\n            {t(\"manage.realm.content.event.event.heading\")}\n            {isRealUser(user) && !user.canFindUnlisted && <InfoTooltip\n                info={t(\"manage.realm.content.event.event.findable-events-note\")}\n            />}\n        </Heading>\n        {\"event\" in errors && <div css={{ margin: \"8px 0\" }}>\n            <Card kind=\"error\">{t(\"manage.realm.content.event.event.invalid\")}</Card>\n        </div>}\n        {event?.__typename === \"NotAllowed\" && <Card kind=\"error\" css={{ margin: \"8px 0\" }}>\n            {t(\"manage.realm.content.event.event.no-read-access-to-current\")}\n        </Card>}\n        <Controller\n            defaultValue={currentEvent?.id}\n            name=\"event\"\n            rules={{ required: true }}\n            render={({ field: { onChange, onBlur } }) => (\n                <EventSelector defaultValue={currentEvent} {...{ onChange, onBlur }} />\n            )}\n        />\n        <DisplayOptionGroup type=\"checkbox\" {...{ form }} optionProps={[\n            {\n                option: \"showTitle\",\n                title: t(\"manage.realm.content.show-title\"),\n                checked: showTitle,\n            },\n            {\n                option: \"showLink\",\n                title: t(\"manage.realm.content.show-link\"),\n                checked: showLink,\n            },\n        ]} />\n    </EditModeForm>;\n};\n\ntype EventSelectorProps = {\n    onChange: (eventId?: string) => void;\n    onBlur: () => void;\n    defaultValue?: Option;\n};\n\nconst EventSelector: React.FC<EventSelectorProps> = ({ onChange, onBlur, defaultValue }) => {\n    const { t } = useTranslation();\n    const [error, setError] = useState<ReactNode>(null);\n\n    const query = graphql`\n        query VideoEditModeSearchQuery($q: String!) {\n            events: searchAllEvents(query: $q, writableOnly: false) {\n                ... on EventSearchResults {\n                    items {\n                        id\n                        title\n                        seriesTitle\n                        creators\n                        thumbnail\n                        isLive\n                        created\n                        duration\n                        startTime\n                        endTime\n                    }\n                }\n            }\n        }\n    `;\n\n    const loadEvents = (input: string, callback: (options: readonly Option[]) => void) => {\n        fetchQuery<VideoEditModeSearchQuery>(environment, query, { q: input }).subscribe({\n            next: ({ events }) => {\n                if (events.items === undefined) {\n                    setError(t(\"search.unavailable\"));\n                    return;\n                }\n\n                callback(events.items.map(item => ({\n                    ...item,\n                    // Events returned by the search API have a different ID\n                    // prefix than other events. And the mutation expects an ID\n                    // starting with `ev`.\n                    id: item.id.replace(/^es/, \"ev\"),\n                    syncedData: item,\n                    series: item.seriesTitle == null ? null : { title: item.seriesTitle },\n                })));\n            },\n            start: () => {},\n            error: (error: Error) => setError(<ErrorDisplay error={error} />),\n        });\n    };\n\n    return <>\n        {error && <Card kind=\"error\" css={{ marginBottom: 8 }}>{error}</Card>}\n        <SearchableSelect\n            autoFocus\n            loadOptions={loadEvents}\n            format={formatOption}\n            onChange={data => onChange(data?.id)}\n            isDisabled={!!error}\n            {...{ onBlur, defaultValue }}\n        />\n    </>;\n};\n\nconst formatOption = (event: Option, t: TFunction) => (\n    <div css={{ display: \"flex\", gap: 16, padding: \"4px 0\" }}>\n        {event.syncedData === null\n            ? <MovingTruck />\n            : <Thumbnail\n                css={{ width: 120, minWidth: 120 }}\n                event={{\n                    ...event,\n                    syncedData: event.syncedData && {\n                        ...event.syncedData,\n                        audioOnly: false, // TODO\n                    },\n                }}\n            />}\n        <div>\n            <div>{event.title}</div>\n            <Creators creators={event.creators} />\n            {event.series?.title && <div css={{ fontSize: 14 }}>\n                <i>{t(\"series.series\")}</i>{\": \"}\n                {event.series?.title}\n            </div>}\n        </div>\n    </div>\n);\n\ntype AuthorizedEvent = Extract<\n    VideoEditModeBlockData$data[\"event\"],\n    { __typename: \"AuthorizedEvent\" }\n>;\ntype Option = Omit<AuthorizedEvent, \"__typename\">;\n","import { graphql, useFragment, useMutation } from \"react-relay\";\nimport {\n    PlaylistEditModeBlockData$key,\n    VideoListLayout,\n    VideoListOrder,\n} from \"./__generated__/PlaylistEditModeBlockData.graphql\";\nimport { PlaylistEditSaveMutation } from \"./__generated__/PlaylistEditSaveMutation.graphql\";\nimport { PlaylistEditCreateMutation } from \"./__generated__/PlaylistEditCreateMutation.graphql\";\nimport { useTranslation } from \"react-i18next\";\nimport { isRealUser, useUser } from \"../../../../../../User\";\nimport { useController, useFormContext } from \"react-hook-form\";\nimport { EditModeForm } from \".\";\nimport { Heading, VideoListFormFields } from \"./util\";\nimport { VideoListSelector } from \"../../../../../../ui/SearchableSelect\";\nimport { InfoTooltip } from \"../../../../../../ui\";\nimport { Card } from \"@opencast/appkit\";\n\ntype PlaylistFormData = {\n    playlist: string;\n    order: VideoListOrder;\n    layout: VideoListLayout;\n    showTitle: boolean;\n    showMetadata: boolean;\n};\n\ntype EditPlaylistBlockProps = {\n    block: PlaylistEditModeBlockData$key;\n}\n\nexport const EditPlaylistBlock: React.FC<EditPlaylistBlockProps> = ({ block: blockRef }) => {\n    const { playlist, showTitle, showMetadata, order, layout } = useFragment(graphql`\n        fragment PlaylistEditModeBlockData on PlaylistBlock {\n            playlist {\n                __typename\n                ...on NotAllowed { dummy }\n                ...on AuthorizedPlaylist {\n                    id\n                    opencastId\n                    title\n                    description\n                }\n            }\n            showTitle\n            showMetadata\n            order\n            layout\n        }\n    `, blockRef);\n\n    const [save] = useMutation<PlaylistEditSaveMutation>(graphql`\n        mutation PlaylistEditSaveMutation($id: ID!, $set: UpdatePlaylistBlock!) {\n            updatePlaylistBlock(id: $id, set: $set) {\n                ... BlocksBlockData\n                ... EditBlockUpdateRealmNameData\n            }\n        }\n    `);\n\n    const [create] = useMutation<PlaylistEditCreateMutation>(graphql`\n        mutation PlaylistEditCreateMutation($realm: ID!, $index: Int!, $block: NewPlaylistBlock!) {\n            addPlaylistBlock(realm: $realm, index: $index, block: $block) {\n                ... ContentManageRealmData\n            }\n        }\n    `);\n\n    const { t } = useTranslation();\n    const user = useUser();\n\n    if (playlist != null && playlist.__typename !== \"AuthorizedPlaylist\") {\n        return t(\"playlist.not-allowed-playlist-block\");\n    }\n\n    const form = useFormContext<PlaylistFormData>();\n    const { formState: { errors }, control } = form;\n    const { field: playlistField } = useController({\n        defaultValue: playlist?.id,\n        name: \"playlist\",\n        control,\n        rules: { required: true },\n    });\n\n\n    return <EditModeForm create={create} save={save} map={(data: PlaylistFormData) => data}>\n        <Heading>\n            {t(\"manage.realm.content.playlist.playlist.heading\")}\n            {isRealUser(user) && !user.canFindUnlisted && <InfoTooltip\n                info={t(\"manage.realm.content.playlist.playlist.findable-playlist-note\")}\n            />}\n        </Heading>\n        {\"playlist\" in errors && <div css={{ margin: \"8px 0\" }}>\n            <Card kind=\"error\">{t(\"manage.realm.content.playlist.playlist.invalid\")}</Card>\n        </div>}\n        <VideoListSelector\n            type=\"playlist\"\n            defaultValue={playlist == null ? undefined : {\n                ...playlist,\n                description: playlist.description ?? null,\n            }}\n            onChange={data => playlistField.onChange(data?.id)}\n            onBlur={playlistField.onBlur}\n            autoFocus\n        />\n        <VideoListFormFields allowOriginalOrder {...{\n            form,\n            order,\n            layout,\n            showMetadata,\n            showTitle,\n        }} />\n    </EditModeForm>;\n};\n\n\n","import React, { useRef, useContext } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { graphql, useFragment } from \"react-relay\";\nimport { useForm, useFormContext, FormProvider } from \"react-hook-form\";\nimport { bug, match } from \"@opencast/appkit\";\n\nimport { ConfirmationModal, ConfirmationModalHandle } from \"../../../../../../ui/Modal\";\nimport { Button } from \"@opencast/appkit\";\nimport { currentRef, useOnOutsideClick } from \"../../../../../../util\";\nimport type { EditModeRealmData$key } from \"./__generated__/EditModeRealmData.graphql\";\nimport type { EditModeFormRealmData$key } from \"./__generated__/EditModeFormRealmData.graphql\";\nimport { EditTitleBlock } from \"./Title\";\nimport { EditTextBlock } from \"./Text\";\nimport { EditSeriesBlock } from \"./Series\";\nimport { EditVideoBlock } from \"./Video\";\nimport FocusTrap from \"focus-trap-react\";\nimport { EditPlaylistBlock } from \"./Playlist\";\n\n\ntype EditModeProps = {\n    realm: EditModeRealmData$key;\n    index: number;\n    onCancel?: () => void;\n    onSave?: () => void;\n    onCompleted?: () => void;\n    onError?: (error: Error) => void;\n};\n\ntype EditModeFormContextContent =\n    Omit<EditModeProps, \"realm\"> & { realm: EditModeFormRealmData$key };\n\nconst EditModeFormContext = React.createContext<EditModeFormContextContent | null>(null);\n\nexport const EditMode: React.FC<EditModeProps> = props => {\n    const { realm: realmRef, index } = props;\n    const result = useFragment(graphql`\n        fragment EditModeRealmData on Realm {\n            blocks {\n                # Querying only the type and the fragments bugs out Relay type generation\n                id\n                __typename\n                ... on TitleBlock { ...TitleEditModeBlockData }\n                ... on TextBlock { ...TextEditModeBlockData }\n                ... on SeriesBlock { ...SeriesEditModeBlockData }\n                ... on VideoBlock { ...VideoEditModeBlockData }\n                ... on PlaylistBlock { ...PlaylistEditModeBlockData }\n            }\n            ...EditModeFormRealmData\n        }\n    `, realmRef);\n    const block = result.blocks[index];\n    const { __typename: type } = block;\n\n    const form = useForm();\n\n    return <EditModeFormContext.Provider value={{ ...props, realm: result }}>\n        <FormProvider {...form}>\n            {match(type, {\n                TitleBlock: () => <EditTitleBlock block={block} />,\n                TextBlock: () => <EditTextBlock block={block} />,\n                SeriesBlock: () => <EditSeriesBlock block={block} />,\n                VideoBlock: () => <EditVideoBlock block={block} />,\n                PlaylistBlock: () => <EditPlaylistBlock block={block} />,\n            }, () => bug(\"unknown block type\"))}\n        </FormProvider>\n    </EditModeFormContext.Provider>;\n};\n\n\ntype EditModeFormProps<FormData, ApiData = FormData> = {\n    save: (config: {\n        variables: {\n            id: string;\n            set: ApiData;\n        };\n        onCompleted?: () => void;\n        onError?: (error: Error) => void;\n    }) => void;\n    create: (config: {\n        variables: {\n            realm: string;\n            index: number;\n            block: ApiData;\n        };\n        onCompleted?: () => void;\n        onError?: (error: Error) => void;\n    }) => void;\n    map: (data: FormData) => ApiData;\n};\n\nexport const EditModeForm = <FormData extends object, ApiData extends object>(\n    { save, create, children, map }: React.PropsWithChildren<EditModeFormProps<FormData, ApiData>>,\n) => {\n    const { realm: realmRef, index, onSave, onCancel, onCompleted, onError }\n        = useContext(EditModeFormContext) ?? bug(\"missing context provider\");\n\n    const { t } = useTranslation();\n    const { formState: { isDirty } } = useFormContext();\n    const modalRef = useRef<ConfirmationModalHandle>(null);\n    const ref = useRef<HTMLFormElement>(null);\n\n    const handleOnCancel = () => {\n        if (isDirty) {\n            currentRef(modalRef).open();\n        } else {\n            onCancel?.();\n        }\n    };\n\n    useOnOutsideClick(ref, () => handleOnCancel());\n\n    const { id: realm, blocks } = useFragment(graphql`\n        fragment EditModeFormRealmData on Realm {\n            id\n            blocks { id }\n        }\n    `, realmRef);\n    const { id } = blocks[index];\n\n\n    const form = useFormContext<FormData>();\n\n    const onSubmit = form.handleSubmit(data => {\n        onSave?.();\n\n        if (id.startsWith(\"cl\")) {\n            create({\n                variables: {\n                    realm,\n                    index,\n                    block: map(data),\n                },\n                onCompleted,\n                onError,\n            });\n        } else {\n            save({\n                variables: {\n                    id,\n                    set: map(data),\n                },\n                onCompleted,\n                onError,\n            });\n        }\n    });\n\n\n    return <FormProvider<FormData> {...form}>\n        <FocusTrap>\n            <form ref={ref} onSubmit={onSubmit}>\n                {children}\n                <EditModeButtons onCancel={handleOnCancel} />\n            </form>\n        </FocusTrap>\n        <ConfirmationModal\n            title={t(\"manage.realm.content.confirm-cancel\")}\n            buttonContent={t(\"manage.realm.content.cancel\")}\n            onSubmit={onCancel}\n            ref={modalRef}\n        >\n            <p>{t(\"manage.realm.content.cancel-warning\")}</p>\n        </ConfirmationModal>\n    </FormProvider>;\n};\n\n\ntype EditModeButtonsProps = {\n    onCancel: () => void;\n};\n\nconst EditModeButtons: React.FC<EditModeButtonsProps> = ({ onCancel }) => {\n    const { t } = useTranslation();\n\n    return <div css={{\n        marginTop: 12,\n        display: \"flex\",\n        justifyContent: \"flex-end\",\n        gap: 12,\n    }}>\n        <Button\n            kind=\"danger\"\n            onClick={onCancel}\n        >\n            {t(\"manage.realm.content.cancel\")}\n        </Button>\n        <Button kind=\"call-to-action\" type=\"submit\">\n            {t(\"general.action.save\")}\n        </Button>\n    </div>;\n};\n","import React, { useState, useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useFragment, graphql, useRelayEnvironment, commitLocalUpdate } from \"react-relay\";\nimport type { RecordSourceProxy } from \"relay-runtime\";\nimport { bug, Card } from \"@opencast/appkit\";\n\nimport type { BlockRealmData$key } from \"./__generated__/BlockRealmData.graphql\";\nimport { useRouter } from \"../../../../router\";\nimport { displayCommitError } from \"../util\";\nimport { Block } from \"../../../../ui/Blocks\";\nimport { EditButtons } from \"./Edit\";\nimport { EditMode } from \"./Edit/EditMode\";\nimport { COLORS } from \"../../../../color\";\n\n\ntype Props = {\n    realm: BlockRealmData$key;\n    index: number;\n    onCommit?: () => void;\n    onCompleted?: () => void;\n    onError?: (error: Error, action: string, index: number) => void;\n};\n\nexport const EditBlock: React.FC<Props> = ({\n    realm: realmRef,\n    index,\n    onCommit,\n    onCompleted,\n    onError,\n}) => {\n    const { t } = useTranslation();\n\n    const realm = useFragment(graphql`\n        fragment BlockRealmData on Realm {\n            id\n            ... BlocksRealmData\n            ... EditButtonsRealmData\n            ... EditModeRealmData\n            blocks {\n                id\n                editMode\n                ... BlocksBlockData\n            }\n        }\n    `, realmRef);\n    const { id: realmId, blocks } = realm;\n    const block = blocks[index];\n    const { id, editMode } = block;\n\n\n    const [error, setError] = useState<JSX.Element | null>(null);\n\n    const onBlockCommit = () => {\n        setError(null);\n        onCommit?.();\n    };\n\n    const onBlockCompleted = () => {\n        setError(null);\n        onCompleted?.();\n    };\n\n    type ActionErrorKeys = `manage.realm.content.${\"moving\" | \"saving\"}-failed`;\n    const onBlockError = (error: Error, action: ActionErrorKeys) => {\n        setError(displayCommitError(error, t(action)));\n        onError?.(error, action, index);\n    };\n\n\n    const relayEnv = useRelayEnvironment();\n    const setEditMode = (store: RecordSourceProxy, editMode: boolean) => {\n        const block = store.get(id) ?? bug(\"could not find block\");\n        block.setValue(editMode, \"editMode\");\n    };\n    const cleanUp = (store: RecordSourceProxy) => {\n        if (id.startsWith(\"cl\")) {\n            const realm = store.get(realmId) ?? bug(\"could not find realm\");\n\n            const blocks = [\n                ...realm.getLinkedRecords(\"blocks\")\n                    ?? bug(\"realm does not have any blocks\"),\n            ];\n\n            blocks.splice(index, 1);\n\n            realm.setLinkedRecords(blocks, \"blocks\");\n\n            store.delete(\"clNEWBLOCK\");\n        } else {\n            setEditMode(store, false);\n        }\n    };\n\n    const router = useRouter();\n    useEffect(() => (\n        router.listenAtNav(() => commitLocalUpdate(relayEnv, store => (\n            cleanUp(store)\n        )))\n    ));\n\n\n    return <>\n        {error && <div css={{ marginBottom: 8 }}>\n            <Card kind=\"error\">{error}</Card>\n        </div>}\n\n        <div css={{\n            alignSelf: \"stretch\",\n            border: `1px solid ${COLORS.neutral25}`,\n            borderRadius: 4,\n            padding: 12,\n            ...editMode && {\n                boxShadow: \"0 2px 8px rgba(0, 0, 0, 20%)\",\n            },\n        }}>\n            {editMode\n                ? <EditMode\n                    {...{ realm, index }}\n                    onCancel={() => {\n                        commitLocalUpdate(relayEnv, store => cleanUp(store));\n                        setError(null);\n                    }}\n                    onSave={onBlockCommit}\n                    onError={error => onBlockError(error, \"manage.realm.content.saving-failed\")}\n                    onCompleted={() => {\n                        onBlockCompleted();\n                        commitLocalUpdate(relayEnv, store => {\n                            setEditMode(store, false);\n                            store.delete(\"clNEWBLOCK\");\n                        });\n                    }}\n                />\n                : <>\n                    <EditButtons\n                        {...{ realm, index }}\n                        onCompleted={onBlockCompleted}\n                        onCommit={onBlockCommit}\n                        onError={onBlockError}\n                        onEdit={() => commitLocalUpdate(relayEnv, store => (\n                            setEditMode(store, true)\n                        ))}\n                    />\n\n                    {/* TODO This counters the negative margin we employ to render title blocks. */}\n                    <div css={{ marginBottom: 16 }}>\n                        <Block {...{ block, realm }} />\n                    </div>\n                </>}\n        </div>\n    </>;\n};\n","import React, { useState, useRef, useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { graphql, useFragment } from \"react-relay\";\nimport { LuEye } from \"react-icons/lu\";\nimport { bug } from \"@opencast/appkit\";\n\nimport { RootLoader } from \"../../../../layout/Root\";\nimport type {\n    ContentManageQuery,\n    ContentManageQuery$data,\n} from \"./__generated__/ContentManageQuery.graphql\";\nimport { ContentManageRealmData$key } from \"./__generated__/ContentManageRealmData.graphql\";\nimport { loadQuery } from \"../../../../relay\";\nimport { PathInvalid } from \"..\";\nimport { NotAuthorized } from \"../../../../ui/error\";\nimport { RealmSettingsContainer } from \"../util\";\nimport { Nav } from \"../../../../layout/Navigation\";\nimport { makeRoute } from \"../../../../rauta\";\nimport { Spinner } from \"@opencast/appkit\";\nimport { AddButtons } from \"./AddButtons\";\nimport { EditBlock } from \"./Block\";\nimport { Breadcrumbs } from \"../../../../ui/Breadcrumbs\";\nimport { useNavBlocker } from \"../../../util\";\nimport { LinkButton } from \"../../../../ui/LinkButton\";\nimport { PageTitle } from \"../../../../layout/header/ui\";\nimport { RealmEditLinks } from \"../../../Realm\";\nimport { realmBreadcrumbs } from \"../../../../util/realm\";\nimport { COLORS } from \"../../../../color\";\n\n\nconst PATH = \"/~manage/realm/content\";\n\nexport const ManageRealmContentRoute = makeRoute({\n    url: ({ realmPath }: { realmPath: string }) =>\n        `${PATH}?${new URLSearchParams({ path: realmPath })}`,\n    match: url => {\n        if (url.pathname !== PATH) {\n            return null;\n        }\n\n        const path = url.searchParams.get(\"path\");\n        if (path === null) {\n            return null;\n        }\n\n        const queryRef = loadQuery<ContentManageQuery>(query, { path });\n\n        return {\n            render: () => <RootLoader\n                {...{ query, queryRef }}\n                noindex\n                nav={data => data.realm\n                    ? [\n                        <Nav key=\"main-nav\" fragRef={data.realm} />,\n                        <RealmEditLinks key=\"edit-buttons\" path={path} />,\n                    ]\n                    : []}\n                render={data => {\n                    if (!data.realm) {\n                        return <PathInvalid />;\n                    } else if (!data.realm.canCurrentUserModerate) {\n                        return <NotAuthorized />;\n                    } else {\n                        return <ManageContent data={data} />;\n                    }\n                }}\n            />,\n            dispose: () => queryRef.dispose(),\n        };\n    },\n});\n\nconst query = graphql`\n    query ContentManageQuery($path: String!) {\n        ... UserData\n        realm: realmByPath(path: $path) {\n            canCurrentUserModerate\n            ... NavigationData\n            ... ContentManageRealmData\n        }\n    }\n`;\n\nexport const ContentManageQueryContext\n    = React.createContext<ContentManageQuery$data | null>(null);\n\ntype Props = {\n    data: ContentManageQuery$data;\n};\n\nconst ManageContent: React.FC<Props> = ({ data }) => {\n    const { t } = useTranslation();\n    const realm = useFragment(\n        graphql`\n            fragment ContentManageRealmData on Realm {\n                name\n                path\n                isMainRoot\n                ancestors { name path }\n                ... BlockRealmData\n                ... AddButtonsRealmData\n                blocks {\n                    id\n                    editMode\n                }\n            }\n        `,\n        data.realm as ContentManageRealmData$key,\n    );\n    const { name, path, blocks } = realm;\n\n\n    const [inFlight, setInFlight] = useState(false);\n\n    const onCommit = () => {\n        setInFlight(true);\n    };\n\n    const onCommitted = () => {\n        setInFlight(false);\n    };\n\n\n    const editedBlock = blocks.find(block => block.editMode);\n    const hasUnsavedChanges = editedBlock !== undefined;\n    useNavBlocker(hasUnsavedChanges);\n\n\n    // When a block goes into edit mode, we want to scroll it into view\n    const blockRefs = useRef(new Map<string, HTMLDivElement>());\n    useEffect(() => {\n        if (hasUnsavedChanges) {\n            const ref = blockRefs.current.get(editedBlock.id) ?? bug(\"unbound ref\");\n            ref.scrollIntoView({ behavior: \"smooth\", block: \"center\" });\n        }\n    }, [hasUnsavedChanges, editedBlock]);\n\n\n    const breadcrumbs = realm.isMainRoot ? [] : realmBreadcrumbs(t, realm.ancestors.concat(realm));\n\n    return <ContentManageQueryContext.Provider value={data}>\n        <RealmSettingsContainer>\n            <Breadcrumbs path={breadcrumbs} tail={<i>{t(\"realm.edit-page-content\")}</i>} />\n            <PageTitle title={\n                realm.isMainRoot\n                    ? t(\"manage.realm.content.heading-root\")\n                    : t(\"manage.realm.content.heading\", { realm: name })\n            } />\n\n            <LinkButton to={path}>\n                {t(\"manage.realm.content.view-page\")}\n                <LuEye />\n            </LinkButton>\n\n            <div css={{\n                display: \"flex\",\n                flexDirection: \"column\",\n                marginTop: 16,\n                rowGap: 16,\n                padding: 0,\n                // To position the loading overlay\n                position: \"relative\",\n            }}>\n                {blocks.filter(block => block != null).map((block, index) => (\n                    <React.Fragment key={block.id}>\n                        <AddButtons index={index} realm={realm} />\n\n                        <div\n                            ref={ref => {\n                                if (ref) {\n                                    blockRefs.current.set(block.id, ref);\n                                } else {\n                                    blockRefs.current.delete(block.id);\n                                }\n                            }}\n                            css={block.editMode && !inFlight ? { zIndex: 2 } : {}}\n                        >\n                            <EditBlock\n                                {...{ realm, index }}\n                                onCommit={onCommit}\n                                onCompleted={onCommitted}\n                                onError={onCommitted}\n                            />\n                        </div>\n                    </React.Fragment>\n                ))}\n                <AddButtons index={blocks.length} realm={realm} />\n\n                <div css={{\n                    display: \"flex\",\n                    alignItems: \"center\",\n                    justifyContent: \"center\",\n                    backgroundColor: COLORS.neutral05,\n                    opacity: 0.75,\n                    position: \"absolute\",\n                    width: \"100%\",\n                    height: \"100%\",\n                    ...(hasUnsavedChanges || inFlight ? {} : { zIndex: -1 }),\n                }}>\n                    {inFlight && <Spinner size={20} />}\n                </div>\n            </div>\n        </RealmSettingsContainer>\n    </ContentManageQueryContext.Provider>;\n};\n","import React, { useId, useState } from \"react\";\nimport { Trans, useTranslation } from \"react-i18next\";\nimport { graphql, useMutation } from \"react-relay\";\n\nimport { RootLoader } from \"../../../layout/Root\";\nimport type {\n    AddChildQuery,\n    AddChildQuery$data,\n} from \"./__generated__/AddChildQuery.graphql\";\nimport { loadQuery } from \"../../../relay\";\nimport { useRouter } from \"../../../router\";\nimport { useForm } from \"react-hook-form\";\nimport { Input } from \"../../../ui/Input\";\nimport { Form } from \"../../../ui/Form\";\nimport { PathSegmentInput } from \"../../../ui/PathSegmentInput\";\nimport { PathInvalid } from \".\";\nimport { NotAuthorized } from \"../../../ui/error\";\nimport { displayCommitError, RealmSettingsContainer, realmValidations } from \"./util\";\nimport { Button, boxError } from \"@opencast/appkit\";\nimport { AddChildMutation$data } from \"./__generated__/AddChildMutation.graphql\";\nimport { Spinner } from \"@opencast/appkit\";\nimport { Nav } from \"../../../layout/Navigation\";\nimport { makeRoute } from \"../../../rauta\";\nimport { ILLEGAL_CHARS, RealmEditLinks, RESERVED_CHARS } from \"../../Realm\";\nimport { Breadcrumbs } from \"../../../ui/Breadcrumbs\";\nimport { PageTitle } from \"../../../layout/header/ui\";\nimport { realmBreadcrumbs } from \"../../../util/realm\";\nimport { COLORS } from \"../../../color\";\nimport { ManageRealmContentRoute } from \"./Content\";\nimport { InfoTooltip } from \"../../../ui\";\n\n\nconst PATH = \"/~manage/realm/add-child\";\n\nexport const AddChildRoute = makeRoute({\n    url: ({ parent }: { parent: string }) => `${PATH}?${new URLSearchParams({ parent })}`,\n    match: url => {\n        if (url.pathname !== PATH) {\n            return null;\n        }\n\n        const parent = url.searchParams.get(\"parent\");\n        if (parent === null) {\n            return null;\n        }\n\n        const queryRef = loadQuery<AddChildQuery>(query, { parent });\n\n        return {\n            render: () => <RootLoader\n                {...{ query, queryRef }}\n                noindex\n                nav={data => data.parent\n                    ? [\n                        <Nav key=\"main-nav\" fragRef={data.parent} />,\n                        <RealmEditLinks key=\"edit-buttons\" path={parent} />,\n                    ]\n                    : []}\n                render={data => {\n                    const parent = data.parent;\n                    if (!parent) {\n                        return <PathInvalid />;\n                    } else if (!parent.canCurrentUserModerate) {\n                        return <NotAuthorized />;\n                    } else {\n                        return <AddChild parent={parent} />;\n                    }\n                }}\n            />,\n            dispose: () => queryRef.dispose(),\n        };\n    },\n});\n\n\nconst query = graphql`\n    query AddChildQuery($parent: String!) {\n        ... UserData\n        parent: realmByPath(path: $parent) {\n            id\n            name\n            isMainRoot\n            path\n            canCurrentUserModerate\n            ancestors { name path }\n            children { path }\n            ... NavigationData\n        }\n    }\n`;\n\nconst addChildMutation = graphql`\n    mutation AddChildMutation($realm: NewRealm!) {\n        addRealm(realm: $realm) {\n            path\n            parent { ...NavigationData }\n        }\n    }\n`;\n\ntype Props = {\n    parent: NonNullable<AddChildQuery$data[\"parent\"]>;\n};\n\nconst AddChild: React.FC<Props> = ({ parent }) => {\n    const { t } = useTranslation();\n    const nameFieldId = useId();\n    const pathFieldId = useId();\n\n    type FormData = {\n        name: string;\n        pathSegment: string;\n    };\n\n    const { register, handleSubmit, formState: { errors } } = useForm<FormData>();\n    const [commitError, setCommitError] = useState<JSX.Element | null>(null);\n\n    const router = useRouter();\n\n    const [commit, isInFlight] = useMutation(addChildMutation);\n    const onSubmit = handleSubmit(data => {\n        commit({\n            variables: {\n                realm: {\n                    parent: parent.id,\n                    name: data.name,\n                    pathSegment: data.pathSegment,\n                },\n            },\n            updater: store => store.invalidateStore(),\n            onCompleted: response => {\n                const typedResponse = response as AddChildMutation$data;\n                const realmPath = typedResponse.addRealm.path;\n                router.goto(ManageRealmContentRoute.url({ realmPath }));\n            },\n            onError: error => {\n                setCommitError(displayCommitError(error, t(\"manage.add-child.failed-to-add\")));\n            },\n        });\n    });\n\n    const validations = realmValidations(t);\n    const breadcrumbs = parent.isMainRoot\n        ? []\n        : realmBreadcrumbs(t, parent.ancestors.concat(parent));\n\n    return (\n        <RealmSettingsContainer>\n            <Breadcrumbs path={breadcrumbs} tail={<i>{t(\"realm.add-sub-page\")}</i>} />\n            <PageTitle title={t(\"manage.add-child.heading\")} />\n            <p>\n                {\n                    parent.isMainRoot\n                        ? t(\"manage.add-child.below-root\")\n                        : <Trans i18nKey=\"manage.add-child.below-this-parent\">\n                            {{ parent: parent.name }}\n                        </Trans>\n                }\n            </p>\n            <Form\n                onSubmit={onSubmit}\n                css={{\n                    margin: \"32px 0\",\n                    \"& > div\": { marginBottom: 32 },\n                    \"label + div\": { display: \"flex\" },\n                    input: { height: 42, flexGrow: 1 },\n                }}\n            >\n                <div css={{ width: \"min(100%, 500px)\" }}>\n                    <label htmlFor={nameFieldId}>\n                        {t(\"manage.realm.general.page-name\")}\n                        <InfoTooltip info={t(\"manage.add-child.page-name-info\")} />\n                    </label>\n                    <div>\n                        <Input\n                            id={nameFieldId}\n                            placeholder={t(\"manage.realm.general.page-name\")}\n                            error={!!errors.name}\n                            autoFocus\n                            {...register(\"name\", validations.name)}\n                        />\n                    </div>\n                    {boxError(errors.name?.message)}\n                </div>\n\n                <div css={{ width: \"min(100%, 500px)\" }}>\n                    <label htmlFor={pathFieldId}>\n                        {t(\"manage.add-child.path-segment\")}\n                        <InfoTooltip info={\n                            <div css={{\n                                \"& code\": {\n                                    whiteSpace: \"nowrap\",\n                                    borderRadius: 4,\n                                    backgroundColor: COLORS.neutral15,\n                                    padding: \"2px 4px\",\n                                },\n                            }}>\n                                <Trans i18nKey=\"manage.add-child.path-segment-info\">\n                                    {{ illegalChars: ILLEGAL_CHARS }}\n                                    {{ reservedChars: RESERVED_CHARS }}\n                                </Trans>\n                            </div>\n                        } />\n                    </label>\n                    <PathSegmentInput\n                        id={pathFieldId}\n                        base={parent.path}\n                        error={!!errors.pathSegment}\n                        {...register(\"pathSegment\", validations.path)}\n                    />\n                    {boxError(errors.pathSegment?.message)}\n                </div>\n\n                <div>\n                    <div css={{ display: \"flex\", alignItems: \"center\", gap: 16 }}>\n                        <Button type=\"submit\" kind=\"call-to-action\" disabled={isInFlight}>\n                            {t(\"manage.add-child.button-create-page\")}\n                        </Button>\n                        {isInFlight && <Spinner size={20} />}\n                    </div>\n                    {boxError(commitError)}\n                </div>\n            </Form>\n        </RealmSettingsContainer>\n    );\n};\n","import { useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { graphql, useFragment, useMutation } from \"react-relay\";\n\nimport { RealmPermissionsData$key } from \"./__generated__/RealmPermissionsData.graphql\";\nimport { AccessKnownRolesData$key } from \"../../../ui/__generated__/AccessKnownRolesData.graphql\";\nimport { RealmPermissionsMutation } from \"./__generated__/RealmPermissionsMutation.graphql\";\nimport { Acl, AclSelector, AclEditButtons, knownRolesFragment } from \"../../../ui/Access\";\nimport { ConfirmationModalHandle } from \"../../../ui/Modal\";\nimport { boxError } from \"@opencast/appkit\";\nimport { displayCommitError } from \"./util\";\nimport { currentRef } from \"../../../util\";\nimport { MODERATE_ADMIN_ACTIONS } from \"../../../util/permissionLevels\";\n\n\nconst fragment = graphql`\n    fragment RealmPermissionsData on Realm {\n        id\n        ownAcl { role actions info { label implies large } }\n        inheritedAcl { role actions info { label implies large } }\n        ownerDisplayName\n        ancestors { ownerDisplayName }\n    }\n`;\n\n\ntype Props = {\n    fragRef: RealmPermissionsData$key;\n    data: AccessKnownRolesData$key;\n};\n\nexport const RealmPermissions: React.FC<Props> = ({ fragRef, data }) => {\n    const { t } = useTranslation();\n    const realm = useFragment(fragment, fragRef);\n    const knownRoles = useFragment(knownRolesFragment, data);\n    const ownerDisplayName = (realm.ancestors[0] ?? realm).ownerDisplayName;\n    const saveModalRef = useRef<ConfirmationModalHandle>(null);\n\n    const [initialAcl, inheritedAcl]: Acl[] = [realm.ownAcl, realm.inheritedAcl].map(acl => new Map(\n        acl.map(item => [item.role, {\n            actions: new Set(item.actions),\n            info: item.info,\n        }])\n    ));\n\n    const [selections, setSelections] = useState<Acl>(initialAcl);\n\n    const [commitError, setCommitError] = useState<JSX.Element | null>(null);\n    const [commit, inFlight] = useMutation<RealmPermissionsMutation>(graphql`\n        mutation RealmPermissionsMutation($id: ID!, $permissions: UpdatedPermissions!) {\n            updatePermissions(id: $id, permissions: $permissions) {\n                ownAcl { role actions info { label implies large } }\n                isCurrentUserPageAdmin\n                canCurrentUserModerate\n                ... GeneralRealmData\n            }\n        }\n    `);\n\n    const mapSelections = (selections: Acl) => {\n        const [moderatorRoles, adminRoles]: string[][] = [[], []];\n\n        for (const [role, { actions }] of selections) {\n            if (actions.has(\"moderate\")) {\n                moderatorRoles.push(role);\n            }\n\n            if (actions.has(\"admin\")) {\n                adminRoles.push(role);\n            }\n        }\n\n        return { moderatorRoles, adminRoles };\n    };\n\n    const onSubmit = async () => {\n        commit({\n            variables: {\n                id: realm.id,\n                permissions: mapSelections(selections),\n            },\n            onCompleted: () => currentRef(saveModalRef).done(),\n            onError: e => setCommitError(displayCommitError(e)),\n            updater: store => store.invalidateStore(),\n        });\n    };\n\n    return <>\n        <h2>{t(\"manage.realm.permissions.heading\")}</h2>\n        <AclSelector\n            acl={selections}\n            onChange={setSelections}\n            addAnonymous={false}\n            {...{ knownRoles, inheritedAcl, ownerDisplayName }}\n            permissionLevels={MODERATE_ADMIN_ACTIONS}\n        />\n        <AclEditButtons\n            userIsOwner={!!ownerDisplayName}\n            css={{ marginTop: 16 }}\n            kind=\"admin\"\n            {...{\n                selections,\n                setSelections,\n                initialAcl,\n                onSubmit,\n                inFlight,\n                inheritedAcl,\n                saveModalRef,\n            }}\n        />\n        {boxError(commitError)}\n    </>;\n};\n\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { graphql } from \"react-relay\";\n\nimport { RootLoader } from \"../../../layout/Root\";\nimport type {\n    RealmManageQuery,\n    RealmManageQuery$data,\n} from \"./__generated__/RealmManageQuery.graphql\";\nimport { loadQuery } from \"../../../relay\";\nimport { ChildOrder } from \"./ChildOrder\";\nimport { General } from \"./General\";\nimport { DangerZone } from \"./DangerZone\";\nimport { LinkButton } from \"../../../ui/LinkButton\";\nimport { LuArrowRightCircle, LuPlusCircle } from \"react-icons/lu\";\nimport { Card } from \"@opencast/appkit\";\nimport { Nav } from \"../../../layout/Navigation\";\nimport { CenteredContent } from \"../../../ui\";\nimport { NotAuthorized } from \"../../../ui/error\";\nimport { RealmSettingsContainer } from \"./util\";\nimport { makeRoute } from \"../../../rauta\";\nimport { Breadcrumbs } from \"../../../ui/Breadcrumbs\";\nimport { PageTitle } from \"../../../layout/header/ui\";\nimport { RealmEditLinks } from \"../../Realm\";\nimport { realmBreadcrumbs } from \"../../../util/realm\";\nimport { AddChildRoute } from \"./AddChild\";\nimport { RealmPermissions } from \"./RealmPermissions\";\n\n\n// Route definition\n\nconst PATH = \"/~manage/realm\";\n\nexport const ManageRealmRoute = makeRoute({\n    url: ({ realmPath }: { realmPath: string }) =>\n        `${PATH}?${new URLSearchParams({ path: realmPath })}`,\n    match: url => {\n        if (url.pathname !== PATH) {\n            return null;\n        }\n\n        const path = url.searchParams.get(\"path\");\n        if (path === null) {\n            return null;\n        }\n\n        const queryRef = loadQuery<RealmManageQuery>(query, { path });\n\n        return {\n            render: () => <RootLoader\n                {...{ query, queryRef }}\n                noindex\n                nav={data => data.realm\n                    ? [\n                        <Nav key=\"main-nav\" fragRef={data.realm} />,\n                        <RealmEditLinks key=\"edit-buttons\" path={data.realm.path} />,\n                    ]\n                    : []}\n                render={data => data.realm\n                    ? <SettingsPage realm={data.realm} {...{ data }} />\n                    : <PathInvalid />\n                }\n            />,\n            dispose: () => queryRef.dispose(),\n        };\n    },\n});\n\n\nconst query = graphql`\n    query RealmManageQuery($path: String!) {\n        ... UserData\n        ... AccessKnownRolesData\n        realm: realmByPath(path: $path) {\n            name\n            isMainRoot\n            path\n            isCurrentUserPageAdmin\n            canCurrentUserModerate\n            numberOfDescendants\n            ancestors { name path }\n            ... GeneralRealmData\n            ... ChildOrderEditData\n            ... DangerZoneRealmData\n            ... NavigationData\n            ... RealmPermissionsData\n        }\n    }\n`;\n\ntype Props = {\n    realm: NonNullable<RealmManageQuery$data[\"realm\"]>;\n    data: RealmManageQuery$data;\n};\n\n/** The actual settings page */\nconst SettingsPage: React.FC<Props> = ({ realm, data }) => {\n    const { t } = useTranslation();\n    if (!realm.canCurrentUserModerate) {\n        return <NotAuthorized />;\n    }\n\n    const heading = realm.isMainRoot\n        ? t(\"manage.realm.heading-root\")\n        : t(\"manage.realm.heading\", { realm: realm.name });\n\n    const breadcrumbs = realm.isMainRoot ? [] : realmBreadcrumbs(t, realm.ancestors.concat(realm));\n\n    return (\n        <RealmSettingsContainer css={{ maxWidth: 900 }}>\n            <Breadcrumbs path={breadcrumbs} tail={<i>{t(\"realm.page-settings\")}</i>} />\n            <PageTitle title={heading} />\n            <p>{t(\"manage.realm.descendants-count\", { count: realm.numberOfDescendants })}</p>\n            <div css={{\n                margin: \"32px 0\",\n                display: \"flex\",\n                flexWrap: \"wrap\",\n                gap: 16,\n            }}>\n                <LinkButton to={realm.path}>\n                    {t(\"manage.realm.view-page\")}\n                    <LuArrowRightCircle />\n                </LinkButton>\n                <LinkButton to={AddChildRoute.url({ parent: realm.path })}>\n                    {t(\"realm.add-sub-page\")}\n                    <LuPlusCircle />\n                </LinkButton>\n            </div>\n            <section><General fragRef={realm} /></section>\n            <section><ChildOrder fragRef={realm} /></section>\n            {realm.isCurrentUserPageAdmin && <>\n                <section><RealmPermissions fragRef={realm} {...{ data }} /></section>\n                <section><DangerZone fragRef={realm} /></section>\n            </>}\n        </RealmSettingsContainer>\n    );\n};\n\nexport const PathInvalid: React.FC = () => {\n    const { t } = useTranslation();\n    return <CenteredContent>\n        <Card kind=\"error\">{t(\"manage.realm.invalid-path\")}</Card>\n    </CenteredContent>;\n};\n","import { useTranslation } from \"react-i18next\";\nimport { graphql } from \"react-relay\";\n\nimport { RootLoader } from \"../layout/Root\";\nimport { loadQuery } from \"../relay\";\nimport { makeRoute } from \"../rauta\";\nimport { ErrorPage } from \"../ui/error\";\nimport { InvalidUrlQuery } from \"./__generated__/InvalidUrlQuery.graphql\";\n\n\nexport const InvalidUrlRoute = makeRoute({\n    match: url => {\n        try {\n            decodeURIComponent(url.pathname);\n        } catch (e) {\n            if (e instanceof URIError) {\n                const queryRef = loadQuery<InvalidUrlQuery>(query, {});\n                return {\n                    render: () => <RootLoader\n                        {...{ query, queryRef }}\n                        nav={() => []}\n                        render={() => <InvalidUrl />}\n                    />,\n                    dispose: () => queryRef.dispose(),\n                };\n            }\n        }\n        return null;\n    },\n});\n\nconst query = graphql`\n    query InvalidUrlQuery { ... UserData }\n`;\n\nexport const InvalidUrl: React.FC = () => {\n    const { t } = useTranslation();\n    return <ErrorPage title={t(\"invalid-url.title\")}>\n        {t(\"invalid-url.description\")}\n    </ErrorPage>;\n};\n","import { useTranslation } from \"react-i18next\";\nimport { WithTooltip } from \"@opencast/appkit\";\nimport { useRef, useState } from \"react\";\nimport { LuInfo } from \"react-icons/lu\";\nimport { useFragment } from \"react-relay\";\n\nimport { Breadcrumbs } from \"../../../ui/Breadcrumbs\";\nimport { AuthorizedEvent, makeManageVideoRoute } from \"./Shared\";\nimport { PageTitle } from \"../../../layout/header/ui\";\nimport { COLORS } from \"../../../color\";\nimport { isRealUser, useUser } from \"../../../User\";\nimport { NotAuthorized } from \"../../../ui/error\";\nimport { Acl, AclSelector, AclEditButtons, knownRolesFragment } from \"../../../ui/Access\";\nimport {\n    AccessKnownRolesData$data,\n    AccessKnownRolesData$key,\n} from \"../../../ui/__generated__/AccessKnownRolesData.graphql\";\nimport { ManageRoute } from \"..\";\nimport { ManageVideosRoute } from \".\";\nimport { ManageVideoDetailsRoute } from \"./Details\";\nimport { READ_WRITE_ACTIONS } from \"../../../util/permissionLevels\";\nimport { ConfirmationModalHandle } from \"../../../ui/Modal\";\n\n\nexport const ManageVideoAccessRoute = makeManageVideoRoute(\n    \"acl\",\n    \"/access\",\n    (event, data) => <AclPage event={event} data={data} />,\n);\n\ntype AclPageProps = {\n    event: AuthorizedEvent;\n    data: AccessKnownRolesData$key;\n};\n\nconst AclPage: React.FC<AclPageProps> = ({ event, data }) => {\n    const { t } = useTranslation();\n    const user = useUser();\n\n    if (!isRealUser(user)) {\n        return <NotAuthorized />;\n    }\n\n    const knownRoles = useFragment(knownRolesFragment, data);\n\n    const breadcrumbs = [\n        { label: t(\"user.manage-content\"), link: ManageRoute.url },\n        { label: t(\"manage.my-videos.title\"), link: ManageVideosRoute.url },\n        { label: event.title, link: ManageVideoDetailsRoute.url({ videoId: event.id }) },\n    ];\n\n    return <>\n        <Breadcrumbs path={breadcrumbs} tail={t(\"manage.my-videos.acl.title\")} />\n        <PageTitle title={t(\"manage.my-videos.acl.title\")} />\n        {event.hostRealms.length < 1 && <UnlistedNote />}\n        <AccessUI {...{ event, knownRoles }} />\n    </>;\n};\n\n\nconst UnlistedNote: React.FC = () => {\n    const { t } = useTranslation();\n\n    return (\n        <WithTooltip\n            tooltip={t(\"manage.access.unlisted.explanation\")}\n            placement=\"bottom\"\n            tooltipCss={{ width: 400 }}\n            css={{ display: \"inline-block\" }}\n        >\n            <div css={{\n                fontSize: 14,\n                lineHeight: 1,\n                color: COLORS.neutral60,\n                display: \"flex\",\n                gap: 4,\n                marginBottom: 16,\n            }}>\n                <LuInfo />\n                {t(\"manage.access.unlisted.note\")}\n            </div>\n        </WithTooltip>\n    );\n};\n\ntype AccessUIProps = {\n    event: AuthorizedEvent;\n    knownRoles: AccessKnownRolesData$data;\n}\n\nconst AccessUI: React.FC<AccessUIProps> = ({ event, knownRoles }) => {\n    const saveModalRef = useRef<ConfirmationModalHandle>(null);\n\n    const initialAcl: Acl = new Map(\n        event.acl.map(item => [item.role, {\n            actions: new Set(item.actions),\n            info: item.info,\n        }])\n    );\n\n    const [selections, setSelections] = useState<Acl>(initialAcl);\n\n    return (\n        <div css={{ maxWidth: 1040 }}>\n            <div css={{\n                display: \"flex\",\n                flexDirection: \"column\",\n                width: \"100%\",\n            }}>\n                <AclSelector\n                    acl={selections}\n                    onChange={setSelections}\n                    knownRoles={knownRoles}\n                    permissionLevels={READ_WRITE_ACTIONS}\n                />\n                <AclEditButtons\n                    {...{ selections, setSelections, initialAcl, saveModalRef }}\n                    kind=\"write\"\n                    onSubmit={async (acl: Acl) => {\n                        // TODO: Actually save new ACL.\n                        // eslint-disable-next-line no-console\n                        console.log(acl);\n                    }}\n                />\n            </div>\n        </div>\n    );\n};\n\n","import { graphql, useFragment } from \"react-relay\";\nimport { useTranslation } from \"react-i18next\";\nimport { unreachable } from \"@opencast/appkit\";\n\nimport { loadQuery } from \"../relay\";\nimport { makeRoute } from \"../rauta\";\nimport { RootLoader } from \"../layout/Root\";\nimport { Nav } from \"../layout/Navigation\";\nimport { PageTitle } from \"../layout/header/ui\";\nimport { keyOfId, playlistId } from \"../util\";\nimport { NotFound } from \"./NotFound\";\nimport { b64regex } from \"./util\";\nimport { Breadcrumbs } from \"../ui/Breadcrumbs\";\nimport { PlaylistByOpencastIdQuery } from \"./__generated__/PlaylistByOpencastIdQuery.graphql\";\nimport { PlaylistRouteData$key } from \"./__generated__/PlaylistRouteData.graphql\";\nimport { PlaylistByIdQuery } from \"./__generated__/PlaylistByIdQuery.graphql\";\nimport { ErrorPage } from \"../ui/error\";\nimport { PlaylistBlockFromPlaylist } from \"../ui/Blocks/Playlist\";\n\n\nexport const DirectPlaylistOCRoute = makeRoute({\n    url: ({ ocID }: { ocID: string }) => `/!p/:${ocID}`,\n    match: url => {\n        const regex = new RegExp(\"^/!p/:([^/]+)$\", \"u\");\n        const matches = regex.exec(url.pathname);\n\n        if (!matches) {\n            return null;\n        }\n\n\n        const opencastId = decodeURIComponent(matches[1]);\n        const query = graphql`\n            query PlaylistByOpencastIdQuery($id: String!) {\n                ... UserData\n                playlist: playlistByOpencastId(id: $id) { ...PlaylistRouteData }\n                rootRealm { ... NavigationData }\n            }\n        `;\n        const queryRef = loadQuery<PlaylistByOpencastIdQuery>(query, { id: opencastId });\n\n\n        return {\n            render: () => <RootLoader\n                {...{ query, queryRef }}\n                noindex\n                nav={data => <Nav fragRef={data.rootRealm} />}\n                render={result => <PlaylistPage playlistFrag={result.playlist} />}\n            />,\n            dispose: () => queryRef.dispose(),\n        };\n    },\n});\n\nexport const DirectPlaylistRoute = makeRoute({\n    url: ({ playlistId }: { playlistId: string }) => `/!p/${keyOfId(playlistId)}`,\n    match: url => {\n        const regex = new RegExp(`^/!p/(${b64regex}+)$`, \"u\");\n        const matches = regex.exec(url.pathname);\n\n        if (!matches) {\n            return null;\n        }\n\n\n        const id = decodeURIComponent(matches[1]);\n        const query = graphql`\n            query PlaylistByIdQuery($id: ID!) {\n                ... UserData\n                playlist: playlistById(id: $id) { ...PlaylistRouteData }\n                rootRealm { ... NavigationData }\n            }\n        `;\n        const queryRef = loadQuery<PlaylistByIdQuery>(query, { id: playlistId(id) });\n\n\n        return {\n            render: () => <RootLoader\n                {...{ query, queryRef }}\n                noindex\n                nav={data => <Nav fragRef={data.rootRealm} />}\n                render={result => <PlaylistPage playlistFrag={result.playlist} />}\n            />,\n            dispose: () => queryRef.dispose(),\n        };\n    },\n});\n\nconst fragment = graphql`\n    fragment PlaylistRouteData on Playlist {\n        __typename\n        ... on NotAllowed { dummy } # workaround\n        ... on AuthorizedPlaylist {\n            id\n            title\n            description\n            entries {\n                __typename\n                ...on AuthorizedEvent { id, ...VideoListEventData }\n                ...on Missing { dummy }\n                ...on NotAllowed { dummy }\n            }\n        }\n        ... PlaylistBlockPlaylistData\n    }\n`;\n\ntype PlaylistPageProps = {\n    playlistFrag?: PlaylistRouteData$key | null;\n};\n\nconst PlaylistPage: React.FC<PlaylistPageProps> = ({ playlistFrag }) => {\n    const { t } = useTranslation();\n    const playlist = useFragment(fragment, playlistFrag ?? null);\n\n    if (!playlist) {\n        return <NotFound kind=\"playlist\" />;\n    }\n\n    if (playlist.__typename === \"NotAllowed\") {\n        return <ErrorPage title={t(\"api-remote-errors.view.playlist\")} />;\n    }\n    if (playlist.__typename !== \"AuthorizedPlaylist\") {\n        return unreachable();\n    }\n\n    return <div css={{ display: \"flex\", flexDirection: \"column\" }}>\n        {/*\n            `playlist.title` is actually never undefined,\n            but the following assertions are necessary to work around\n            some graphql weirdness.\n        */}\n        <Breadcrumbs path={[]} tail={playlist.title ?? \"\"} />\n        <PageTitle title={playlist.title ?? \"\"} />\n        <p css={{ maxWidth: \"90ch\" }}>{playlist.description}</p>\n        <div css={{ marginTop: 12 }}>\n            <PlaylistBlockFromPlaylist\n                title={t(\"videolist-block.videos.heading\")}\n                basePath=\"/!v\"\n                fragRef={playlist}\n            />\n        </div>\n    </div>;\n};\n","import { makeRouter } from \"./rauta\";\nimport { AboutRoute } from \"./routes/About\";\nimport { LoginRoute } from \"./routes/Login\";\nimport { ManageRoute } from \"./routes/manage\";\nimport { ManageRealmRoute } from \"./routes/manage/Realm\";\nimport { AddChildRoute } from \"./routes/manage/Realm/AddChild\";\nimport { ManageRealmContentRoute } from \"./routes/manage/Realm/Content\";\nimport { NotFoundRoute } from \"./routes/NotFound\";\nimport { RealmRoute } from \"./routes/Realm\";\nimport {\n    DirectOpencastVideoRoute,\n    DirectVideoRoute,\n    OpencastVideoRoute,\n    VideoRoute,\n} from \"./routes/Video\";\nimport { DirectSeriesOCRoute, DirectSeriesRoute } from \"./routes/Series\";\nimport { ManageVideosRoute } from \"./routes/manage/Video\";\nimport { UploadRoute } from \"./routes/Upload\";\nimport { SearchRoute } from \"./routes/Search\";\nimport { InvalidUrlRoute } from \"./routes/InvalidUrl\";\nimport { BlockEmbedRoute, EmbedOpencastVideoRoute, EmbedVideoRoute } from \"./routes/Embed\";\nimport { ManageVideoDetailsRoute } from \"./routes/manage/Video/Details\";\nimport { ManageVideoTechnicalDetailsRoute } from \"./routes/manage/Video/TechnicalDetails\";\nimport React from \"react\";\nimport { ManageVideoAccessRoute } from \"./routes/manage/Video/Access\";\nimport { DirectPlaylistOCRoute, DirectPlaylistRoute } from \"./routes/Playlist\";\n\n\n\nconst {\n    ActiveRoute,\n    Link: RautaLink,\n    matchInitialRoute,\n    matchRoute,\n    Router,\n    useRouter,\n} = makeRouter({\n    fallback: NotFoundRoute,\n    routes: [\n        BlockEmbedRoute,\n        InvalidUrlRoute,\n        AboutRoute,\n        LoginRoute,\n        RealmRoute,\n        SearchRoute,\n        OpencastVideoRoute,\n        VideoRoute,\n        DirectVideoRoute,\n        DirectOpencastVideoRoute,\n        DirectSeriesRoute,\n        DirectSeriesOCRoute,\n        DirectPlaylistRoute,\n        DirectPlaylistOCRoute,\n        ManageRoute,\n        ManageVideosRoute,\n        ManageVideoAccessRoute,\n        ManageVideoDetailsRoute,\n        ManageVideoTechnicalDetailsRoute,\n        ManageRealmRoute,\n        UploadRoute,\n        AddChildRoute,\n        ManageRealmContentRoute,\n        EmbedVideoRoute,\n        EmbedOpencastVideoRoute,\n    ],\n});\n\nexport { ActiveRoute, Link, matchInitialRoute, matchRoute, Router, useRouter };\n\ntype LinkProps = {\n    to: string;\n\n    /**\n     * If `true`, a standard `<a>` link without special onClick handler is used.\n     * If you set this to `true` unconditionally, rather use `<a>` directly.\n     * This is just convenient if you need to switch between router-link and\n     * html-link based on a boolean. Default: `false`.\n     */\n    htmlLink?: boolean;\n} & Omit<React.ComponentPropsWithoutRef<\"a\">, \"href\">;\n\nconst Link = React.forwardRef<HTMLAnchorElement, LinkProps>(\n    ({ to, children, htmlLink = false, ...props }, ref): JSX.Element => {\n        const isExternalLink\n            = new URL(to, document.baseURI).origin !== document.location.origin;\n\n        return htmlLink || isExternalLink\n            ? <a ref={ref} href={to} {...props}>{children}</a>\n            : <RautaLink ref={ref} to={to} {...props}>{children}</RautaLink>;\n    },\n);\n","import React from \"react\";\nimport { useTranslation, Trans } from \"react-i18next\";\nimport { graphql } from \"react-relay\";\n\nimport CONFIG from \"../config\";\nimport { Nav } from \"../layout/Navigation\";\nimport { RootLoader } from \"../layout/Root\";\nimport { loadQuery } from \"../relay\";\nimport { AboutQuery } from \"./__generated__/AboutQuery.graphql\";\nimport { makeRoute } from \"../rauta\";\nimport { PageTitle } from \"../layout/header/ui\";\nimport { Breadcrumbs } from \"../ui/Breadcrumbs\";\nimport { COLORS } from \"../color\";\n\nconst PATH = \"/~tobira\";\n\nexport const AboutRoute = makeRoute({\n    url: PATH,\n    match: url => {\n        if (url.pathname !== PATH) {\n            return null;\n        }\n\n        const queryRef = loadQuery<AboutQuery>(query, {});\n        return {\n            render: () => <RootLoader\n                {...{ query, queryRef }}\n                nav={data => <Nav fragRef={data.realm} />}\n                render={() => <About />}\n            />,\n            dispose: () => queryRef.dispose(),\n        };\n    },\n});\n\nconst query = graphql`\n    query AboutQuery {\n        ... UserData\n        realm: rootRealm {\n            ... NavigationData\n        }\n    }\n`;\n\nconst About: React.FC = () => {\n    const { t } = useTranslation();\n    const version = CONFIG.version;\n\n    return <>\n        <Breadcrumbs path={[]} tail={t(\"about-tobira.title\")}/>\n        <div css={{ maxWidth: \"80ch\" }}>\n            <PageTitle title={t(\"about-tobira.title\")} />\n            <p css={{ margin: \"16px 0\" }}>\n                <Trans i18nKey=\"about-tobira.body\">\n                    Description.\n                    <a href=\"https://github.com/elan-ev/tobira\">GitHub repo</a>\n                </Trans>\n            </p>\n            <h2>{t(\"general.version-information\")}</h2>\n            <a href={`https://github.com/elan-ev/tobira/releases/tag/${version.identifier}`}>\n                Tobira <strong>{version.identifier}</strong>\n            </a>\n            {\" \"}\n            <span css={{ color: COLORS.neutral80, paddingLeft: 8 }}>\n                (<code css={{ fontSize: 13 }}>{version.target}</code>)\n            </span>\n            <br />\n            {\"Git info: \"}\n            <a href={`https://github.com/elan-ev/tobira/commit/${version.gitCommitHash}`}>\n                <code css={{\n                    fontSize: 14,\n                    overflowWrap: \"anywhere\",\n                }}>{version.gitCommitHash}</code>\n            </a>\n            {version.gitWasDirty && \", dirty\"}\n            <br />\n            Built: {version.buildDateUtc}\n        </div>\n    </>;\n};\n","import { ReactNode, Suspense } from \"react\";\nimport { LuFrown, LuAlertTriangle } from \"react-icons/lu\";\nimport { Translation, useTranslation } from \"react-i18next\";\nimport {\n    graphql, GraphQLTaggedNode, PreloadedQuery, useFragment, usePreloadedQuery,\n} from \"react-relay\";\nimport { unreachable } from \"@opencast/appkit\";\n\nimport { eventId, isSynced, keyOfId } from \"../util\";\nimport { GlobalErrorBoundary } from \"../util/err\";\nimport { loadQuery } from \"../relay\";\nimport { makeRoute, MatchedRoute } from \"../rauta\";\nimport { Player, PlayerPlaceholder } from \"../ui/player\";\nimport { Spinner } from \"@opencast/appkit\";\nimport { MovingTruck } from \"../ui/Waiting\";\nimport { b64regex } from \"./util\";\nimport { EmbedQuery } from \"./__generated__/EmbedQuery.graphql\";\nimport { EmbedDirectOpencastQuery } from \"./__generated__/EmbedDirectOpencastQuery.graphql\";\nimport { EmbedEventData$key } from \"./__generated__/EmbedEventData.graphql\";\nimport { PlayerContextProvider } from \"../ui/player/PlayerContext\";\n\nexport const EmbedVideoRoute = makeRoute({\n    url: ({ videoId }: { videoId: string }) => `/~embed/!v/${keyOfId(videoId)}`,\n    match: url => {\n        const regex = new RegExp(`^/~embed/!v/(${b64regex}+)/?$`, \"u\");\n        const params = regex.exec(url.pathname);\n        if (params === null) {\n            return null;\n        }\n        const videoId = decodeURIComponent(params[1]);\n\n        const query = graphql`\n            query EmbedQuery($id: ID!) {\n                event: eventById(id: $id) { ... EmbedEventData }\n            }\n            `;\n\n        const queryRef = loadQuery<EmbedQuery>(query, { id: eventId(videoId) });\n\n        return matchedEmbedRoute(query, queryRef);\n    },\n});\n\nexport const EmbedOpencastVideoRoute = makeRoute({\n    url: (args: { ocID: string }) => `/~embed/!v/:${args.ocID}`,\n    match: url => {\n        const regex = new RegExp(\"^/~embed/!v/:([^/]+)$\", \"u\");\n        const matches = regex.exec(url.pathname);\n        if (!matches) {\n            return null;\n        }\n\n        const query = graphql`\n            query EmbedDirectOpencastQuery($id: String!) {\n                event: eventByOpencastId(id: $id)  { ... EmbedEventData }\n            }\n        `;\n\n        const videoId = decodeURIComponent(matches[1]);\n        const queryRef = loadQuery<EmbedDirectOpencastQuery>(query, { id: videoId });\n\n        return matchedEmbedRoute(query, queryRef);\n    },\n});\n\nconst matchedEmbedRoute = (\n    query: GraphQLTaggedNode,\n    queryRef: PreloadedQuery<EmbedQuery | EmbedDirectOpencastQuery>,\n): MatchedRoute => ({\n    render: () => <ErrorBoundary>\n        <Suspense fallback={\n            <PlayerPlaceholder>\n                <Spinner css={{\n                    \"& > circle\": {\n                        stroke: \"white\",\n                    },\n                }} />\n            </PlayerPlaceholder>\n        }>\n            <PlayerContextProvider>\n                <Embed query={query} queryRef={queryRef} />\n            </PlayerContextProvider>\n        </Suspense>\n    </ErrorBoundary>,\n    dispose: () => queryRef.dispose(),\n});\n\nconst embedEventFragment = graphql`\n    fragment EmbedEventData on Event {\n        __typename\n        ... on NotAllowed { dummy }\n        ... on AuthorizedEvent {\n            title\n            created\n            isLive\n            opencastId\n            creators\n            metadata\n            description\n            series { title opencastId }\n            syncedData {\n                updated\n                startTime\n                endTime\n                duration\n                thumbnail\n                tracks { uri flavor mimetype resolution isMaster }\n                captions { uri lang }\n                segments { uri startTime }\n            }\n        }\n    }\n`;\n\n\ntype EmbedProps = {\n    query: GraphQLTaggedNode;\n    queryRef: PreloadedQuery<EmbedQuery|EmbedDirectOpencastQuery>;\n};\n\nconst Embed: React.FC<EmbedProps> = ({ query, queryRef }) => {\n    const fragmentRef = usePreloadedQuery(query, queryRef);\n    const event = useFragment<EmbedEventData$key>(\n        embedEventFragment,\n        fragmentRef.event,\n    );\n    const { t } = useTranslation();\n\n    if (!event) {\n        return <PlayerPlaceholder>\n            <LuFrown />\n            <div>{t(\"not-found.video-not-found\")}</div>\n        </PlayerPlaceholder>;\n    }\n\n    if (event.__typename === \"NotAllowed\") {\n        return <PlayerPlaceholder>\n            <LuAlertTriangle />\n            <div>{t(\"api-remote-errors.view.event\")}</div>\n        </PlayerPlaceholder>;\n    }\n\n    if (event.__typename !== \"AuthorizedEvent\") {\n        return unreachable(\"unhandled event state\");\n    }\n\n    if (!isSynced(event)) {\n        return <PlayerPlaceholder>\n            <MovingTruck />\n            <div>{t(\"video.not-ready.title\")}</div>\n        </PlayerPlaceholder>;\n    }\n\n    return <Player event={event} />;\n};\n\nexport const BlockEmbedRoute = makeRoute({\n    match: url => {\n        // Only do something if we are embedded\n        if (window === window.top) {\n            return null;\n        }\n\n        // And only if this is a non-embeddable route\n        if (url.pathname.startsWith(\"/~embed/\")) {\n            return null;\n        }\n\n        return {\n            render: () => <PlayerPlaceholder>\n                <LuAlertTriangle />\n                <div>\n                    <Translation>{t => t(\"embed.not-supported\")}</Translation>\n                </div>\n            </PlayerPlaceholder>,\n        };\n    },\n});\n\nclass ErrorBoundary extends GlobalErrorBoundary {\n    public render(): ReactNode {\n        if (!this.state.error) {\n            return this.props.children;\n        }\n\n        return <PlayerPlaceholder>\n            <LuAlertTriangle />\n            <div>\n                <Translation>{t => t(\"errors.embedded\")}</Translation>\n            </div>\n        </PlayerPlaceholder>;\n    }\n}\n","import React, { ReactNode, useId, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { graphql, usePreloadedQuery } from \"react-relay\";\nimport type { PreloadedQuery } from \"react-relay\";\nimport { match, ProtoButton, screenWidthAtMost, useColorScheme } from \"@opencast/appkit\";\n\nimport { Outer } from \"../layout/Root\";\nimport { loadQuery } from \"../relay\";\nimport { Link } from \"../router\";\nimport { LoginQuery } from \"./__generated__/LoginQuery.graphql\";\nimport { Footer } from \"../layout/Footer\";\nimport { PageTitle } from \"../layout/header/ui\";\nimport { useForm } from \"react-hook-form\";\nimport { translatedConfig, useNoindexTag } from \"../util\";\nimport { Spinner, boxError, Card } from \"@opencast/appkit\";\nimport { LuCheck, LuChevronLeft, LuLogIn } from \"react-icons/lu\";\nimport CONFIG from \"../config\";\nimport { makeRoute } from \"../rauta\";\nimport { Header } from \"../layout/header\";\nimport { BREAKPOINT_MEDIUM } from \"../GlobalStyle\";\nimport { Breadcrumbs } from \"../ui/Breadcrumbs\";\nimport { OUTER_CONTAINER_MARGIN } from \"../layout\";\nimport { COLORS } from \"../color\";\nimport { focusStyle } from \"../ui\";\n\n\nexport const REDIRECT_STORAGE_KEY = \"tobira-redirect-after-login\";\nconst PATH = \"/~login\";\n\nexport const LoginRoute = makeRoute({\n    url: PATH,\n    match: url => {\n        if (url.pathname !== PATH) {\n            return null;\n        }\n\n        const queryRef = loadQuery<LoginQuery>(query, {});\n        return {\n            render: () => <Login queryRef={queryRef} />,\n            dispose: () => queryRef.dispose(),\n        };\n    },\n});\n\nconst query = graphql`\n    query LoginQuery {\n        currentUser { username, displayName }\n    }\n`;\n\ntype Props = {\n    queryRef: PreloadedQuery<LoginQuery>;\n};\n\nconst Login: React.FC<Props> = ({ queryRef }) => {\n    useNoindexTag();\n    const { t } = useTranslation();\n    const { currentUser } = usePreloadedQuery(query, queryRef);\n    const isLoggedIn = currentUser !== null;\n\n    return (\n        <Outer>\n            <Header loginMode />\n            <main css={{\n                padding: 16,\n                flexGrow: 1,\n                margin: OUTER_CONTAINER_MARGIN,\n            }}>\n                <div css={{\n                    display: \"flex\",\n                    flexDirection: \"column\",\n                    alignItems: \"center\",\n                }}>\n                    <div css={{ alignSelf: \"flex-start\" }}>\n                        <Breadcrumbs path={[]} tail={t(\"login-page.heading\")} />\n                    </div>\n                    <div css={{ maxWidth: \"100%\" }}>\n                        <PageTitle title={t(\"login-page.heading\")} css={{\n                            fontSize: 36,\n                            marginTop: 3,\n                            textAlign: \"center\",\n                            [screenWidthAtMost(BREAKPOINT_MEDIUM)]: {\n                                fontSize: 30,\n                            },\n                        }}/>\n                        {isLoggedIn\n                            ? <Card kind=\"info\">{t(\"login-page.already-logged-in\")}</Card>\n                            : <LoginBox />}\n                        <div css={{ marginTop: 12, fontSize: 14, lineHeight: 1 }}>\n                            <BackButton />\n                        </div>\n                    </div>\n                </div>\n            </main>\n            <Footer />\n        </Outer>\n    );\n};\n\nconst BackButton: React.FC = () => {\n    const { t } = useTranslation();\n\n    // This link does `window.history.back()`. If there is nothing to go back\n    // to, the call will silently do nothing. In that case, the link is taken,\n    // bringing the user to the home page.\n    return <Link\n        to=\"/\"\n        onClick={() => window.history.back()}\n        css={{\n            cursor: \"pointer\",\n            display: \"inline-flex\",\n            alignItems: \"center\",\n            gap: 4,\n            padding: 4,\n            borderRadius: 4,\n            textDecoration: \"none\",\n        }}\n    ><LuChevronLeft />{t(\"general.action.back\")}</Link>;\n};\n\ntype FormData = {\n    userid: string;\n    password: string;\n};\n\nconst LoginBox: React.FC = () => {\n    const { t, i18n } = useTranslation();\n    const isDark = useColorScheme().scheme === \"dark\";\n    const { register, handleSubmit, watch, formState: { errors } } = useForm<FormData>();\n    const userId = watch(\"userid\", \"\");\n    const password = watch(\"password\", \"\");\n    const userFieldId = useId();\n    const passwordFieldId = useId();\n\n    const validation = { required: t(\"general.form.this-field-is-required\") };\n\n    type State = \"idle\" | \"pending\" | \"success\";\n    const [state, setState] = useState<State>(\"idle\");\n    const [loginError, setLoginError] = useState<string | null>(null);\n\n    const onSubmit = async (data: FormData) => {\n        setState(\"pending\");\n        const response = await fetch(\"/~login\", {\n            method: \"POST\",\n            body: new URLSearchParams(data),\n        });\n\n        if (response.status === 204) {\n            // 204 No content is expected on successful login. We assume that\n            // the response also set some headers (or some other sticky\n            // information) that is used to authorize the user in future\n            // requests.\n            setState(\"success\");\n\n            // We hard forward to the home page. We do that to invalidate every\n            // data that we might have cached. It's probably be possible to\n            // wipe the relay cache manually, but I cannot figure it out right\n            // now. And well, this way we are sure everything is reloaded.\n            const redirectTo = window.sessionStorage.getItem(REDIRECT_STORAGE_KEY) ?? \"/\";\n            window.sessionStorage.removeItem(REDIRECT_STORAGE_KEY);\n            window.location.href = redirectTo;\n        } else if (response.status === 403) {\n            // 403 Forbidden means the login data was incorrect\n            setState(\"idle\");\n            setLoginError(t(\"login-page.bad-credentials\"));\n        } else {\n            // Everything else is unexpected and should not happen.\n            setState(\"idle\");\n            setLoginError(t(\"login-page.unexpected-response\"));\n        }\n    };\n\n    return (\n        <div css={{\n            width: 400,\n            maxWidth: \"100%\",\n            marginTop: 24,\n            padding: 32,\n            border: `1px solid ${COLORS.neutral25}`,\n            borderRadius: 8,\n            ...isDark && { backgroundColor: COLORS.neutral10 },\n        }}>\n            {CONFIG.auth.loginPageNote && (\n                <div css={{\n                    backgroundColor: COLORS.neutral10,\n                    marginBottom: 32,\n                    borderRadius: 4,\n                    padding: \"8px 16px\",\n                }}>{translatedConfig(CONFIG.auth.loginPageNote, i18n)}</div>\n            )}\n\n            <form\n                onSubmit={handleSubmit(onSubmit)}\n                noValidate\n                css={{\n                    \"& > *:not(:last-child)\": { marginBottom: 32 },\n                    textAlign: \"center\",\n                }}\n            >\n                <div>\n                    <Field isEmpty={userId === \"\"}>\n                        <label htmlFor={userFieldId}>\n                            {CONFIG.auth.userIdLabel\n                                ? translatedConfig(CONFIG.auth.userIdLabel, i18n)\n                                : t(\"login-page.user-id\")}\n                        </label>\n                        <input\n                            id={userFieldId}\n                            autoComplete=\"username email\"\n                            spellCheck={false}\n                            autoCapitalize=\"none\"\n                            required\n                            autoFocus\n                            {...register(\"userid\", validation)}\n                        />\n                    </Field>\n                    {boxError(errors.userid?.message)}\n                </div>\n                <div>\n                    <Field isEmpty={password === \"\"}>\n                        <label htmlFor={passwordFieldId}>\n                            {CONFIG.auth.passwordLabel\n                                ? translatedConfig(CONFIG.auth.passwordLabel, i18n)\n                                : t(\"login-page.password\")}\n                        </label>\n                        <input\n                            id={passwordFieldId}\n                            type=\"password\"\n                            autoComplete=\"current-password\"\n                            required\n                            {...register(\"password\", validation)}\n                        />\n                    </Field>\n                    {boxError(errors.password?.message)}\n                </div>\n\n                <ProtoButton\n                    type=\"submit\"\n                    disabled={state === \"pending\"}\n                    css={{\n                        backgroundColor: COLORS.happy0,\n                        borderRadius: 8,\n                        color: COLORS.happy0BwInverted,\n                        display: \"flex\",\n                        alignItems: \"center\",\n                        gap: 10,\n                        margin: \"0 auto\",\n                        padding: \"7px 14px\",\n                        \":hover, :focus\": {\n                            backgroundColor: COLORS.happy1,\n                            color: COLORS.happy1BwInverted,\n                        },\n                        ...focusStyle({ offset: 1 }),\n                    }}\n                >\n                    <LuLogIn size={20} />\n                    {t(\"user.login\")}\n                    {match(state, {\n                        \"idle\": () => null,\n                        \"pending\": () => <Spinner size={20} />,\n                        \"success\": () => <LuCheck />,\n                    })}\n                </ProtoButton>\n\n                {loginError && <div><Card kind=\"error\" iconPos=\"top\">{loginError}</Card></div>}\n            </form>\n        </div>\n    );\n};\n\n\ntype FieldProps = {\n    isEmpty: boolean;\n    children: ReactNode;\n};\n\nconst Field: React.FC<FieldProps> = ({ isEmpty, children }) => {\n    const isDark = useColorScheme().scheme === \"dark\";\n    const raisedStyle = {\n        top: 0,\n        left: 8,\n        fontSize: 12,\n    };\n\n    return (\n        <div css={{\n            position: \"relative\",\n            \"& > label\": {\n                position: \"absolute\",\n                top: \"50%\",\n                left: 16,\n                color: COLORS.neutral60,\n                transform: \"translateY(-50%)\",\n                transition: \"top 150ms, left 150ms, font-size 150ms, color 150ms\",\n                lineHeight: 1,\n                borderRadius: 4,\n                padding: \"0 4px\",\n                backgroundColor: isDark ? COLORS.neutral10 : COLORS.neutral05,\n                pointerEvents: \"none\",\n                \"&:valid\": {\n                    border: \"1px solid blue\",\n                },\n                ...!isEmpty && raisedStyle,\n            },\n            \"& > input\": {\n                display: \"block\",\n                width: \"100%\",\n                height: 50,\n                padding: \"16px 16px\",\n                border: `1px solid ${COLORS.neutral25}`,\n                borderRadius: 4,\n                // The `autofill` thing overrides Firefox's default yellow and\n                // uses Chrome's blue instead, which is easier on the eyes.\n                // This should work better for most if not all color configurations.\n                \":autofill\": { background: isDark ? \"#2f3644\" : \"#e7f0fe\" },\n                ...isDark && { backgroundColor: COLORS.neutral10 },\n            },\n            \"&:focus-within\": {\n                \"& > label\": {\n                    color: COLORS.primary1,\n                    ...isEmpty && raisedStyle,\n                },\n                \"& > input\": {\n                    borderColor: COLORS.primary0,\n                    outline: `1px solid ${COLORS.primary0}`,\n                },\n            },\n        }}>{children}</div>\n    );\n};\n","import { Trans, useTranslation } from \"react-i18next\";\nimport { graphql } from \"react-relay\";\nimport { match } from \"@opencast/appkit\";\n\nimport { RootLoader } from \"../layout/Root\";\nimport { Link } from \"../router\";\nimport { useNoindexTag } from \"../util\";\nimport { loadQuery } from \"../relay\";\nimport { NotFoundQuery } from \"./__generated__/NotFoundQuery.graphql\";\nimport { LuFrown } from \"react-icons/lu\";\nimport { PageTitle } from \"../layout/header/ui\";\nimport { CenteredContent } from \"../ui\";\nimport { Breadcrumbs } from \"../ui/Breadcrumbs\";\n\n\nexport const NotFoundRoute = {\n    prepare: () => {\n        const queryRef = loadQuery<NotFoundQuery>(query, {});\n        return {\n            render: () => <RootLoader\n                {...{ query, queryRef }}\n                nav={() => []}\n                render={() => <NotFound kind=\"page\" />}\n            />,\n            dispose: () => queryRef.dispose(),\n        };\n    },\n};\n\nconst query = graphql`\n    query NotFoundQuery { ... UserData }\n`;\n\ntype Props = {\n    kind: \"page\" | \"video\" | \"series\" | \"playlist\";\n};\n\nexport const NotFound: React.FC<Props> = ({ kind }) => {\n    const { t } = useTranslation();\n    const title = match(kind, {\n        \"page\": () => t(\"not-found.page-not-found\"),\n        \"video\": () => t(\"not-found.video-not-found\"),\n        \"series\": () => t(\"not-found.series-not-found\"),\n        \"playlist\": () => t(\"not-found.playlist-not-found\"),\n    });\n\n    // Ideally our backend would respond with 404 here, but that's not\n    // implemented yet and takes a bit of effort. For SEO it helps if we declare\n    // this page as noindex. See Google's advice on \"soft 404\" in SPAs:\n    //\n    // eslint-disable-next-line max-len\n    // https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics#avoid-soft-404s\n    useNoindexTag();\n\n    return <>\n        <Breadcrumbs path={[]} tail={<i>{title}</i>} />\n        <LuFrown css={{ margin: \"0 auto\", display: \"block\", fontSize: 90 }} />\n        <PageTitle\n            title={title}\n            css={{ textAlign: \"center\", margin: \"32px 0 48px 0 !important\" }}\n        />\n        <CenteredContent>\n            <p css={{ margin: \"16px 0\" }}>\n                {match(kind, {\n                    \"page\": () => t(\"not-found.page-explanation\"),\n                    \"video\": () => t(\"not-found.video-explanation\"),\n                    \"series\": () => t(\"not-found.series-explanation\"),\n                    \"playlist\": () => t(\"not-found.playlist-explanation\"),\n                })}\n                {t(\"not-found.url-typo\")}\n            </p>\n            <Trans i18nKey=\"not-found.actions\">\n                You can try visiting <Link to=\"/\">the homepage</Link> or using\n                the search bar to find the page you are looking for.\n            </Trans>\n        </CenteredContent>\n    </>;\n};\n","import React, { ReactElement, useState } from \"react\";\n\nimport { graphql, loadQuery, useMutation } from \"react-relay/hooks\";\nimport type { RealmQuery, RealmQuery$data } from \"./__generated__/RealmQuery.graphql\";\nimport { useTranslation } from \"react-i18next\";\nimport { LuSunrise, LuInfo, LuSettings, LuPlusCircle, LuPenSquare } from \"react-icons/lu\";\nimport { WithTooltip, screenWidthAtMost } from \"@opencast/appkit\";\n\nimport { environment as relayEnv } from \"../relay\";\nimport { Breadcrumbs } from \"../ui/Breadcrumbs\";\nimport { Blocks } from \"../ui/Blocks\";\nimport { RootLoader } from \"../layout/Root\";\nimport { NotFound } from \"./NotFound\";\nimport { Nav } from \"../layout/Navigation\";\nimport { LinkList, LinkWithIcon } from \"../ui\";\nimport CONFIG from \"../config\";\nimport { characterClass, useTitle, useTranslatedConfig } from \"../util\";\nimport { makeRoute } from \"../rauta\";\nimport { MissingRealmName } from \"./util\";\nimport { realmBreadcrumbs } from \"../util/realm\";\nimport { isRealUser, useUser } from \"../User\";\nimport { Button, Card } from \"@opencast/appkit\";\nimport { displayCommitError } from \"./manage/Realm/util\";\nimport { Spinner, boxError } from \"@opencast/appkit\";\nimport { useRouter } from \"../router\";\nimport { COLORS } from \"../color\";\nimport { useMenu } from \"../layout/MenuState\";\nimport { ManageNav } from \"./manage\";\nimport { BREAKPOINT as NAV_BREAKPOINT } from \"../layout/Navigation\";\n\n\n// eslint-disable-next-line @typescript-eslint/quotes\nexport const ILLEGAL_CHARS = '<>\"[\\\\]^`{|}#%/?';\nexport const RESERVED_CHARS = \"-+~@_!$&;:.,=*'()\";\n\nexport type PathSegmentValidity = \"valid\"\n| \"too-short\"\n| \"control-char\"\n| \"whitespace\"\n| \"illegal-chars\"\n| \"reserved-chars-at-beginning\";\n\nexport const checkPathSegment = (segment: string): PathSegmentValidity => {\n    if ((new TextEncoder().encode(segment)).length <= 1) {\n        return \"too-short\";\n    }\n    // eslint-disable-next-line no-control-regex\n    if (segment.match(/[\\u0000-\\u001F\\u007F-\\u009F]/u)) {\n        return \"control-char\";\n    }\n    if (segment.match(/[\\u0020\\u00A0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/u)) {\n        return \"whitespace\";\n    }\n    if (segment.match(new RegExp(characterClass(ILLEGAL_CHARS), \"u\"))) {\n        return \"illegal-chars\";\n    }\n    if (segment.match(new RegExp(`^${characterClass(RESERVED_CHARS)}`, \"u\"))) {\n        return \"reserved-chars-at-beginning\";\n    }\n\n    return \"valid\";\n};\n\nexport const isValidPathSegment = (segment: string): boolean =>\n    checkPathSegment(segment) === \"valid\";\n\nexport const isValidRealmPath = (path: string[]): boolean => {\n    if (path.length === 1 && path[0] === \"\") {\n        return true;\n    }\n\n    return path.every((segment, i) => (\n        isValidPathSegment(segment)\n           || (i === 0 && segment.startsWith(\"@\") && isValidPathSegment(segment.substring(1)))\n    ));\n};\n\nexport const RealmRoute = makeRoute({\n    match: url => {\n        const urlPath = url.pathname.replace(/^\\/|\\/$/g, \"\");\n        const pathSegments = urlPath.split(\"/\").map(decodeURIComponent);\n        if (!isValidRealmPath(pathSegments)) {\n            return null;\n        }\n\n        const realmPath = \"/\" + pathSegments.join(\"/\");\n\n        const queryRef = loadQuery<RealmQuery>(relayEnv, query, { path: realmPath });\n\n        return {\n            render: () => <RootLoader\n                {...{ query, queryRef }}\n                nav={data => {\n                    if (showCreateUserRealmPage(realmPath, data.currentUser) && !data.realm) {\n                        return <ManageNav active={realmPath as `/@${string}`} />;\n                    }\n\n                    if (!data.realm) {\n                        return [];\n                    }\n\n                    const mainNav = <Nav key=\"nav\" fragRef={data.realm} />;\n                    return data.realm.canCurrentUserModerate\n                        ? [mainNav, <RealmEditLinks key=\"edit-buttons\" path={realmPath} />]\n                        : mainNav;\n                }}\n                render={data => (\n                    data.realm\n                        ? <RealmPage realm={data.realm} />\n                        : <NoRealm realmPath={realmPath} />\n                )}\n            />,\n            dispose: () => queryRef.dispose(),\n        };\n    },\n});\n\nconst query = graphql`\n    query RealmQuery($path: String!) {\n        ... UserData\n        currentUser { username canCreateUserRealm }\n        realm: realmByPath(path: $path) {\n            id\n            name\n            path\n            isMainRoot\n            isUserRealm\n            ownerDisplayName\n            children { id }\n            blocks { id }\n            canCurrentUserModerate\n            ancestors { name path ownerDisplayName }\n            parent { id }\n            ... BlocksData\n            ... NavigationData\n        }\n    }\n`;\n\ntype Props = {\n    realm: NonNullable<RealmQuery$data[\"realm\"]>;\n};\n\nconst RealmPage: React.FC<Props> = ({ realm }) => {\n    const { t } = useTranslation();\n    const siteTitle = useTranslatedConfig(CONFIG.siteTitle);\n    const breadcrumbs = realmBreadcrumbs(t, realm.ancestors);\n\n    const title = realm.isMainRoot ? siteTitle : realm.name;\n    useTitle(title, realm.isMainRoot);\n\n    return <>\n        {!realm.isMainRoot && (\n            <Breadcrumbs path={breadcrumbs} tail={realm.name ?? <MissingRealmName />} />\n        )}\n        {title && (\n            <div css={{\n                marginBottom: 20,\n                display: \"flex\",\n                flexWrap: \"wrap\",\n                alignItems: \"baseline\",\n                columnGap: 12,\n                rowGap: 6,\n            }}>\n                <h1 css={{ display: \"inline-block\", marginBottom: 0 }}>{title}</h1>\n                {realm.isUserRealm && <UserRealmNote realm={realm} />}\n            </div>\n        )}\n        {realm.blocks.length === 0 && realm.isMainRoot\n            ? <WelcomeMessage />\n            : <Blocks realm={realm} />}\n    </>;\n};\n\nconst WelcomeMessage: React.FC = () => {\n    const { t } = useTranslation();\n\n    return (\n        <div css={{\n            maxWidth: 500,\n            marginTop: 32,\n            display: \"inline-flex\",\n            flexDirection: \"column\",\n            borderRadius: 4,\n            padding: \"8px 16px\",\n            gap: 16,\n            alignItems: \"center\",\n            backgroundColor: COLORS.neutral10,\n            border: `2px dashed ${COLORS.happy0}`,\n        }}>\n            <LuSunrise css={{ marginTop: 8, fontSize: 32, minWidth: 32 }} />\n            <div>\n                <h2 css={{ textAlign: \"center\", fontSize: 20, marginBottom: 16 }}>\n                    {t(\"welcome.title\")}\n                </h2>\n                <p>{t(\"welcome.body\")}</p>\n            </div>\n        </div>\n    );\n};\n\nconst UserRealmNote: React.FC<Props> = ({ realm }) => {\n    const { t } = useTranslation();\n    const displayName = realm.ancestors.concat(realm)[0].ownerDisplayName;\n\n    return (\n        <WithTooltip\n            tooltip={t(\"realm.user-realm.note-body\", { user: displayName })}\n            placement=\"bottom\"\n            tooltipCss={{ width: 400 }}\n            css={{ display: \"inline-block\" }}\n        >\n            <div css={{\n                fontSize: 14,\n                lineHeight: 1,\n                color: COLORS.neutral60,\n                display: \"flex\",\n                gap: 4,\n            }}>\n                <LuInfo />\n                {t(\"realm.user-realm.note-label\")}\n            </div>\n        </WithTooltip>\n\n    );\n};\n\nconst NoRealm: React.FC<{ realmPath: string }> = ({ realmPath }) => {\n    const user = useUser();\n\n    return isRealUser(user) && showCreateUserRealmPage(realmPath, user)\n        ? <CreateUserRealm realmPath={realmPath} />\n        : <NotFound kind=\"page\" />;\n};\n\nconst createUserRealmMutation = graphql`\n    mutation RealmCreateForUserMutation {\n        createMyUserRealm { id path }\n    }\n`;\n\nconst CreateUserRealm: React.FC<{ realmPath: string }> = ({ realmPath }) => {\n    const { t } = useTranslation();\n    const router = useRouter();\n\n    const [commit, isInFlight] = useMutation(createUserRealmMutation);\n    const [error, setError] = useState<JSX.Element | null>(null);\n    const onSubmit = () => {\n        commit({\n            variables: {},\n            onError: error => setError(displayCommitError(error)),\n            onCompleted: () => {\n                router.goto(`~manage/realm/content?path=${encodeURIComponent(realmPath)}`);\n            },\n            // To prevent a short flash of \"no realm found\"\n            updater: store => store.invalidateStore(),\n        });\n    };\n\n    return <>\n        <Breadcrumbs path={[]} tail={<i>{t(\"realm.user-realm.create.heading\")}</i>} />\n        <div css={{\n            width: \"80ch\",\n            maxWidth: \"100%\",\n            [screenWidthAtMost(NAV_BREAKPOINT)]: {\n                textAlign: \"center\",\n            },\n            \"> h1, > p\": {\n                textAlign: \"left\",\n                margin: \"16px 0\",\n            },\n            code: {\n                display: \"block\",\n                fontSize: 14,\n                backgroundColor: COLORS.neutral10,\n                borderRadius: 4,\n                padding: \"4px 8px\",\n            },\n        }}>\n            <Card kind=\"info\" css={{ marginBottom: 32 }}>\n                {t(\"realm.user-realm.create.currently-none\")}\n            </Card>\n            <h1>{t(\"realm.user-realm.create.heading\")}</h1>\n            <p>{t(\"realm.user-realm.create.what-you-can-do\")}</p>\n            <p>{t(\"realm.user-realm.create.available-at\")}</p>\n            <code css={{ textAlign: \"center\" }}>{window.location.origin + realmPath}</code>\n            <p>{t(\"realm.user-realm.create.find-and-delete\")}</p>\n            <Button kind=\"call-to-action\"css={{ marginTop: 32 }} onClick={onSubmit}>\n                {t(\"realm.user-realm.create.button\")}\n            </Button>\n            {isInFlight && <div css={{ marginTop: 16 }}><Spinner size={20} /></div>}\n            {boxError(error)}\n        </div>\n    </>;\n};\n\nexport const RealmEditLinks: React.FC<{ path: string }> = ({ path }) => {\n    const { t } = useTranslation();\n    const menu = useMenu();\n\n    /* eslint-disable react/jsx-key */\n    const buttons: [string, string, ReactElement][] = [\n        [\"/~manage/realm?path=\", t(\"realm.page-settings\"), <LuSettings />],\n        [\"/~manage/realm/content?path=\", t(\"realm.edit-page-content\"), <LuPenSquare />],\n        [\"/~manage/realm/add-child?parent=\", t(\"realm.add-sub-page\"), <LuPlusCircle />],\n    ];\n    /* eslint-enable react/jsx-key */\n\n    const isActive = (route: string) => document.location.href.includes(route);\n\n    const encodedPath = pathToQuery(path);\n\n    const items = buttons.map(([route, label, icon], i) => (\n        <LinkWithIcon key={i}\n            to={`${route}${encodedPath}`}\n            iconPos=\"left\"\n            active={isActive(route)}\n            close={() => menu.state === \"burger\" && menu.close()}\n        >\n            {icon}\n            {label}\n        </LinkWithIcon>\n    ));\n\n    return <LinkList items={items} />;\n};\n\n/**\n * Formats a realm path for inclusion in a query parameter.\n * Specifically, it preserves the path separators (`/`) between the\n * individual path segments for better readability.\n * It is thus **not** suited for use in the path-part of a URL!\n */\nexport const pathToQuery = (path: string): string => (\n    encodeURIComponent(path).replace(/%2f/gui, \"/\")\n);\n\nconst showCreateUserRealmPage = (\n    realmPath: string,\n    user?: { username: string; canCreateUserRealm: boolean } | null,\n) => user && `/@${user.username}` === realmPath && user.canCreateUserRealm;\n","import { CamelToPascal } from './utility-types';\n\n/**\n * Converts string to kebab case\n *\n * @param {string} string\n * @returns {string} A kebabized string\n */\nexport const toKebabCase = (string: string) =>\n  string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n\n/**\n * Converts string to pascal case\n *\n * @param {string} string\n * @returns {string} A pascalized string\n */\nexport const toPascalCase = <T extends string>(string: T): CamelToPascal<T> => {\n  const camelCase = string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2) =>\n    p2 ? p2.toUpperCase() : p1.toLowerCase(),\n  );\n\n  return (camelCase.charAt(0).toUpperCase() + camelCase.slice(1)) as CamelToPascal<T>;\n};\n\n/**\n * Merges classes into a single string\n *\n * @param {array} classes\n * @returns {string} A string of classes\n */\nexport const mergeClasses = <ClassType = string | undefined | null>(...classes: ClassType[]) =>\n  classes\n    .filter((className, index, array) => {\n      return Boolean(className) && array.indexOf(className) === index;\n    })\n    .join(' ');\n","export default {\n  xmlns: 'http://www.w3.org/2000/svg',\n  width: 24,\n  height: 24,\n  viewBox: '0 0 24 24',\n  fill: 'none',\n  stroke: 'currentColor',\n  strokeWidth: 2,\n  strokeLinecap: 'round',\n  strokeLinejoin: 'round',\n};\n","import { createElement, forwardRef } from 'react';\nimport defaultAttributes from './defaultAttributes';\nimport { IconNode, LucideProps } from './types';\nimport { mergeClasses } from '@lucide/shared';\n\ninterface IconComponentProps extends LucideProps {\n  iconNode: IconNode;\n}\n\n/**\n * Lucide icon component\n *\n * @component Icon\n * @param {object} props\n * @param {string} props.color - The color of the icon\n * @param {number} props.size - The size of the icon\n * @param {number} props.strokeWidth - The stroke width of the icon\n * @param {boolean} props.absoluteStrokeWidth - Whether to use absolute stroke width\n * @param {string} props.className - The class name of the icon\n * @param {IconNode} props.children - The children of the icon\n * @param {IconNode} props.iconNode - The icon node of the icon\n *\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst Icon = forwardRef<SVGSVGElement, IconComponentProps>(\n  (\n    {\n      color = 'currentColor',\n      size = 24,\n      strokeWidth = 2,\n      absoluteStrokeWidth,\n      className = '',\n      children,\n      iconNode,\n      ...rest\n    },\n    ref,\n  ) => {\n    return createElement(\n      'svg',\n      {\n        ref,\n        ...defaultAttributes,\n        width: size,\n        height: size,\n        stroke: color,\n        strokeWidth: absoluteStrokeWidth ? (Number(strokeWidth) * 24) / Number(size) : strokeWidth,\n        className: mergeClasses('lucide', className),\n        ...rest,\n      },\n      [\n        ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n        ...(Array.isArray(children) ? children : [children]),\n      ],\n    );\n  },\n);\n\nexport default Icon;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name LetterText\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMTJoNiIgLz4KICA8cGF0aCBkPSJNMTUgNmg2IiAvPgogIDxwYXRoIGQ9Im0zIDEzIDMuNTUzLTcuNzI0YS41LjUgMCAwIDEgLjg5NCAwTDExIDEzIiAvPgogIDxwYXRoIGQ9Ik0zIDE4aDE4IiAvPgogIDxwYXRoIGQ9Ik00IDExaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/letter-text\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst LetterText = createLucideIcon('LetterText', [\n  ['path', { d: 'M15 12h6', key: 'upa0zy' }],\n  ['path', { d: 'M15 6h6', key: '1jlkvy' }],\n  ['path', { d: 'm3 13 3.553-7.724a.5.5 0 0 1 .894 0L11 13', key: 'blevx4' }],\n  ['path', { d: 'M3 18h18', key: '1h113x' }],\n  ['path', { d: 'M4 11h6', key: 'olkgv1' }],\n]);\n\nexport default LetterText;\n","import { createElement, forwardRef } from 'react';\nimport { mergeClasses, toKebabCase } from '@lucide/shared';\nimport { IconNode, LucideProps } from './types';\nimport Icon from './Icon';\n\n/**\n * Create a Lucide icon component\n * @param {string} iconName\n * @param {array} iconNode\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst createLucideIcon = (iconName: string, iconNode: IconNode) => {\n  const Component = forwardRef<SVGSVGElement, LucideProps>(({ className, ...props }, ref) =>\n    createElement(Icon, {\n      ref,\n      iconNode,\n      className: mergeClasses(`lucide-${toKebabCase(iconName)}`, className),\n      ...props,\n    }),\n  );\n\n  Component.displayName = `${iconName}`;\n\n  return Component;\n};\n\nexport default createLucideIcon;\n","import { Trans, useTranslation } from \"react-i18next\";\nimport { graphql, PreloadedQuery, usePreloadedQuery, useQueryLoader } from \"react-relay\";\nimport {\n    LuCalendarRange,\n    LuLayout,\n    LuLibrary,\n    LuPlayCircle,\n    LuRadio,\n    LuVolume2,\n    LuX,\n} from \"react-icons/lu\";\nimport { LetterText } from \"lucide-react\";\nimport { IconType } from \"react-icons\";\nimport { ReactNode, RefObject, useEffect, useRef } from \"react\";\nimport {\n    Button,\n    Card,\n    Floating,\n    FloatingContainer,\n    FloatingTrigger,\n    ProtoButton,\n    WithTooltip,\n    match,\n    screenWidthAtMost,\n    unreachable,\n    useColorScheme,\n} from \"@opencast/appkit\";\nimport { CSSObject } from \"@emotion/react\";\n\nimport { RootLoader } from \"../layout/Root\";\nimport {\n    ItemType as RawItemType,\n    SearchQuery,\n    SearchQuery$data,\n} from \"./__generated__/SearchQuery.graphql\";\nimport { RouterControl, makeRoute } from \"../rauta\";\nimport { loadQuery } from \"../relay\";\nimport { Link, useRouter } from \"../router\";\nimport {\n    Creators,\n    Thumbnail,\n    ThumbnailImg,\n    ThumbnailOverlay,\n    ThumbnailOverlayContainer,\n    ThumbnailReplacement,\n    formatDuration,\n} from \"../ui/Video\";\nimport { SmallDescription } from \"../ui/metadata\";\nimport { Breadcrumbs, BreadcrumbsContainer, BreadcrumbSeparator } from \"../ui/Breadcrumbs\";\nimport { MissingRealmName } from \"./util\";\nimport { ellipsisOverflowCss, focusStyle } from \"../ui\";\nimport { COLORS } from \"../color\";\nimport { BREAKPOINT_MEDIUM, BREAKPOINT_SMALL } from \"../GlobalStyle\";\nimport { eventId, isExperimentalFlagSet, keyOfId, secondsToTimeString } from \"../util\";\nimport { DirectVideoRoute, VideoRoute } from \"./Video\";\nimport { DirectSeriesRoute } from \"./Series\";\nimport { PartOfSeriesLink } from \"../ui/Blocks/VideoList\";\nimport { SearchSlidePreviewQuery } from \"./__generated__/SearchSlidePreviewQuery.graphql\";\n\n\nexport const isSearchActive = (): boolean => document.location.pathname === \"/~search\";\n\ntype ItemType = Exclude<RawItemType, \"%future added value\">\ntype SearchParams = {\n    query: string;\n    itemType?: ItemType;\n    start?: string;\n    end?: string;\n}\n\nexport const SearchRoute = makeRoute({\n    url: ({ query, itemType, start, end }: SearchParams) => {\n        const searchParams = new URLSearchParams({ q: query });\n\n        if (itemType) {\n            searchParams.append(\"f\", itemType);\n        }\n        if (start) {\n            searchParams.append(\"start\", start);\n        }\n        if (end) {\n            searchParams.append(\"end\", end);\n        }\n\n        return `/~search?${searchParams}`;\n    },\n    match: url => {\n        if (url.pathname !== \"/~search\") {\n            return null;\n        }\n\n        const q = url.searchParams.get(\"q\") ?? \"\";\n        const filters = prepareFilters(url);\n\n        const queryRef = loadQuery<SearchQuery>(query, { q, filters });\n\n        return {\n            render: () => <RootLoader\n                {...{ query, queryRef }}\n                noindex\n                nav={() => []}\n                render={data => <SearchPage {...{ q }} outcome={data.search} />}\n            />,\n            dispose: () => queryRef.dispose(),\n        };\n    },\n});\n\nconst itemTypes: ItemType[] = [\"EVENT\", \"REALM\", \"SERIES\"];\nexport const isValidSearchItemType = (value: string | null | undefined) =>\n    value && (itemTypes as string[]).includes(value)\n        ? value as ItemType\n        : undefined;\nconst prepareFilters = (url: URL) => {\n    const parseTime = (timeString: string | null) => {\n        const date = new Date(timeString + \"T00:00:00Z\");\n        return !isNaN(date.getTime()) ? date.toISOString() : null;\n    };\n    const filters = {\n        itemType: isValidSearchItemType(url.searchParams.get(\"f\")),\n        start: parseTime(url.searchParams.get(\"start\")),\n        end: parseTime(url.searchParams.get(\"end\")),\n    };\n\n    return filters;\n};\n\nconst query = graphql`\n    query SearchQuery($q: String!, $filters: Filters! ) {\n        ... UserData\n        search(query: $q, filters: $filters) {\n            __typename\n            ... on EmptyQuery { dummy }\n            ... on SearchUnavailable { dummy }\n            ... on SearchResults {\n                items {\n                    id\n                    __typename\n                    ... on SearchEvent {\n                        title\n                        description\n                        thumbnail\n                        duration\n                        creators\n                        seriesTitle\n                        seriesId\n                        isLive\n                        audioOnly\n                        startTime\n                        endTime\n                        created\n                        hostRealms { path }\n                        textMatches {\n                            start\n                            duration\n                            text\n                            ty\n                            highlights { start len }\n                        }\n                    }\n                    ... on SearchSeries {\n                        title\n                        description\n                        thumbnails { thumbnail isLive audioOnly }\n                    }\n                    ... on SearchRealm { name path ancestorNames }\n                }\n                totalHits\n            }\n        }\n    }\n`;\n\ntype Props = {\n    q: string;\n    outcome: SearchQuery$data[\"search\"];\n};\n\nconst SearchPage: React.FC<Props> = ({ q, outcome }) => {\n    const { t } = useTranslation();\n    const router = useRouter();\n\n    useEffect(() => {\n        const handleEscape = ((ev: KeyboardEvent) => {\n            if (ev.key === \"Escape\") {\n                handleNavigation(router);\n            }\n        });\n        document.addEventListener(\"keyup\", handleEscape);\n        return () => document.removeEventListener(\"keyup\", handleEscape);\n    });\n\n    let body;\n    if (outcome.__typename === \"EmptyQuery\") {\n        body = <CenteredNote>{t(\"search.too-few-characters\")}</CenteredNote>;\n    } else if (outcome.__typename === \"SearchUnavailable\") {\n        body = <div css={{ textAlign: \"center\" }}>\n            <Card kind=\"error\">{t(\"search.unavailable\")}</Card>\n        </div>;\n    } else if (outcome.__typename === \"SearchResults\") {\n        body = outcome.items.length === 0\n            ? <CenteredNote>{t(\"search.no-results\")}</CenteredNote>\n            : <SearchResults items={outcome.items} />;\n    } else {\n        return unreachable(\"unknown search outcome\");\n    }\n\n    const hits = outcome.__typename === \"SearchResults\" ? outcome.totalHits : 0;\n\n    return <>\n        <Breadcrumbs path={[]} tail={q\n            ? <Trans i18nKey={\"search.title\"} count={hits}>\n                {{ query: q }}\n            </Trans>\n            : t(\"search.no-query\")\n        } />\n        <div css={{ maxWidth: 900, margin: \"0 auto\" }}>\n            {isExperimentalFlagSet() && <>\n                {/* Filters */}\n                <div>\n                    <div css={{\n                        display: \"flex\",\n                        flexWrap: \"wrap\",\n                        gap: 8,\n                    }}>\n                        {/* Type */}\n                        <FilterButton {...{ router }} />\n                        {itemTypes.map((type, index) =>\n                            <FilterButton key={index} {...{ type, router }} />)\n                        }\n                        {/* Date */}\n                        <DatePicker {...{ router }} />\n                    </div>\n                </div>\n            </>}\n            {/* Search results */}\n            {body}\n        </div>\n    </>;\n};\n\ntype DatePickerProps = {\n    router: RouterControl;\n}\n\nconst DatePicker: React.FC<DatePickerProps> = ({ router }) => {\n    const { t } = useTranslation();\n    const ref = useRef(null);\n    const handleChange = (\n        date: string,\n        type: \"start\" | \"end\",\n    ) => {\n        const params = new URLSearchParams(window.location.search);\n        const query = params.get(\"q\") ?? \"\";\n        const itemType = isValidSearchItemType(params.get(\"f\")) ?? undefined;\n        const start = type === \"start\"\n            ? date\n            : params.get(\"start\") ?? \"\";\n        const end = type === \"end\"\n            ? date\n            : params.get(\"end\") ?? \"\";\n        router.goto(SearchRoute.url({ query, itemType, start, end }), true);\n    };\n\n    const params = new URLSearchParams(window.location.search);\n    const startDate = params.get(\"start\");\n    const endDate = params.get(\"end\");\n\n    const isActive = startDate || endDate;\n    const inputStyle = {\n        borderRadius: 4,\n        border: `1px solid ${COLORS.neutral40}`,\n        ...focusStyle({ width: 2, inset: true }),\n    };\n\n    return <FloatingContainer\n        {...{ ref }}\n        placement=\"top\"\n        arrowSize={12}\n        ariaRole=\"dialog\"\n        trigger=\"click\"\n        viewPortMargin={12}\n    >\n        <FloatingTrigger>\n            <Button aria-label={t(\"search.select-time-frame\")} css={{\n                height: 40,\n                ...isActive && {\n                    backgroundColor: COLORS.neutral30,\n                    \"&&\": {\n                        border: `1px solid ${COLORS.neutral90}`,\n                    },\n                },\n            }}><LuCalendarRange /></Button>\n        </FloatingTrigger>\n        <Floating css={{ padding: \"0 8px 8px 8px\" }}>\n            <p css={{ fontSize: 14, padding: \"4px 2px\" }}>{t(\"search.select-time-frame\")}</p>\n            <div css={{\n                display: \"flex\",\n                flexWrap: \"wrap\",\n                gap: 8,\n            }}>\n                {isActive && <ProtoButton\n                    aria-label={t(\"search.clear-time-frame\")}\n                    css={{ display: \"flex\", alignItems: \"center\" }}\n                    onClick={() => {\n                        handleChange(\"\", \"start\");\n                        handleChange(\"\", \"end\");\n                    }}\n                ><LuX /></ProtoButton>}\n                <input\n                    value={startDate ?? \"\"}\n                    css={inputStyle}\n                    type=\"date\"\n                    onChange={e => handleChange(e.target.value, \"start\")}\n                />\n                <span>-</span>\n                <input\n                    value={endDate ?? \"\"}\n                    css={inputStyle}\n                    type=\"date\"\n                    min={startDate ?? \"\"}\n                    onChange={e => handleChange(e.target.value, \"end\")}\n                />\n            </div>\n        </Floating>\n    </FloatingContainer>;\n};\n\ntype FilterButtonProps = {\n    type?: ItemType;\n    router: RouterControl;\n}\n\nconst FilterButton: React.FC<FilterButtonProps> = ({ type, router }) => {\n    const { t } = useTranslation();\n    const handleClick = () => {\n        const params = new URLSearchParams(window.location.search);\n        const query = params.get(\"q\") ?? \"\";\n        const start = params.get(\"start\") ?? \"\";\n        const end = params.get(\"end\") ?? \"\";\n        const itemType = type ?? undefined;\n        router.goto(SearchRoute.url({ query, itemType, start, end }), true);\n    };\n\n    const params = new URLSearchParams(window.location.search);\n    const filter = isValidSearchItemType(params.get(\"f\"));\n    const translationKey = type ? type.toLowerCase() as Lowercase<ItemType> : \"all\";\n\n    return <Button\n        onClick={handleClick}\n        disabled={!filter && !type || filter === type}\n        css={{\n            width: \"fit-content\",\n            justifyContent: \"center\",\n            \":disabled\": {\n                backgroundColor: COLORS.neutral30,\n                color: COLORS.neutral90,\n                border: `1px solid ${COLORS.neutral90}`,\n            },\n        }}\n    >{t(`search.filter.${translationKey}`)}</Button>;\n};\n\nconst CenteredNote: React.FC<{ children: ReactNode }> = ({ children }) => (\n    <div css={{ textAlign: \"center\" }}>\n        <Card kind=\"info\">{children}</Card>\n    </div>\n);\n\ntype Results = Extract<SearchQuery$data[\"search\"], { __typename: \"SearchResults\" }>;\n\ntype SearchResultsProps = {\n    items: Results[\"items\"];\n};\n\nconst unwrapUndefined = <T, >(value: T | undefined): T => typeof value === \"undefined\"\n    ? unreachable(\"type dependent field for search item is not set\")\n    : value;\n\nconst SearchResults: React.FC<SearchResultsProps> = ({ items }) => (\n    <ul css={{\n        listStyle: \"none\",\n        padding: 0,\n        // A yellow that looks good for dark and light mode.\n        \"--highlight-color\": \"#ba9f14\",\n    }}>\n        {items.map(item => {\n            if (item.__typename === \"SearchEvent\") {\n                return <SearchEvent key={item.id} {...{\n                    id: item.id,\n                    title: unwrapUndefined(item.title),\n                    description: unwrapUndefined(item.description),\n                    thumbnail: unwrapUndefined(item.thumbnail),\n                    duration: unwrapUndefined(item.duration),\n                    creators: unwrapUndefined(item.creators),\n                    seriesTitle: unwrapUndefined(item.seriesTitle),\n                    seriesId: unwrapUndefined(item.seriesId),\n                    isLive: unwrapUndefined(item.isLive),\n                    audioOnly: unwrapUndefined(item.audioOnly),\n                    created: unwrapUndefined(item.created),\n                    startTime: unwrapUndefined(item.startTime),\n                    endTime: unwrapUndefined(item.endTime),\n                    hostRealms: unwrapUndefined(item.hostRealms),\n                    textMatches: unwrapUndefined(item.textMatches),\n                }} />;\n            } else if (item.__typename === \"SearchSeries\") {\n                return <SearchSeries key={item.id} {...{\n                    id: item.id,\n                    title: unwrapUndefined(item.title),\n                    description: unwrapUndefined(item.description),\n                    thumbnails: unwrapUndefined(item.thumbnails),\n                }} />;\n            } else if (item.__typename === \"SearchRealm\") {\n                return <SearchRealm key={item.id} {...{\n                    id: item.id,\n                    name: unwrapUndefined(item.name),\n                    fullPath: unwrapUndefined(item.path),\n                    ancestorNames: unwrapUndefined(item.ancestorNames),\n                }} />;\n            } else {\n                // eslint-disable-next-line no-console\n                console.warn(\"Unknown search item type: \", item.__typename);\n                return null;\n            }\n        })}\n    </ul>\n);\n\ntype WithIconProps = React.PropsWithChildren<{\n    Icon: IconType;\n    iconSize?: number;\n    hideIconOnMobile?: boolean;\n}>;\n\nconst WithIcon: React.FC<WithIconProps> = ({ Icon, iconSize = 30, children, hideIconOnMobile }) => (\n    <div css={{\n        display: \"flex\",\n        flexDirection: \"row\",\n        flexGrow: \"1\",\n        minWidth: 0,\n        gap: 24,\n        [screenWidthAtMost(BREAKPOINT_MEDIUM)]: {\n            flexDirection: \"row-reverse\",\n            justifyContent: \"space-between\",\n            paddingLeft: 4,\n        },\n        ...hideIconOnMobile && {\n            [screenWidthAtMost(BREAKPOINT_SMALL)]: {\n                justifyContent: \"flex-end\",\n            },\n        },\n    }}>\n        <Icon size={iconSize} css={{\n            flexShrink: 0,\n            color: COLORS.primary0,\n            strokeWidth: 1.5,\n            ...hideIconOnMobile && {\n                [screenWidthAtMost(BREAKPOINT_SMALL)]: {\n                    display: \"none\",\n                },\n            },\n        }} />\n        {children}\n    </div>\n);\n\ntype SearchEventProps = {\n    id: string;\n    title: string;\n    description: string | null;\n    thumbnail: string | null;\n    duration: number;\n    creators: readonly string[];\n    seriesTitle: string | null;\n    seriesId: string | null;\n    isLive: boolean;\n    audioOnly: boolean;\n    created: string;\n    startTime: string | null;\n    endTime: string | null;\n    hostRealms: readonly { readonly path: string }[];\n    textMatches: NonNullable<Results[\"items\"][number][\"textMatches\"]>;\n};\n\nconst SearchEvent: React.FC<SearchEventProps> = ({\n    id,\n    title,\n    description,\n    thumbnail,\n    duration,\n    creators,\n    seriesTitle,\n    seriesId,\n    isLive,\n    audioOnly,\n    created,\n    startTime,\n    endTime,\n    hostRealms,\n    textMatches,\n}) => {\n    // TODO: decide what to do in the case of more than two host realms. Direct\n    // link should be avoided.\n    const link = hostRealms.length !== 1\n        ? DirectVideoRoute.url({ videoId: id })\n        : VideoRoute.url({ realmPath: hostRealms[0].path, videoID: id });\n\n    return (\n        <Item key={id} link={link}>\n            <WithIcon Icon={LuPlayCircle} hideIconOnMobile>\n                <div css={{\n                    color: COLORS.neutral90,\n                    marginRight: \"clamp(12px, 4vw - 13px, 40px)\",\n                    display: \"flex\",\n                    flexDirection: \"column\",\n                    minWidth: 0,\n                    width: \"100%\",\n                }}>\n                    <h3 css={{\n                        color: COLORS.primary0,\n                        marginBottom: 6,\n                        fontSize: 17,\n                        lineHeight: 1.3,\n                        ...ellipsisOverflowCss(2),\n                    }}>{title}</h3>\n                    <Creators creators={creators} css={{\n                        ul: {\n                            display: \"inline-block\",\n                            overflow: \"hidden\",\n                            textOverflow: \"ellipsis\",\n                            whiteSpace: \"nowrap\",\n                        },\n                        li: {\n                            display: \"inline\",\n                        },\n                    }} />\n                    {description && <SmallDescription\n                        text={description}\n                        lines={3}\n                    />}\n                    {seriesTitle && seriesId && <PartOfSeriesLink {...{ seriesTitle, seriesId }} />}\n\n                    {/* Show timeline with matches if there are any */}\n                    {textMatches.length > 0 && (\n                        <TextMatchTimeline {...{ id, duration, link, textMatches }} />\n                    )}\n                </div>\n            </WithIcon>\n            <Link to={link}>\n                <Thumbnail\n                    event={{\n                        title,\n                        isLive,\n                        created,\n                        syncedData: {\n                            thumbnail,\n                            duration,\n                            startTime,\n                            endTime,\n                            audioOnly,\n                        },\n                    }}\n                    css={thumbnailCss}\n                />\n            </Link>\n        </Item>\n    );\n};\n\nconst thumbnailCss = {\n    outline: `1px solid ${COLORS.neutral15}`,\n    minWidth: 270,\n    width: 270,\n    marginLeft: \"auto\",\n    [screenWidthAtMost(800)]: {\n        minWidth: 240,\n        width: 240,\n    },\n    [screenWidthAtMost(BREAKPOINT_MEDIUM)]: {\n        maxWidth: 400,\n        margin: \"0 auto\",\n    },\n};\n\ntype TextMatchTimelineProps = Pick<SearchEventProps, \"id\" | \"duration\" | \"textMatches\"> & {\n    link: string;\n};\n\nconst slidePreviewQuery = graphql`\n    query SearchSlidePreviewQuery($id: ID!) {\n        eventById(id: $id) {\n            ...on AuthorizedEvent {\n                id\n                syncedData {\n                    segments { startTime uri }\n                }\n            }\n        }\n    }\n`;\n\nconst TextMatchTimeline: React.FC<TextMatchTimelineProps> = ({\n    id, duration, textMatches, link,\n}) => {\n    const sectionLink = (startMs: number) => `${link}?t=${secondsToTimeString(startMs / 1000)}`;\n    const [queryRef, loadQuery]\n        = useQueryLoader<SearchSlidePreviewQuery>(slidePreviewQuery);\n\n    // We load the query once the user hovers over the parent container. This\n    // seems like it would send a query every time the mouse enters, but relay\n    // caches the results, so it is only sent once.\n    return (\n        <div onMouseEnter={() => { loadQuery({ id: eventId(keyOfId(id)) }); }} css={{\n            width: \"100%\",\n            position: \"relative\",\n            height: 10.5,\n            margin: \"16px 0\",\n            border: `1.5px solid ${COLORS.neutral50}`,\n            borderTop: \"none\",\n            borderBottom: \"none\",\n        }}>\n            {/* The timeline line */}\n            <div css={{\n                position: \"absolute\",\n                left: 0,\n                right: 0,\n                bottom: \"calc(50% - 0.75px)\",\n                height: 0,\n                borderTop: `1.5px solid ${COLORS.neutral50}`,\n            }} />\n\n            {textMatches.map((m, i) => (\n                <WithTooltip\n                    key={i}\n                    distance={m.ty === \"CAPTION\" ? 4 : 5.5}\n                    tooltipCss={{\n                        textAlign: \"center\",\n                        paddingTop: 8,\n                        minWidth: 160,\n                        maxWidth: \"min(85vw, 420px)\",\n                    }}\n                    tooltip={queryRef\n                        ? <TextMatchTooltipWithMaybeImage queryRef={queryRef} textMatch={m} />\n                        : <TextMatchTooltip textMatch={m} />\n                    }\n                    css={{\n                        position: \"absolute\",\n                        ...match(m.ty, {\n                            CAPTION: () => ({\n                                height: \"100%\",\n                                bottom: \"0\",\n                                backgroundColor: COLORS.primary1,\n                            }) as CSSObject,\n                            SLIDE_TEXT: () => ({\n                                height: \"70%\",\n                                bottom: \"15%\",\n                                backgroundColor: COLORS.primary0,\n                            }),\n                            \"%future added value\": () => unreachable(),\n                        }),\n                        width: `calc(${m.duration / duration * 100}% - 1px)`,\n                        minWidth: 6, // To make the sections not too small to click\n                        left: `${m.start / duration * 100}%`,\n                        borderRadius: 1,\n                        \"&:hover\": {\n                            backgroundColor: COLORS.primary2,\n                        },\n                    }}\n                >\n                    <Link\n                        to={sectionLink(m.start)}\n                        css={{ display: \"block\", height: \"100%\" }}\n                    />\n                </WithTooltip>\n            ))}\n        </div>\n    );\n};\n\ntype TextMatchTooltipWithMaybeImageProps = {\n    queryRef: PreloadedQuery<SearchSlidePreviewQuery>;\n    textMatch: SearchEventProps[\"textMatches\"][number];\n};\n\nconst TextMatchTooltipWithMaybeImage: React.FC<TextMatchTooltipWithMaybeImageProps> = ({\n    queryRef,\n    textMatch,\n}) => {\n    const data = usePreloadedQuery(slidePreviewQuery, queryRef);\n    const segments = data.eventById?.syncedData?.segments ?? [];\n\n    // Find the segment with its start time closest to the `start` of the text\n    // match, while still being smaller.\n    let currBestDiff = Infinity;\n    let currBest = undefined;\n    for (const segment of segments) {\n        // Relax the comparison a bit to be able to deal with rounding errors\n        // somewhere in the pipeline. Note that we still use the closest and\n        // segments are usually fairly long, so this is unlikely to result in\n        // any negative effects.\n        if (segment.startTime <= textMatch.start + 500) {\n            const diff = textMatch.start - segment.startTime;\n            if (diff < currBestDiff) {\n                currBestDiff = diff;\n                currBest = segment;\n            }\n        }\n    }\n\n    return <TextMatchTooltip previewImage={currBest?.uri} textMatch={textMatch} />;\n};\n\ntype TextMatchTooltipProps = {\n    previewImage?: string;\n    textMatch: SearchEventProps[\"textMatches\"][number];\n};\n\nconst TextMatchTooltip: React.FC<TextMatchTooltipProps> = ({ previewImage, textMatch }) => {\n    const startDuration = formatDuration(textMatch.start);\n    const endDuration = formatDuration(textMatch.start + textMatch.duration);\n\n    return <>\n        {/* Icon to show what kind of textMatch this is */}\n        <div css={{\n            position: \"absolute\",\n            fontSize: 20,\n            lineHeight: 1,\n            opacity: 0.2,\n            bottom: 0,\n            left: 4,\n        }}>\n            {match(textMatch.ty, {\n                CAPTION: () => <LuVolume2 />,\n                SLIDE_TEXT: () => <LetterText />,\n                \"%future added value\": unreachable,\n            })}\n        </div>\n\n        {previewImage && (\n            <img src={previewImage} css={{\n                maxWidth: \"100%\",\n                height: 160,\n                borderRadius: 4,\n            }}/>\n        )}\n        <div css={{\n            height: previewImage ? 38 : \"auto\",\n            display: \"flex\",\n            alignItems: \"center\",\n            justifyContent: \"center\",\n        }}>\n            <div css={{\n                padding: 1,\n                fontSize: 13,\n                lineHeight: 1.3,\n                ...ellipsisOverflowCss(2),\n                mark: highlightCss(COLORS.neutral90, COLORS.neutral15),\n            }}>\n                …{highlightText(textMatch.text, textMatch.highlights)}…\n            </div>\n        </div>\n        <div css={{ marginTop: 2 }}>\n            {`(${startDuration} – ${endDuration})`}\n        </div>\n    </>;\n};\n\n\ntype ThumbnailInfo = {\n    readonly audioOnly: boolean;\n    readonly isLive: boolean;\n    readonly thumbnail: string | null | undefined;\n}\ntype SearchSeriesProps = {\n    id: string;\n    title: string;\n    description: string | null;\n    thumbnails: readonly ThumbnailInfo[] | undefined;\n}\n\nconst SearchSeries: React.FC<SearchSeriesProps> = ({ id, title, description, thumbnails }) =>\n    <Item key={id} link={DirectSeriesRoute.url({ seriesId: id })}>\n        <WithIcon Icon={LuLibrary} iconSize={28} hideIconOnMobile>\n            <div css={{\n                color: COLORS.neutral90,\n                marginRight: \"clamp(12px, 4vw - 13px, 40px)\",\n                display: \"flex\",\n                flexDirection: \"column\",\n                minWidth: 0,\n            }}>\n                <h3 css={{\n                    color: COLORS.primary0,\n                    marginBottom: 6,\n                    fontSize: 17,\n                    lineHeight: 1.3,\n                    ...ellipsisOverflowCss(2),\n                }}>{title}</h3>\n                {description && <SmallDescription\n                    text={description}\n                    lines={3}\n                />}\n            </div>\n        </WithIcon>\n        <Link to={DirectSeriesRoute.url({ seriesId: id })}>\n            <ThumbnailStack {...{ thumbnails, title }} />\n        </Link>\n    </Item>\n;\n\ntype ThumbnailStackProps = Pick<SearchSeriesProps, \"title\" | \"thumbnails\">\n\nconst ThumbnailStack: React.FC<ThumbnailStackProps> = ({ thumbnails, title }) => (\n    <div css={{\n        ...thumbnailCss,\n        outline: 0,\n        display: \"grid\",\n        gridAutoColumns: \"1fr\",\n        \"> div\": {\n            outline: `1px solid ${COLORS.neutral10}`,\n            borderRadius: 8,\n        },\n        \"> div:not(:last-child)\": {\n            boxShadow: \"3px -2px 6px rgba(0, 0, 0, 40%)\",\n        },\n        \"> div:nth-child(1)\": {\n            zIndex: 3,\n            gridColumn: \"1 / span 10\",\n            gridRow: \"3 / span 10\",\n        },\n        \"> div:nth-child(2)\": {\n            zIndex: 2,\n            gridColumn: \"2 / span 10\",\n            gridRow: \"2 / span 10\",\n        },\n        \"> div:nth-child(3)\": {\n            zIndex: 1,\n            gridColumn: \"3 / span 10\",\n            gridRow: \"1 / span 10\",\n        },\n    }}>\n        {thumbnails?.map((info, idx) => <div key={idx}>\n            <SeriesThumbnail {...{ info, title }} />\n        </div>)}\n    </div>\n);\n\ntype SeriesThumbnailProps = {\n    info: ThumbnailInfo;\n    title: string;\n}\n\nconst SeriesThumbnail: React.FC<SeriesThumbnailProps> = ({ info, title }) => {\n    const { t } = useTranslation();\n    const isDark = useColorScheme().scheme === \"dark\";\n\n    let inner;\n    if (info.thumbnail != null) {\n        // We have a proper thumbnail.\n        inner = <ThumbnailImg\n            src={info.thumbnail}\n            alt={t(\"series.entry-of-series-thumbnail\", { series: title })}\n        />;\n    } else {\n        inner = <ThumbnailReplacement audioOnly={info.audioOnly} {...{ isDark }} />;\n    }\n\n    const overlay = <ThumbnailOverlay backgroundColor=\"rgba(200, 0, 0, 0.9)\">\n        <LuRadio css={{ fontSize: 19, strokeWidth: 1.4 }} />\n        {t(\"video.live\")}\n    </ThumbnailOverlay>;\n\n    return <ThumbnailOverlayContainer>\n        {inner}\n        {info.isLive && overlay}\n    </ThumbnailOverlayContainer>;\n};\n\ntype SearchRealmProps = {\n    id: string;\n    name: string | null;\n    ancestorNames: readonly (string | null | undefined)[];\n    fullPath: string;\n};\n\nconst SearchRealm: React.FC<SearchRealmProps> = ({ id, name, ancestorNames, fullPath }) => (\n    <Item key={id} link={fullPath}>\n        <WithIcon Icon={LuLayout}>\n            <div>\n                <BreadcrumbsContainer>\n                    {ancestorNames.map((name, i) => <li key={i}>\n                        {name ?? <MissingRealmName />}\n                        <BreadcrumbSeparator />\n                    </li>)}\n                </BreadcrumbsContainer>\n                <h3 css={{ color: COLORS.primary0 }}>{name ?? <MissingRealmName />}</h3>\n            </div>\n        </WithIcon>\n    </Item>\n);\n\ntype ItemProps = {\n    link: string;\n    children: ReactNode;\n};\n\nconst Item: React.FC<ItemProps> = ({ link, children }) => (\n    <li css={{\n        position: \"relative\",\n        display: \"flex\",\n        borderRadius: 16,\n        border: `1px solid ${COLORS.neutral15}`,\n        margin: 16,\n        padding: 8,\n        gap: 8,\n        textDecoration: \"none\",\n        \"&:hover, &:focus\": {\n            backgroundColor: COLORS.neutral10,\n        },\n        [screenWidthAtMost(BREAKPOINT_MEDIUM)]: {\n            flexDirection: \"column-reverse\",\n            gap: 12,\n            margin: \"16px 0\",\n            \"& > *:last-child\": {\n                width: \"100%\",\n            },\n        },\n    }}>\n        <Link to={link} css={{\n            position: \"absolute\",\n            inset: 0,\n            borderRadius: 16,\n        }}/>\n        {children}\n    </li>\n);\n\n// If a user initiated the search in Tobira (i.e. neither coming from an\n// external link nor using the browser bar to manually visit the /~search route),\n// we can redirect to the previous page. Otherwise we redirect to Tobira's homepage.\nexport const handleNavigation = ((router: RouterControl, ref?: RefObject<HTMLInputElement>) => {\n    if (ref?.current) {\n        // Why is this necessary? When a user reloads the search page and then navigates\n        // away within Tobira, the search input isn't cleared like it would be usually.\n        // So it needs to be done manually.\n        ref.current.value = \"\";\n    }\n    if (router.internalOrigin) {\n        window.history.back();\n    } else {\n        router.goto(\"/\");\n    }\n});\n\n/**\n * Slices a string with byte indices. Never cuts into UTF-8 chars, but\n * arbitrarily decides in what output to place them.\n */\nconst byteSlice = (s: string, start: number, len: number): readonly [string, string, string] => {\n    const isCharBoundary = (b: Uint8Array, idx: number): boolean => {\n        if (idx === 0 || idx === b.byteLength) {\n            return true;\n        }\n        const v = b.at(idx);\n        if (v === undefined) {\n            return false;\n        }\n\n        // UTF-8 chars have either the first bit 0 or the first two bits 1.\n        return v < 0x80 || v >= 0xC0;\n    };\n\n    const bytes = new TextEncoder().encode(s);\n    const decoder = new TextDecoder(\"utf-8\");\n\n    // Round indices to avoid cutting into UTF8 chars. The loop only needs to\n    // execute 3 times as every 4 bytes there is always a char boundary.\n    let end = start + len;\n    for (let i = 0; i < 3; i += 1) {\n        if (!isCharBoundary(bytes, start)) {\n            start += 1;\n        }\n        if (!isCharBoundary(bytes, end)) {\n            end += 1;\n        }\n    }\n\n    return [\n        decoder.decode(bytes.slice(0, start)),\n        decoder.decode(bytes.slice(start, end)),\n        decoder.decode(bytes.slice(end)),\n    ] as const;\n};\n\nconst highlightText = (\n    s: string,\n    spans: readonly { start: number; len: number }[],\n) => {\n    const textParts = [];\n    let remainingText = s;\n    let offset = 0;\n    for (const span of spans) {\n        const highlightStart = span.start - offset;\n        const [prefix, middle, rest]\n            = byteSlice(remainingText, highlightStart, span.len);\n\n        textParts.push(<span key={offset + 1}>{prefix}</span>);\n        textParts.push(\n            <mark key={offset}>{middle}</mark>\n        );\n        remainingText = rest;\n        offset = span.start + span.len;\n    }\n    textParts.push(remainingText);\n    return textParts;\n};\n\nconst highlightCss = (color: string, backgroundColor: string) => ({\n    color,\n    backgroundColor,\n    borderBottom: \"2px solid var(--highlight-color)\",\n    borderRadius: 2,\n});\n","import { graphql, useFragment } from \"react-relay\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { loadQuery } from \"../relay\";\nimport { makeRoute } from \"../rauta\";\nimport { SeriesBlockFromSeries } from \"../ui/Blocks/Series\";\nimport { RootLoader } from \"../layout/Root\";\nimport { Nav } from \"../layout/Navigation\";\nimport { PageTitle } from \"../layout/header/ui\";\nimport { WaitingPage } from \"../ui/Waiting\";\nimport { isSynced, keyOfId, seriesId } from \"../util\";\n\nimport { NotFound } from \"./NotFound\";\nimport { SeriesByOpencastIdQuery } from \"./__generated__/SeriesByOpencastIdQuery.graphql\";\nimport { b64regex } from \"./util\";\nimport { SeriesByIdQuery } from \"./__generated__/SeriesByIdQuery.graphql\";\nimport { SeriesRouteData$key } from \"./__generated__/SeriesRouteData.graphql\";\nimport { Breadcrumbs } from \"../ui/Breadcrumbs\";\n\n\nexport const DirectSeriesOCRoute = makeRoute({\n    url: ({ ocID }: { ocID: string }) => `/!s/:${ocID}`,\n    match: url => {\n        const regex = new RegExp(\"^/!s/:([^/]+)$\", \"u\");\n        const matches = regex.exec(url.pathname);\n\n        if (!matches) {\n            return null;\n        }\n\n\n        const opencastId = decodeURIComponent(matches[1]);\n        const query = graphql`\n            query SeriesByOpencastIdQuery($id: String!) {\n                ... UserData\n                series: seriesByOpencastId(id: $id) { ...SeriesRouteData }\n                rootRealm { ... NavigationData }\n            }\n        `;\n        const queryRef = loadQuery<SeriesByOpencastIdQuery>(query, { id: opencastId });\n\n\n        return {\n            render: () => <RootLoader\n                {...{ query, queryRef }}\n                noindex\n                nav={data => <Nav fragRef={data.rootRealm} />}\n                render={result => <SeriesPage seriesFrag={result.series} />}\n            />,\n            dispose: () => queryRef.dispose(),\n        };\n    },\n});\n\nexport const DirectSeriesRoute = makeRoute({\n    url: ({ seriesId }: { seriesId: string }) => `/!s/${keyOfId(seriesId)}`,\n    match: url => {\n        const regex = new RegExp(`^/!s/(${b64regex}+)$`, \"u\");\n        const matches = regex.exec(url.pathname);\n\n        if (!matches) {\n            return null;\n        }\n\n\n        const id = decodeURIComponent(matches[1]);\n        const query = graphql`\n            query SeriesByIdQuery($id: ID!) {\n                ... UserData\n                series: seriesById(id: $id) { ...SeriesRouteData }\n                rootRealm { ... NavigationData }\n            }\n        `;\n        const queryRef = loadQuery<SeriesByIdQuery>(query, { id: seriesId(id) });\n\n\n        return {\n            render: () => <RootLoader\n                {...{ query, queryRef }}\n                noindex\n                nav={data => <Nav fragRef={data.rootRealm} />}\n                render={result => <SeriesPage seriesFrag={result.series} />}\n            />,\n            dispose: () => queryRef.dispose(),\n        };\n    },\n});\n\nconst fragment = graphql`\n    fragment SeriesRouteData on Series {\n        title\n        syncedData {\n            description\n        }\n        ... SeriesBlockSeriesData\n    }\n`;\n\ntype SeriesPageProps = {\n    seriesFrag?: SeriesRouteData$key | null;\n};\n\nconst SeriesPage: React.FC<SeriesPageProps> = ({ seriesFrag }) => {\n    const { t } = useTranslation();\n    const series = useFragment(fragment, seriesFrag ?? null);\n\n    if (!series) {\n        return <NotFound kind=\"series\" />;\n    }\n\n    if (!isSynced(series)) {\n        return <WaitingPage type=\"series\" />;\n    }\n\n    return <div css={{ display: \"flex\", flexDirection: \"column\" }}>\n        <Breadcrumbs path={[]} tail={series.title} />\n        <PageTitle title={series.title} />\n        <p css={{ maxWidth: \"90ch\" }}>{series.syncedData.description}</p>\n        <div css={{ marginTop: 12 }}>\n            <SeriesBlockFromSeries\n                title={t(\"videolist-block.videos.heading\")}\n                basePath=\"/!v\"\n                fragRef={series}\n            />\n        </div>\n    </div>;\n};\n","import React, { MutableRefObject, ReactNode, useEffect, useId, useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { graphql, useFragment } from \"react-relay\";\nimport { keyframes } from \"@emotion/react\";\nimport { Controller, useController, useForm } from \"react-hook-form\";\nimport { LuCheckCircle, LuUpload, LuInfo } from \"react-icons/lu\";\nimport { WithTooltip, assertNever, bug, unreachable } from \"@opencast/appkit\";\n\nimport { RootLoader } from \"../layout/Root\";\nimport { loadQuery } from \"../relay\";\nimport { UploadQuery } from \"./__generated__/UploadQuery.graphql\";\nimport { makeRoute } from \"../rauta\";\nimport { ErrorDisplay, errorDisplayInfo } from \"../util/err\";\nimport { useNavBlocker } from \"./util\";\nimport CONFIG from \"../config\";\nimport { Button, boxError, ErrorBox, Card } from \"@opencast/appkit\";\nimport { LinkButton } from \"../ui/LinkButton\";\nimport { Form } from \"../ui/Form\";\nimport { Input, TextArea } from \"../ui/Input\";\nimport { isRealUser, User, useUser } from \"../User\";\nimport { currentRef, useRefState } from \"../util\";\nimport { FieldIsRequiredNote, InputContainer, TitleLabel } from \"../ui/metadata\";\nimport { PageTitle } from \"../layout/header/ui\";\nimport { useRouter } from \"../router\";\nimport { getJwt } from \"../relay/auth\";\nimport { VideoListSelector } from \"../ui/SearchableSelect\";\nimport { Breadcrumbs } from \"../ui/Breadcrumbs\";\nimport { ManageNav, ManageRoute } from \"./manage\";\nimport { COLORS } from \"../color\";\nimport { COMMON_ROLES } from \"../util/roles\";\nimport { Acl, AclSelector, knownRolesFragment } from \"../ui/Access\";\nimport {\n    AccessKnownRolesData$data,\n    AccessKnownRolesData$key,\n} from \"../ui/__generated__/AccessKnownRolesData.graphql\";\nimport { READ_WRITE_ACTIONS } from \"../util/permissionLevels\";\n\n\nconst PATH = \"/~manage/upload\" as const;\nexport const UploadRoute = makeRoute({\n    url: PATH,\n    match: url => {\n        if (url.pathname !== PATH) {\n            return null;\n        }\n\n        const queryRef = loadQuery<UploadQuery>(query, {});\n        return {\n            render: () => <RootLoader\n                {...{ query, queryRef }}\n                noindex\n                nav={() => <ManageNav active={PATH} />}\n                render={data => <Upload knownRolesRef={data} />}\n            />,\n            dispose: () => queryRef.dispose(),\n        };\n    },\n});\n\nconst query = graphql`\n    query UploadQuery {\n        ... UserData\n        ... AccessKnownRolesData\n    }\n`;\n\n\ntype Metadata = {\n    title: string;\n    description: string;\n    series?: string;\n    acl: Acl;\n};\n\ntype Props = {\n    knownRolesRef: AccessKnownRolesData$key;\n};\n\nconst Upload: React.FC<Props> = ({ knownRolesRef }) => {\n    const { t } = useTranslation();\n    const knownRoles = useFragment(knownRolesFragment, knownRolesRef);\n\n    return (\n        <div css={{\n            margin: \"0 auto\",\n            height: \"100%\",\n            display: \"flex\",\n            flexDirection: \"column\",\n        }}>\n            <Breadcrumbs\n                path={[{ label: t(\"user.manage-content\"), link: ManageRoute.url }]}\n                tail={t(\"upload.title\")}\n            />\n            <PageTitle title={t(\"upload.title\")} />\n            <UploadMain {...{ knownRoles }} />\n        </div>\n    );\n};\n\n\ntype CancelButtonProps = {\n    abortController: MutableRefObject<AbortController>;\n};\n\nconst CancelButton: React.FC<CancelButtonProps> = ({ abortController }) => {\n    const { t } = useTranslation();\n\n    return (\n        <div css={{\n            margin: \"8px\",\n            display: \"flex\",\n            alignItems: \"center\",\n            flexDirection: \"column\",\n        }}>\n            <Button\n                kind=\"danger\"\n                onClick={() => abortController.current.abort()}\n            >{t(\"upload.cancel\")}</Button>\n        </div>\n    );\n};\n\ntype UploadMainProps = {\n    knownRoles: AccessKnownRolesData$data;\n};\n\nconst UploadMain: React.FC<UploadMainProps> = ({ knownRoles }) => {\n    // TODO: on first mount, send an `ocRequest` to `info/me.json` and make sure\n    // that connection works. That way we can show an error very early, before\n    // the user selected a file.\n\n    const { t } = useTranslation();\n    const router = useRouter();\n\n    const [files, setFiles] = useState<FileList | null>(null);\n    const [uploadState, setUploadState] = useRefState<UploadState | null>(null);\n    const [metadata, setMetadata] = useRefState<Metadata | null>(null);\n\n    const progressHistory = useRef<ProgressHistory>([]);\n    const abortController = useRef(new AbortController());\n\n    router.listenAtNav(() => {\n        const state = uploadState.current?.state;\n        if (state && ![\"done\", \"cancelled\", \"error\"].includes(state)) {\n            abortController.current.abort();\n        }\n    });\n\n    useNavBlocker(() => !!uploadState.current\n        && ![\"done\", \"cancelled\"].includes(uploadState.current.state));\n\n    // Get user info\n    const user = useUser();\n    if (!isRealUser(user) || !user.canUpload) {\n        // TODO: if not logged in, suggest doing so\n        return <div css={{ textAlign: \"center\" }}>\n            <ErrorBox>{t(\"upload.not-authorized\")}</ErrorBox>\n        </div>;\n    }\n\n    /** Called when the files are selected. Starts uploading those files. */\n    const onFileSelect = async (files: FileList) => {\n        setFiles(files);\n\n        const onProgressCallback = (progress: Progress): void => {\n            if (uploadState.current === null) {\n                return unreachable(\"no upload state after calling `startUpload`\");\n            }\n            onProgress(\n                progress,\n                progressHistory.current,\n                uploadState.current,\n                setUploadState,\n                abortController,\n            );\n        };\n        const onDone = (mediaPackage: string) => {\n            if (metadata.current === null) {\n                setUploadState({ state: \"waiting-for-metadata\", mediaPackage, abortController });\n            } else {\n                finishUpload(mediaPackage, metadata.current, user, setUploadState);\n            }\n        };\n        startUpload(files, setUploadState, onProgressCallback, onDone, abortController);\n    };\n\n    if (files === null) {\n        return <FileSelect onSelect={onFileSelect} />;\n    } else if (uploadState.current === null) {\n        // This never happens as, when files are selected, the upload is\n        // instantly started and the state is set to `starting`. Check the only\n        // use of `setFiles` above and notice how the upload state is set\n        // immediately afterwards.\n        return unreachable(\"upload state is null, but there are files\");\n    } else if (uploadState.current.state === \"done\") {\n        return <div css={{\n            display: \"flex\",\n            flexDirection: \"column\",\n            alignItems: \"center\",\n            marginTop: \"max(16px, 10vh - 50px)\",\n            gap: 32,\n        }}>\n            <LuCheckCircle css={{ fontSize: 64, color: COLORS.happy0 }} />\n            {t(\"upload.finished\")}\n        </div>;\n    } else {\n        const onMetadataSave = (metadata: Metadata): void => {\n            if (uploadState.current === null) {\n                return bug(\"uploadState === null on metadata save\");\n            }\n\n            setMetadata(metadata);\n            if (uploadState.current.state === \"waiting-for-metadata\") {\n                // The tracks have already been uploaded, so we can finish the upload now.\n                const mediaPackage = uploadState.current.mediaPackage;\n                finishUpload(mediaPackage, metadata, user, setUploadState);\n            }\n        };\n        const hasUploadError = uploadState.current.state === \"error\";\n\n        return (\n            <div css={{\n                display: \"flex\",\n                flexDirection: \"column\",\n                alignItems: \"stretch\",\n                gap: 32,\n                width: \"100%\",\n                maxWidth: 800,\n                margin: \"0 auto\",\n            }}>\n                <UploadState state={uploadState.current} />\n                <div>\n                    {/* TODO: Show something after saving metadata.\n                        - Just saying \"saved\" is kind of misleading because the data is only local.\n                        - Maybe just show the form, but disable all inputs?\n                        - ...\n                    */}\n                    {uploadState.current.state !== \"cancelled\" && (\n                        !metadata.current\n                            ? <MetaDataEdit\n                                onSave={onMetadataSave}\n                                disabled={hasUploadError}\n                                knownRoles={knownRoles}\n                            />\n                            : !hasUploadError && (\n                                <div css={{ margin: \"0 auto\", maxWidth: 500 }}>\n                                    <Card kind=\"info\">{t(\"upload.still-uploading\")}</Card>\n                                </div>\n                            )\n                    )}\n                </div>\n            </div>\n        );\n    }\n};\n\ntype ProgressHistory = {\n    timestamp: number;\n    progress: Progress;\n}[];\n\n/**\n * Called regularly with the current progress and calculates the time estimate.\n * This is done with a simple sliding average over the last few data points,\n * that is assumed to be the speed for the rest of the upload.\n */\nconst onProgress = (\n    progress: Progress,\n    history: ProgressHistory,\n    uploadState: UploadState,\n    setUploadState: (state: UploadState) => void,\n    abortController: MutableRefObject<AbortController>,\n) => {\n    const now = Date.now();\n\n    // Add progress data point to history.\n    history.push({ timestamp: now, progress });\n\n    // The size of the sliding window in milliseconds.\n    const WINDOW_SIZE_MS = 5000;\n    // The size of the sliding window in number of data points.\n    const WINDOW_SIZE_DATA_POINTS = 6;\n    // The number of datapoints below which we won't show a time estimate.\n    const MINIMUM_DATA_POINT_COUNT = 4;\n\n    // Find the first element within the window. We use the larger window of the\n    // two windows created by the two constraints (time and number of\n    // datapoints).\n    const windowStart = Math.min(\n        history.findIndex(p => (now - p.timestamp) < WINDOW_SIZE_MS),\n        Math.max(0, history.length - WINDOW_SIZE_DATA_POINTS),\n    );\n\n    // Remove all elements outside the window.\n    history.splice(0, windowStart);\n\n    let secondsLeft = null;\n    if (history.length >= MINIMUM_DATA_POINT_COUNT) {\n        // Calculate the remaining time based on the average speed within the window.\n        const windowLength = now - history[0].timestamp;\n        const progressInWindow = progress - history[0].progress;\n        const progressPerSecond = (progressInWindow / windowLength) * 1000;\n        const progressLeft = 1 - progress;\n        secondsLeft = Math.max(0, Math.round(progressLeft / progressPerSecond));\n    }\n\n    // Update state if anything changed. We actually check for equality here to\n    // avoid useless redraws.\n    const someChange = uploadState.state !== \"uploading-tracks\"\n        || uploadState.secondsLeft !== secondsLeft\n        || uploadState.progress !== progress;\n    if (someChange) {\n        setUploadState({ state: \"uploading-tracks\", progress, secondsLeft, abortController });\n    }\n};\n\nconst UploadErrorBox: React.FC<{ error: unknown }> = ({ error }) => {\n    // Log error once.\n    // eslint-disable-next-line no-console\n    useEffect(() => console.error(\"Error uploading: \", error), [error]);\n\n    const { t, i18n } = useTranslation();\n    let info;\n    if (error instanceof OcNetworkError) {\n        info = {\n            causes: new Set([t(\"upload.errors.opencast-unreachable\")]),\n            // Opencast could be down, but it's confusing setting this to true\n            probablyOurFault: false,\n            potentiallyInternetProblem: true,\n        };\n    } else if (error instanceof OcServerError) {\n        info = {\n            causes: new Set([t(\"upload.errors.opencast-server-error\")]),\n            probablyOurFault: true,\n            potentiallyInternetProblem: false,\n        };\n    } else if (error instanceof JwtInvalid) {\n        info = {\n            causes: new Set([t(\"upload.errors.jwt-invalid\")]),\n            probablyOurFault: true,\n            potentiallyInternetProblem: false,\n        };\n    } else {\n        info = errorDisplayInfo(error, i18n);\n    }\n\n\n    return (\n        <div css={{ margin: \"0 auto\" }}>\n            <Card kind=\"error\">\n                <ErrorDisplay info={info} failedAction={t(\"upload.errors.failed-to-upload\")} />\n            </Card>\n        </div>\n    );\n};\n\n\n\n// ==============================================================================================\n// ===== Sub-components\n// ==============================================================================================\n\nconst isValidForUpload = (file: File): boolean =>\n    file.type.startsWith(\"video/\") || file.type.startsWith(\"audio/\");\n\ntype FileSelectProps = {\n    onSelect: (files: FileList) => void;\n};\n\n/** First state of the uploader: asking the user to select video files */\nconst FileSelect: React.FC<FileSelectProps> = ({ onSelect }) => {\n    const { t } = useTranslation();\n    const fileInput = useRef<HTMLInputElement>(null);\n\n    const [error, setError] = useState<string | null>(null);\n    const [dragCounter, setDragCounter] = useState(0);\n    const isDragging = dragCounter > 0;\n\n    const onSelectRaw = (files: FileList) => {\n        if (files.length === 0) {\n            setError(t(\"upload.not-a-file\"));\n        } else if (files.length > 1) {\n            setError(t(\"upload.too-many-files\"));\n        } else if (!Array.from(files).every(isValidForUpload)) {\n            setError(t(\"upload.not-video-or-audio\"));\n        } else {\n            onSelect(files);\n        }\n    };\n\n    return (\n        <div\n            onDragEnter={e => {\n                setDragCounter(old => old + 1);\n                e.preventDefault();\n            }}\n            onDragOver={e => e.preventDefault()}\n            onDragLeave={() => setDragCounter(old => old - 1)}\n            onDrop={e => {\n                onSelectRaw(e.dataTransfer.files);\n                setDragCounter(0);\n                e.preventDefault();\n            }}\n            css={{\n                width: \"100%\",\n                height: \"100%\",\n                border: \"2.5px dashed\",\n                borderRadius: 10,\n                display: \"flex\",\n                padding: 8,\n                flexDirection: \"column\",\n                gap: 16,\n                alignItems: \"center\",\n                justifyContent: \"center\",\n                backgroundColor: isDragging ? COLORS.neutral10 : \"none\",\n                borderColor: isDragging ? COLORS.primary0 : COLORS.neutral25,\n                \"--transition-length\": \"80ms\",\n                transition: \"background-color var(--transition-length), \"\n                    + \"border-color var(--transition-length)\",\n            }}\n        >\n            {/* Big icon */}\n            <div css={{\n                position: \"relative\",\n                lineHeight: 1,\n                fontSize: 64,\n                color: COLORS.neutral60,\n            }}>\n                {/* This depends on the SVG elements used in the icon. Technically, the icon pack\n                    does not guarantee that and could change it at any time. But we decided it's\n                    fine in this case. It is unlikely to change and if it breaks, nothing bad could\n                    happen. Only the animation is broken. */}\n                <LuUpload css={{\n                    position: \"absolute\",\n                    top: isDragging ? 8 : 0,\n                    transition: \"top var(--transition-length)\",\n                    \"& > path\": { display: \"none\" },\n                }} />\n                <LuUpload css={{ \"& > polyline, & > line\": { display: \"none\" } }} />\n            </div>\n\n            {t(\"upload.drop-to-upload\")}\n\n            {/* \"Select files\" button */}\n            <div css={{ marginTop: 16 }}>\n                <Button\n                    kind=\"call-to-action\"\n                    onClick={() => currentRef(fileInput).click()}\n                >{t(\"upload.select-files\")}</Button>\n                <input\n                    ref={fileInput}\n                    onChange={e => {\n                        if (e.target.files) {\n                            onSelectRaw(e.target.files);\n                        }\n                    }}\n                    type=\"file\"\n                    accept=\"video/*, audio/*\"\n                    aria-hidden=\"true\"\n                    css={{ display: \"none\" }}\n                />\n            </div>\n\n            {boxError(error)}\n        </div>\n    );\n};\n\n/** Number between 0 and 1 */\ntype Progress = number;\n\n/** State of a started upload */\ntype UploadState =\n    // Starting the upload: creating a new media package.\n    { state: \"starting\" }\n    // Uploading the actual tracks, usually takes by far the longest.\n    | { state: \"uploading-tracks\"; progress: Progress; secondsLeft: number | null;\n        abortController: MutableRefObject<AbortController>; }\n    // Tracks have been uploaded, but the user still has to save the metadata to finish the upload.\n    | { state: \"waiting-for-metadata\"; mediaPackage: string;\n        abortController: MutableRefObject<AbortController>; }\n    // After the tracks have been uploaded, just adding metadata, ACL and then ingesting.\n    | { state: \"finishing\" }\n    // The upload is completely done\n    | { state: \"done\" }\n    // The upload was cancelled\n    | { state: \"cancelled\" }\n    // An error occurred during the upload\n    | { state: \"error\"; error: unknown };\n\n/** State of an upload that is not yet finished */\ntype NonFinishedUploadState = Exclude<UploadState, { state: \"done\" }>;\n\n/** Shows the current state of the upload */\nconst UploadState: React.FC<{ state: NonFinishedUploadState }> = ({ state }) => {\n    const { t, i18n } = useTranslation();\n\n    if (state.state === \"starting\") {\n        return <BarWithText state=\"progressing\">\n            <span>{t(\"upload.starting\")}</span>\n        </BarWithText>;\n    } else if (state.state === \"uploading-tracks\") {\n        const abortController = state.abortController;\n        const progress = Math.min(1, state.progress);\n        const roundedPercent = (progress * 100).toLocaleString(i18n.language, {\n            minimumFractionDigits: 1,\n            maximumFractionDigits: 1,\n        });\n\n        // Nicely format the remaining time.\n        const secondsLeft = state.secondsLeft;\n        let prettyTime;\n        if (secondsLeft === null) {\n            prettyTime = null;\n        } else if (secondsLeft < 4) {\n            prettyTime = t(\"upload.time-estimate.a-few-seconds\");\n        } else if (secondsLeft < 45) {\n            prettyTime = `${secondsLeft} ${t(\"upload.time-estimate.seconds\")}`;\n        } else if (secondsLeft < 90) {\n            prettyTime = t(\"upload.time-estimate.a-minute\");\n        } else if (secondsLeft < 45 * 60) {\n            prettyTime = `${Math.round(secondsLeft / 60)} ${t(\"upload.time-estimate.minutes\")}`;\n        } else if (secondsLeft < 90 * 60) {\n            prettyTime = t(\"upload.time-estimate.an-hour\");\n        } else if (secondsLeft < 24 * 60 * 60) {\n            const hours = Math.round(secondsLeft / (60 * 60));\n            prettyTime = `${hours} ${t(\"upload.time-estimate.hours\")}`;\n        } else {\n            prettyTime = null;\n        }\n\n        return <>\n            <BarWithText state={progress}>\n                <span>{roundedPercent}%</span>\n                <span>\n                    {prettyTime && t(\"upload.time-estimate.time-left\", { time: prettyTime })}\n                </span>\n            </BarWithText>\n            <CancelButton abortController={abortController} />\n        </>;\n    } else if (state.state === \"waiting-for-metadata\") {\n        const abortController = state.abortController;\n        return <>\n            <BarWithText state=\"waiting\">\n                <span>{t(\"upload.waiting-for-metadata\")}</span>\n            </BarWithText>\n            <CancelButton abortController={abortController} />\n        </>;\n    } else if (state.state === \"finishing\") {\n        return <BarWithText state=\"progressing\">\n            <span>{t(\"upload.finishing\")}</span>\n        </BarWithText>;\n    } else if (state.state === \"cancelled\") {\n        return <div css={{\n            marginTop: \"1rem\",\n            display: \"flex\",\n            flexDirection: \"column\",\n            alignItems: \"center\",\n            \"& > :first-child\": { marginBottom: \"2rem\" },\n        }}>\n            <span>{t(\"upload.upload-cancelled\")}</span>\n            <div>\n                <LinkButton kind=\"call-to-action\" to={UploadRoute.url}>\n                    {t(\"upload.reselect\")}\n                </LinkButton>\n            </div>\n        </div>;\n    } else if (state.state === \"error\") {\n        return <UploadErrorBox error={state.error} />;\n    } else {\n        return assertNever(state);\n    }\n};\n\ntype BarWithTextProps = {\n    state: ProgressBarProps[\"state\"];\n    children: ReactNode;\n};\n\n/** Helper component for `UploadState` */\nconst BarWithText: React.FC<BarWithTextProps> = ({ state, children }) => <>\n    <div>\n        <div css={{\n            display: \"flex\",\n            justifyContent: \"space-between\",\n            padding: \"0 4px\",\n            marginBottom: 8,\n            \"& > *:only-child\": { margin: \"0 auto\" },\n        }}>{children}</div>\n        <ProgressBar state={state} />\n    </div>\n</>;\n\ntype ProgressBarProps = {\n    /** Either a known progress, or an unknown progress or waiting for something */\n    state: Progress | \"progressing\" | \"waiting\";\n};\n\n/** A progress bar that can show different states */\nconst ProgressBar: React.FC<ProgressBarProps> = ({ state }) => {\n    // Helper function to create a moving stripe background.\n    const animatedStripes = (\n        angle: number,\n        color0: string,\n        color1: string,\n        duration: number,\n    ) => {\n        const size = 30;\n        const amountColor0 = 0.4;\n\n        // The input size is the horizontal period basically. But the CSS\n        // gradient expect the period in direction of the pattern, so we have\n        // to do a little math.\n        const realSize = size * Math.sin(Math.abs(angle) / 180 * Math.PI);\n\n        return {\n            background: \"repeating-linear-gradient(\"\n                + `${angle}deg,`\n                + `${color0},`\n                + `${color0} ${realSize * amountColor0}px,`\n                + `${color1} ${realSize * amountColor0}px,`\n                + `${color1} ${realSize}px)`,\n            backgroundSize: `calc(100% + ${size}px) 100%`,\n            animation: `${duration}s linear infinite none ${keyframes({\n                \"0%\": { backgroundPositionX: -30 },\n                \"100%\": { backgroundPositionX: 0 },\n            })}`,\n        };\n    };\n\n    const shared = {\n        width: \"100%\",\n        height: 12,\n        borderRadius: 6,\n        overflow: \"hidden\",\n    };\n\n    if (state === \"progressing\") {\n        return <div css={{\n            ...shared,\n            ...animatedStripes(-45, COLORS.happy2, COLORS.happy0, 1.5),\n        }} />;\n    } else if (state === \"waiting\") {\n        return <div css={{\n            ...shared,\n            ...animatedStripes(45, COLORS.neutral60, COLORS.neutral40, 4),\n        }} />;\n    } else {\n        return (\n            <div css={{\n                ...shared,\n                backgroundColor: COLORS.neutral15,\n            }}>\n                <div css={{\n                    height: \"100%\",\n                    transition: \"width 200ms\",\n                    width: `${state * 100}%`,\n                    backgroundColor: COLORS.happy0,\n                }} />\n            </div>\n        );\n    }\n};\n\n\ntype MetaDataEditProps = {\n    onSave: (metadata: Metadata) => void;\n    disabled: boolean;\n    knownRoles: AccessKnownRolesData$data;\n};\n\n/** Form that lets the user set metadata about the video */\nconst MetaDataEdit: React.FC<MetaDataEditProps> = ({ onSave, disabled, knownRoles }) => {\n    const { t } = useTranslation();\n    const user = useUser();\n    if (!isRealUser(user)) {\n        return unreachable();\n    }\n\n    const titleFieldId = useId();\n    const descriptionFieldId = useId();\n    const seriesFieldId = useId();\n\n    const defaultAcl: Acl = new Map([\n        [user.userRole, {\n            actions: new Set([\"read\", \"write\"]),\n            info: {\n                label: { \"_\": user.displayName },\n                implies: null,\n                large: false,\n            },\n        }],\n        [COMMON_ROLES.ANONYMOUS, {\n            actions: new Set([\"read\"]),\n            info: null,\n        }],\n    ]);\n\n    const { register, handleSubmit, control, formState: { errors } } = useForm<Metadata>({\n        mode: \"onChange\",\n        defaultValues: { acl: defaultAcl },\n    });\n\n    const { field: seriesField } = useController({\n        name: \"series\",\n        control,\n        rules: {\n            required: CONFIG.upload.requireSeries ? t(\"upload.errors.field-required\") : false,\n        },\n    });\n\n    const onSubmit = handleSubmit(data => onSave(data));\n\n    // We only allow submitting the form on clicking the button below so that\n    // pressing 'enter' inside inputs doesn't lead to submit the form too\n    // early.\n    return (\n        <Form\n            noValidate\n            onSubmit={e => e.preventDefault()}\n            css={{\n                margin: \"32px 2px\",\n                \"label\": {\n                    color: \"var(--color-neutral90)\",\n                },\n            }}\n        >\n            {/* Title */}\n            <InputContainer>\n                <TitleLabel htmlFor={titleFieldId} />\n                <Input\n                    id={titleFieldId}\n                    required\n                    error={!!errors.title}\n                    css={{ width: 400, maxWidth: \"100%\" }}\n                    autoFocus\n                    {...register(\"title\", {\n                        required: t(\"upload.errors.field-required\") as string,\n                    })}\n                />\n                {boxError(errors.title?.message)}\n            </InputContainer>\n\n            {/* Description */}\n            <InputContainer>\n                <label htmlFor={descriptionFieldId}>{t(\"upload.metadata.description\")}</label>\n                <TextArea id={descriptionFieldId} {...register(\"description\")} />\n            </InputContainer>\n\n            {/* Series */}\n            <InputContainer>\n                <label htmlFor={seriesFieldId}>\n                    {t(\"series.series\")}\n                    {CONFIG.upload.requireSeries && <FieldIsRequiredNote />}\n                    <WithTooltip\n                        tooltip={t(\"upload.metadata.note-writable-series\")}\n                        tooltipCss={{ width: 400 }}\n                        css={{\n                            display: \"inline-block\",\n                            verticalAlign: \"middle\",\n                            fontWeight: \"normal\",\n                            marginLeft: 8,\n                        }}\n                    >\n                        <span><LuInfo tabIndex={0} /></span>\n                    </WithTooltip>\n                </label>\n                <VideoListSelector\n                    type=\"series\"\n                    inputId={seriesFieldId}\n                    writableOnly\n                    menuPlacement=\"top\"\n                    onChange={data => seriesField.onChange(data?.opencastId)}\n                    onBlur={seriesField.onBlur}\n                    required={CONFIG.upload.requireSeries}\n                />\n                {boxError(errors.series?.message)}\n            </InputContainer>\n\n            {/* ACL */}\n            <InputContainer>\n                <h2 css={{\n                    marginTop: 32,\n                    marginBottom: 12,\n                    fontSize: 22,\n                }}>{t(\"manage.my-videos.acl.title\")}</h2>\n                <Controller\n                    name=\"acl\"\n                    control={control}\n                    render={({ field }) => <AclSelector\n                        userIsRequired\n                        onChange={field.onChange}\n                        acl={field.value}\n                        knownRoles={knownRoles}\n                        permissionLevels={READ_WRITE_ACTIONS}\n                    />}\n                />\n            </InputContainer>\n\n            {/* Submit button */}\n            <Button\n                kind=\"call-to-action\"\n                disabled={disabled}\n                css={{ marginTop: 32, marginBottom: 160 }}\n                onClick={onSubmit}>\n                {t(\"upload.metadata.save\")}\n            </Button>\n        </Form>\n    );\n};\n\n\n// ==============================================================================================\n// ===== Helper functions to send JWT-authenticated requests to OC\n// ==============================================================================================\n\n/** Returns the full Opencast URL for the given path */\nconst ocUrl = (path: string): string => `${CONFIG.opencast.uploadNode}${path}`;\n\n/** Opencast returned a non-OK status code */\nexport class OcServerError extends Error {\n    public status: number;\n    public statusText: string;\n\n    public constructor(status: number, statusText: string) {\n        super();\n        this.name = \"Opencast server error\";\n        this.status = status;\n        this.statusText = statusText;\n        this.message = `OC returned non-2xx status ${status} ${statusText}`;\n    }\n}\n\n/** Opencast could not be reached */\nexport class OcNetworkError extends Error {\n    public inner?: Error;\n\n    public constructor(inner?: Error) {\n        super();\n        this.name = \"Opencast Network Error\";\n        this.inner = inner;\n        this.message = `network error while contacting Opencast API: ${inner}`;\n    }\n}\n\n/** The JWT sent to Opencast was rejected. */\nexport class JwtInvalid extends Error {\n    public constructor() {\n        super();\n        this.name = \"Opencast JWT Auth Error\";\n        this.message = \"JWT was rejected by Opencast\";\n    }\n}\n\n/** Performs a request against Opencast, authenticated via JWT */\nconst ocRequest = async (\n    path: string,\n    options: RequestInit = {},\n): Promise<string> => {\n    const jwt = await getJwt(\"UPLOAD\");\n\n    const url = ocUrl(path);\n    const response = await fetch(url, {\n        redirect: \"manual\",\n        ...options,\n        headers: {\n            ...options.headers,\n            \"Authorization\": `Bearer ${jwt}`,\n        },\n    }).catch(e => { throw new OcNetworkError(e); });\n\n    // There should be no reason for a redirect except non-authenticated. The\n    // underlying problem can hopefully be resolved soon, so that we can remove\n    // this code.\n    if (response.type === \"opaqueredirect\") {\n        throw new JwtInvalid();\n    }\n\n    if (!response.ok) {\n        throw new OcServerError(response.status, response.statusText);\n    }\n\n\n    return response.text()\n        .catch(e => { throw new OcNetworkError(e); });\n};\n\n\n// ==============================================================================================\n// ===== Functions to perform actions against the ingest API\n// ==============================================================================================\n\nconst startUpload = async (\n    files: FileList,\n    setUploadState: (state: UploadState) => void,\n    onProgress: (progress: Progress) => void,\n    onDone: (mediaPackage: string) => void,\n    abortController: MutableRefObject<AbortController>,\n) => {\n    try {\n        setUploadState({ state: \"starting\" });\n\n        // Log Opencast user information. This is also a good test whether the\n        // communication with OC works at all, without potentially creating an\n        // empty new media package.\n        const userInfo = JSON.parse(await ocRequest(\"/info/me.json\"));\n        delete userInfo.org;\n        // eslint-disable-next-line no-console\n        console.debug(\"JWT user: \", userInfo);\n\n        // Create a new media package to start the upload\n        let mediaPackage = await ocRequest(\"/ingest/createMediaPackage\");\n\n        const tracks = Array.from(files)\n            .map(file => ({ file, flavor: \"presentation/source\" as const }));\n        mediaPackage = await uploadTracks(\n            mediaPackage,\n            tracks,\n            onProgress,\n            abortController,\n            setUploadState,\n        );\n        onDone(mediaPackage);\n    } catch (error) {\n        setUploadState({ state: \"error\", error });\n    }\n};\n\n\ntype Track = {\n    flavor: \"presentation/source\" | \"presenter/source\";\n    file: File;\n};\n\n/**\n * Uploads the given tracks via the ingest API. Calls `onProgress` regularly\n * with a number between 0 and 1, indicating how much of the data was already\n * uploaded. Returns the resulting media package returned by the last request.\n */\nconst uploadTracks = async (\n    mediaPackage: string,\n    tracks: Track[],\n    onProgress: (progress: number) => void,\n    abortController: MutableRefObject<AbortController>,\n    setUploadState: (state: UploadState) => void,\n): Promise<string> => {\n    const totalBytes = tracks.map(t => t.file.size).reduce((a, b) => a + b, 0);\n    let sizeFinishedTracks = 0;\n\n    for (const { flavor, file } of tracks) {\n        // Assemble multipart body\n        const body = new FormData();\n        body.append(\"mediaPackage\", mediaPackage);\n        body.append(\"flavor\", flavor);\n        body.append(\"tags\", \"\");\n        body.append(\"BODY\", file, file.name);\n\n        const url = ocUrl(\"/ingest/addTrack\");\n        const jwt = await getJwt(\"UPLOAD\");\n        mediaPackage = await new Promise((resolve, reject) => {\n            const xhr = new XMLHttpRequest();\n\n            abortController.current.signal.addEventListener(\"abort\", () => {\n                xhr.abort();\n                abortController.current = new AbortController();\n                cancelUpload(mediaPackage, setUploadState);\n            });\n\n            xhr.open(\"POST\", url);\n            xhr.setRequestHeader(\"Authorization\", `Bearer ${jwt}`);\n\n            xhr.onload = () => {\n                if (xhr.responseURL !== url) {\n                    reject(new JwtInvalid());\n                } else if (xhr.status !== 200) {\n                    reject(new OcServerError(xhr.status, xhr.statusText));\n                } else {\n                    resolve(xhr.responseText);\n                }\n            };\n            xhr.onerror = () => reject(new OcNetworkError());\n            xhr.upload.onprogress = e => {\n                const uploadedBytes = e.loaded + sizeFinishedTracks;\n                onProgress(uploadedBytes / totalBytes);\n            };\n\n            try {\n                xhr.send(body);\n            } catch (e) {\n                reject(e);\n            }\n        });\n\n        sizeFinishedTracks += file.size;\n    }\n\n    return mediaPackage;\n};\n\n\nconst cancelUpload = async (\n    mediaPackage: string,\n    setUploadState: (state: UploadState) => void,\n) => {\n    try {\n        setUploadState({ state: \"cancelled\" });\n\n        const body = new FormData();\n        body.append(\"mediaPackage\", mediaPackage);\n        await ocRequest(\"/ingest/discardMediaPackage\", { method: \"post\", body: body });\n    } catch (error) {\n        // eslint-disable-next-line no-console\n        console.error(\"Error cancelling: \", error);\n    }\n};\n\n/** Ingest the given metadata and finishes the ingest process */\nconst finishUpload = async (\n    mediaPackage: string,\n    metadata: Metadata,\n    user: User,\n    setUploadState: (state: UploadState) => void,\n) => {\n    try {\n        setUploadState({ state: \"finishing\" });\n\n        // Add metadata in DC-Catalog\n        {\n            const dcc = constructDcc(metadata, user);\n            const body = new URLSearchParams();\n            body.append(\"mediaPackage\", mediaPackage);\n            body.append(\"dublinCore\", dcc);\n            body.append(\"flavor\", \"dublincore/episode\");\n\n            mediaPackage = await ocRequest(\n                \"/ingest/addDCCatalog\",\n                { method: \"post\", body },\n            );\n        }\n\n        // Add ACL\n        {\n            const acl = constructAcl(metadata.acl);\n            const body = new FormData();\n            body.append(\"flavor\", \"security/xacml+episode\");\n            body.append(\"mediaPackage\", mediaPackage);\n            body.append(\"BODY\", new Blob([acl]), \"acl.xml\");\n\n            mediaPackage = await ocRequest(\n                \"/ingest/addAttachment\",\n                { method: \"post\", body },\n            );\n        }\n\n        // Finish ingest\n        {\n            const body = new FormData();\n            body.append(\"mediaPackage\", mediaPackage);\n            if (CONFIG.upload.workflow) {\n                body.append(\"workflowDefinitionId\", CONFIG.upload.workflow);\n            }\n            await ocRequest(\"/ingest/ingest\", { method: \"post\", body: body });\n        }\n\n        setUploadState({ state: \"done\" });\n    } catch (error) {\n        setUploadState({ state: \"error\", error });\n    }\n};\n\n/**\n * Encodes a value for inclusion in XML sent to Opencast.\n */\nconst encodeValue = (value: string): string =>\n    new XMLSerializer().serializeToString(new Text(value));\n\n/** Creates a Dublin Core Catalog in XML format that describes the given metadata. */\nconst constructDcc = (metadata: Metadata, user: User): string => {\n    const tag = (tag: string, value?: string): string =>\n        value ? `<${tag}>${encodeValue(value)}</${tag}>` : \"\";\n\n    return `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n        <dublincore xmlns=\"http://www.opencastproject.org/xsd/1.0/dublincore/\"\n                    xmlns:dcterms=\"http://purl.org/dc/terms/\"\n                    xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n            <dcterms:created xsi:type=\"dcterms:W3CDTF\">\n                ${new Date().toISOString()}\n            </dcterms:created>\n            ${tag(\"dcterms:title\", metadata.title)}\n            ${tag(\"dcterms:description\", metadata.description)}\n            ${tag(\"dcterms:isPartOf\", metadata.series)}\n            ${tag(\"dcterms:creator\", user.displayName)}\n            ${tag(\"dcterms:spatial\", \"Tobira Upload\")}\n        </dublincore>\n    `;\n};\n\n/** Constructs an ACL XML description from the given roles that are allowd to read/write */\nconst constructAcl = (acl: Acl): string => {\n    // TODO: maybe we should escape the role somehow?\n    const makeRule = (action: string, role: string): string => `\n        <Rule RuleId=\"${action}_permit_for_${role}\" Effect=\"Permit\">\n          <Target>\n            <Actions>\n              <Action>\n                <ActionMatch MatchId=\"urn:oasis:names:tc:xacml:1.0:function:string-equal\">\n                  <AttributeValue\n                    DataType=\"http://www.w3.org/2001/XMLSchema#string\">${action}</AttributeValue>\n                </ActionMatch>\n              </Action>\n            </Actions>\n          </Target>\n          <Condition>\n            <Apply FunctionId=\"urn:oasis:names:tc:xacml:1.0:function:string-is-in\">\n              <AttributeValue\n                DataType=\"http://www.w3.org/2001/XMLSchema#string\">${role}</AttributeValue>\n            </Apply>\n          </Condition>\n        </Rule>\n    `;\n\n    const rules = [...acl.entries()]\n        .flatMap(([role, info]) => [...info.actions].map(action => makeRule(action, role)));\n\n    return `\n        <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n        <Policy PolicyId=\"mediapackage-1\"\n          RuleCombiningAlgId=\n            \"urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:permit-overrides\"\n          Version=\"2.0\"\n          xmlns=\"urn:oasis:names:tc:xacml:2.0:policy:schema:os\">\n            ${rules.join(\"\\n\")}\n        </Policy>\n    `.trim();\n};\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp.call(b, prop))\n      __defNormalProp(a, prop, b[prop]);\n  if (__getOwnPropSymbols)\n    for (var prop of __getOwnPropSymbols(b)) {\n      if (__propIsEnum.call(b, prop))\n        __defNormalProp(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __objRest = (source, exclude) => {\n  var target = {};\n  for (var prop in source)\n    if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n      target[prop] = source[prop];\n  if (source != null && __getOwnPropSymbols)\n    for (var prop of __getOwnPropSymbols(source)) {\n      if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n        target[prop] = source[prop];\n    }\n  return target;\n};\n\n// src/index.tsx\nimport React from \"react\";\n\n// src/third-party/qrcodegen/index.ts\n/**\n * @license QR Code generator library (TypeScript)\n * Copyright (c) Project Nayuki.\n * SPDX-License-Identifier: MIT\n */\nvar qrcodegen;\n((qrcodegen2) => {\n  const _QrCode = class _QrCode {\n    /*-- Constructor (low level) and fields --*/\n    // Creates a new QR Code with the given version number,\n    // error correction level, data codeword bytes, and mask number.\n    // This is a low-level API that most users should not use directly.\n    // A mid-level API is the encodeSegments() function.\n    constructor(version, errorCorrectionLevel, dataCodewords, msk) {\n      this.version = version;\n      this.errorCorrectionLevel = errorCorrectionLevel;\n      // The modules of this QR Code (false = light, true = dark).\n      // Immutable after constructor finishes. Accessed through getModule().\n      this.modules = [];\n      // Indicates function modules that are not subjected to masking. Discarded when constructor finishes.\n      this.isFunction = [];\n      if (version < _QrCode.MIN_VERSION || version > _QrCode.MAX_VERSION)\n        throw new RangeError(\"Version value out of range\");\n      if (msk < -1 || msk > 7)\n        throw new RangeError(\"Mask value out of range\");\n      this.size = version * 4 + 17;\n      let row = [];\n      for (let i = 0; i < this.size; i++)\n        row.push(false);\n      for (let i = 0; i < this.size; i++) {\n        this.modules.push(row.slice());\n        this.isFunction.push(row.slice());\n      }\n      this.drawFunctionPatterns();\n      const allCodewords = this.addEccAndInterleave(dataCodewords);\n      this.drawCodewords(allCodewords);\n      if (msk == -1) {\n        let minPenalty = 1e9;\n        for (let i = 0; i < 8; i++) {\n          this.applyMask(i);\n          this.drawFormatBits(i);\n          const penalty = this.getPenaltyScore();\n          if (penalty < minPenalty) {\n            msk = i;\n            minPenalty = penalty;\n          }\n          this.applyMask(i);\n        }\n      }\n      assert(0 <= msk && msk <= 7);\n      this.mask = msk;\n      this.applyMask(msk);\n      this.drawFormatBits(msk);\n      this.isFunction = [];\n    }\n    /*-- Static factory functions (high level) --*/\n    // Returns a QR Code representing the given Unicode text string at the given error correction level.\n    // As a conservative upper bound, this function is guaranteed to succeed for strings that have 738 or fewer\n    // Unicode code points (not UTF-16 code units) if the low error correction level is used. The smallest possible\n    // QR Code version is automatically chosen for the output. The ECC level of the result may be higher than the\n    // ecl argument if it can be done without increasing the version.\n    static encodeText(text, ecl) {\n      const segs = qrcodegen2.QrSegment.makeSegments(text);\n      return _QrCode.encodeSegments(segs, ecl);\n    }\n    // Returns a QR Code representing the given binary data at the given error correction level.\n    // This function always encodes using the binary segment mode, not any text mode. The maximum number of\n    // bytes allowed is 2953. The smallest possible QR Code version is automatically chosen for the output.\n    // The ECC level of the result may be higher than the ecl argument if it can be done without increasing the version.\n    static encodeBinary(data, ecl) {\n      const seg = qrcodegen2.QrSegment.makeBytes(data);\n      return _QrCode.encodeSegments([seg], ecl);\n    }\n    /*-- Static factory functions (mid level) --*/\n    // Returns a QR Code representing the given segments with the given encoding parameters.\n    // The smallest possible QR Code version within the given range is automatically\n    // chosen for the output. Iff boostEcl is true, then the ECC level of the result\n    // may be higher than the ecl argument if it can be done without increasing the\n    // version. The mask number is either between 0 to 7 (inclusive) to force that\n    // mask, or -1 to automatically choose an appropriate mask (which may be slow).\n    // This function allows the user to create a custom sequence of segments that switches\n    // between modes (such as alphanumeric and byte) to encode text in less space.\n    // This is a mid-level API; the high-level API is encodeText() and encodeBinary().\n    static encodeSegments(segs, ecl, minVersion = 1, maxVersion = 40, mask = -1, boostEcl = true) {\n      if (!(_QrCode.MIN_VERSION <= minVersion && minVersion <= maxVersion && maxVersion <= _QrCode.MAX_VERSION) || mask < -1 || mask > 7)\n        throw new RangeError(\"Invalid value\");\n      let version;\n      let dataUsedBits;\n      for (version = minVersion; ; version++) {\n        const dataCapacityBits2 = _QrCode.getNumDataCodewords(version, ecl) * 8;\n        const usedBits = QrSegment.getTotalBits(segs, version);\n        if (usedBits <= dataCapacityBits2) {\n          dataUsedBits = usedBits;\n          break;\n        }\n        if (version >= maxVersion)\n          throw new RangeError(\"Data too long\");\n      }\n      for (const newEcl of [_QrCode.Ecc.MEDIUM, _QrCode.Ecc.QUARTILE, _QrCode.Ecc.HIGH]) {\n        if (boostEcl && dataUsedBits <= _QrCode.getNumDataCodewords(version, newEcl) * 8)\n          ecl = newEcl;\n      }\n      let bb = [];\n      for (const seg of segs) {\n        appendBits(seg.mode.modeBits, 4, bb);\n        appendBits(seg.numChars, seg.mode.numCharCountBits(version), bb);\n        for (const b of seg.getData())\n          bb.push(b);\n      }\n      assert(bb.length == dataUsedBits);\n      const dataCapacityBits = _QrCode.getNumDataCodewords(version, ecl) * 8;\n      assert(bb.length <= dataCapacityBits);\n      appendBits(0, Math.min(4, dataCapacityBits - bb.length), bb);\n      appendBits(0, (8 - bb.length % 8) % 8, bb);\n      assert(bb.length % 8 == 0);\n      for (let padByte = 236; bb.length < dataCapacityBits; padByte ^= 236 ^ 17)\n        appendBits(padByte, 8, bb);\n      let dataCodewords = [];\n      while (dataCodewords.length * 8 < bb.length)\n        dataCodewords.push(0);\n      bb.forEach((b, i) => dataCodewords[i >>> 3] |= b << 7 - (i & 7));\n      return new _QrCode(version, ecl, dataCodewords, mask);\n    }\n    /*-- Accessor methods --*/\n    // Returns the color of the module (pixel) at the given coordinates, which is false\n    // for light or true for dark. The top left corner has the coordinates (x=0, y=0).\n    // If the given coordinates are out of bounds, then false (light) is returned.\n    getModule(x, y) {\n      return 0 <= x && x < this.size && 0 <= y && y < this.size && this.modules[y][x];\n    }\n    // Modified to expose modules for easy access\n    getModules() {\n      return this.modules;\n    }\n    /*-- Private helper methods for constructor: Drawing function modules --*/\n    // Reads this object's version field, and draws and marks all function modules.\n    drawFunctionPatterns() {\n      for (let i = 0; i < this.size; i++) {\n        this.setFunctionModule(6, i, i % 2 == 0);\n        this.setFunctionModule(i, 6, i % 2 == 0);\n      }\n      this.drawFinderPattern(3, 3);\n      this.drawFinderPattern(this.size - 4, 3);\n      this.drawFinderPattern(3, this.size - 4);\n      const alignPatPos = this.getAlignmentPatternPositions();\n      const numAlign = alignPatPos.length;\n      for (let i = 0; i < numAlign; i++) {\n        for (let j = 0; j < numAlign; j++) {\n          if (!(i == 0 && j == 0 || i == 0 && j == numAlign - 1 || i == numAlign - 1 && j == 0))\n            this.drawAlignmentPattern(alignPatPos[i], alignPatPos[j]);\n        }\n      }\n      this.drawFormatBits(0);\n      this.drawVersion();\n    }\n    // Draws two copies of the format bits (with its own error correction code)\n    // based on the given mask and this object's error correction level field.\n    drawFormatBits(mask) {\n      const data = this.errorCorrectionLevel.formatBits << 3 | mask;\n      let rem = data;\n      for (let i = 0; i < 10; i++)\n        rem = rem << 1 ^ (rem >>> 9) * 1335;\n      const bits = (data << 10 | rem) ^ 21522;\n      assert(bits >>> 15 == 0);\n      for (let i = 0; i <= 5; i++)\n        this.setFunctionModule(8, i, getBit(bits, i));\n      this.setFunctionModule(8, 7, getBit(bits, 6));\n      this.setFunctionModule(8, 8, getBit(bits, 7));\n      this.setFunctionModule(7, 8, getBit(bits, 8));\n      for (let i = 9; i < 15; i++)\n        this.setFunctionModule(14 - i, 8, getBit(bits, i));\n      for (let i = 0; i < 8; i++)\n        this.setFunctionModule(this.size - 1 - i, 8, getBit(bits, i));\n      for (let i = 8; i < 15; i++)\n        this.setFunctionModule(8, this.size - 15 + i, getBit(bits, i));\n      this.setFunctionModule(8, this.size - 8, true);\n    }\n    // Draws two copies of the version bits (with its own error correction code),\n    // based on this object's version field, iff 7 <= version <= 40.\n    drawVersion() {\n      if (this.version < 7)\n        return;\n      let rem = this.version;\n      for (let i = 0; i < 12; i++)\n        rem = rem << 1 ^ (rem >>> 11) * 7973;\n      const bits = this.version << 12 | rem;\n      assert(bits >>> 18 == 0);\n      for (let i = 0; i < 18; i++) {\n        const color = getBit(bits, i);\n        const a = this.size - 11 + i % 3;\n        const b = Math.floor(i / 3);\n        this.setFunctionModule(a, b, color);\n        this.setFunctionModule(b, a, color);\n      }\n    }\n    // Draws a 9*9 finder pattern including the border separator,\n    // with the center module at (x, y). Modules can be out of bounds.\n    drawFinderPattern(x, y) {\n      for (let dy = -4; dy <= 4; dy++) {\n        for (let dx = -4; dx <= 4; dx++) {\n          const dist = Math.max(Math.abs(dx), Math.abs(dy));\n          const xx = x + dx;\n          const yy = y + dy;\n          if (0 <= xx && xx < this.size && 0 <= yy && yy < this.size)\n            this.setFunctionModule(xx, yy, dist != 2 && dist != 4);\n        }\n      }\n    }\n    // Draws a 5*5 alignment pattern, with the center module\n    // at (x, y). All modules must be in bounds.\n    drawAlignmentPattern(x, y) {\n      for (let dy = -2; dy <= 2; dy++) {\n        for (let dx = -2; dx <= 2; dx++)\n          this.setFunctionModule(x + dx, y + dy, Math.max(Math.abs(dx), Math.abs(dy)) != 1);\n      }\n    }\n    // Sets the color of a module and marks it as a function module.\n    // Only used by the constructor. Coordinates must be in bounds.\n    setFunctionModule(x, y, isDark) {\n      this.modules[y][x] = isDark;\n      this.isFunction[y][x] = true;\n    }\n    /*-- Private helper methods for constructor: Codewords and masking --*/\n    // Returns a new byte string representing the given data with the appropriate error correction\n    // codewords appended to it, based on this object's version and error correction level.\n    addEccAndInterleave(data) {\n      const ver = this.version;\n      const ecl = this.errorCorrectionLevel;\n      if (data.length != _QrCode.getNumDataCodewords(ver, ecl))\n        throw new RangeError(\"Invalid argument\");\n      const numBlocks = _QrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver];\n      const blockEccLen = _QrCode.ECC_CODEWORDS_PER_BLOCK[ecl.ordinal][ver];\n      const rawCodewords = Math.floor(_QrCode.getNumRawDataModules(ver) / 8);\n      const numShortBlocks = numBlocks - rawCodewords % numBlocks;\n      const shortBlockLen = Math.floor(rawCodewords / numBlocks);\n      let blocks = [];\n      const rsDiv = _QrCode.reedSolomonComputeDivisor(blockEccLen);\n      for (let i = 0, k = 0; i < numBlocks; i++) {\n        let dat = data.slice(k, k + shortBlockLen - blockEccLen + (i < numShortBlocks ? 0 : 1));\n        k += dat.length;\n        const ecc = _QrCode.reedSolomonComputeRemainder(dat, rsDiv);\n        if (i < numShortBlocks)\n          dat.push(0);\n        blocks.push(dat.concat(ecc));\n      }\n      let result = [];\n      for (let i = 0; i < blocks[0].length; i++) {\n        blocks.forEach((block, j) => {\n          if (i != shortBlockLen - blockEccLen || j >= numShortBlocks)\n            result.push(block[i]);\n        });\n      }\n      assert(result.length == rawCodewords);\n      return result;\n    }\n    // Draws the given sequence of 8-bit codewords (data and error correction) onto the entire\n    // data area of this QR Code. Function modules need to be marked off before this is called.\n    drawCodewords(data) {\n      if (data.length != Math.floor(_QrCode.getNumRawDataModules(this.version) / 8))\n        throw new RangeError(\"Invalid argument\");\n      let i = 0;\n      for (let right = this.size - 1; right >= 1; right -= 2) {\n        if (right == 6)\n          right = 5;\n        for (let vert = 0; vert < this.size; vert++) {\n          for (let j = 0; j < 2; j++) {\n            const x = right - j;\n            const upward = (right + 1 & 2) == 0;\n            const y = upward ? this.size - 1 - vert : vert;\n            if (!this.isFunction[y][x] && i < data.length * 8) {\n              this.modules[y][x] = getBit(data[i >>> 3], 7 - (i & 7));\n              i++;\n            }\n          }\n        }\n      }\n      assert(i == data.length * 8);\n    }\n    // XORs the codeword modules in this QR Code with the given mask pattern.\n    // The function modules must be marked and the codeword bits must be drawn\n    // before masking. Due to the arithmetic of XOR, calling applyMask() with\n    // the same mask value a second time will undo the mask. A final well-formed\n    // QR Code needs exactly one (not zero, two, etc.) mask applied.\n    applyMask(mask) {\n      if (mask < 0 || mask > 7)\n        throw new RangeError(\"Mask value out of range\");\n      for (let y = 0; y < this.size; y++) {\n        for (let x = 0; x < this.size; x++) {\n          let invert;\n          switch (mask) {\n            case 0:\n              invert = (x + y) % 2 == 0;\n              break;\n            case 1:\n              invert = y % 2 == 0;\n              break;\n            case 2:\n              invert = x % 3 == 0;\n              break;\n            case 3:\n              invert = (x + y) % 3 == 0;\n              break;\n            case 4:\n              invert = (Math.floor(x / 3) + Math.floor(y / 2)) % 2 == 0;\n              break;\n            case 5:\n              invert = x * y % 2 + x * y % 3 == 0;\n              break;\n            case 6:\n              invert = (x * y % 2 + x * y % 3) % 2 == 0;\n              break;\n            case 7:\n              invert = ((x + y) % 2 + x * y % 3) % 2 == 0;\n              break;\n            default:\n              throw new Error(\"Unreachable\");\n          }\n          if (!this.isFunction[y][x] && invert)\n            this.modules[y][x] = !this.modules[y][x];\n        }\n      }\n    }\n    // Calculates and returns the penalty score based on state of this QR Code's current modules.\n    // This is used by the automatic mask choice algorithm to find the mask pattern that yields the lowest score.\n    getPenaltyScore() {\n      let result = 0;\n      for (let y = 0; y < this.size; y++) {\n        let runColor = false;\n        let runX = 0;\n        let runHistory = [0, 0, 0, 0, 0, 0, 0];\n        for (let x = 0; x < this.size; x++) {\n          if (this.modules[y][x] == runColor) {\n            runX++;\n            if (runX == 5)\n              result += _QrCode.PENALTY_N1;\n            else if (runX > 5)\n              result++;\n          } else {\n            this.finderPenaltyAddHistory(runX, runHistory);\n            if (!runColor)\n              result += this.finderPenaltyCountPatterns(runHistory) * _QrCode.PENALTY_N3;\n            runColor = this.modules[y][x];\n            runX = 1;\n          }\n        }\n        result += this.finderPenaltyTerminateAndCount(runColor, runX, runHistory) * _QrCode.PENALTY_N3;\n      }\n      for (let x = 0; x < this.size; x++) {\n        let runColor = false;\n        let runY = 0;\n        let runHistory = [0, 0, 0, 0, 0, 0, 0];\n        for (let y = 0; y < this.size; y++) {\n          if (this.modules[y][x] == runColor) {\n            runY++;\n            if (runY == 5)\n              result += _QrCode.PENALTY_N1;\n            else if (runY > 5)\n              result++;\n          } else {\n            this.finderPenaltyAddHistory(runY, runHistory);\n            if (!runColor)\n              result += this.finderPenaltyCountPatterns(runHistory) * _QrCode.PENALTY_N3;\n            runColor = this.modules[y][x];\n            runY = 1;\n          }\n        }\n        result += this.finderPenaltyTerminateAndCount(runColor, runY, runHistory) * _QrCode.PENALTY_N3;\n      }\n      for (let y = 0; y < this.size - 1; y++) {\n        for (let x = 0; x < this.size - 1; x++) {\n          const color = this.modules[y][x];\n          if (color == this.modules[y][x + 1] && color == this.modules[y + 1][x] && color == this.modules[y + 1][x + 1])\n            result += _QrCode.PENALTY_N2;\n        }\n      }\n      let dark = 0;\n      for (const row of this.modules)\n        dark = row.reduce((sum, color) => sum + (color ? 1 : 0), dark);\n      const total = this.size * this.size;\n      const k = Math.ceil(Math.abs(dark * 20 - total * 10) / total) - 1;\n      assert(0 <= k && k <= 9);\n      result += k * _QrCode.PENALTY_N4;\n      assert(0 <= result && result <= 2568888);\n      return result;\n    }\n    /*-- Private helper functions --*/\n    // Returns an ascending list of positions of alignment patterns for this version number.\n    // Each position is in the range [0,177), and are used on both the x and y axes.\n    // This could be implemented as lookup table of 40 variable-length lists of integers.\n    getAlignmentPatternPositions() {\n      if (this.version == 1)\n        return [];\n      else {\n        const numAlign = Math.floor(this.version / 7) + 2;\n        const step = this.version == 32 ? 26 : Math.ceil((this.version * 4 + 4) / (numAlign * 2 - 2)) * 2;\n        let result = [6];\n        for (let pos = this.size - 7; result.length < numAlign; pos -= step)\n          result.splice(1, 0, pos);\n        return result;\n      }\n    }\n    // Returns the number of data bits that can be stored in a QR Code of the given version number, after\n    // all function modules are excluded. This includes remainder bits, so it might not be a multiple of 8.\n    // The result is in the range [208, 29648]. This could be implemented as a 40-entry lookup table.\n    static getNumRawDataModules(ver) {\n      if (ver < _QrCode.MIN_VERSION || ver > _QrCode.MAX_VERSION)\n        throw new RangeError(\"Version number out of range\");\n      let result = (16 * ver + 128) * ver + 64;\n      if (ver >= 2) {\n        const numAlign = Math.floor(ver / 7) + 2;\n        result -= (25 * numAlign - 10) * numAlign - 55;\n        if (ver >= 7)\n          result -= 36;\n      }\n      assert(208 <= result && result <= 29648);\n      return result;\n    }\n    // Returns the number of 8-bit data (i.e. not error correction) codewords contained in any\n    // QR Code of the given version number and error correction level, with remainder bits discarded.\n    // This stateless pure function could be implemented as a (40*4)-cell lookup table.\n    static getNumDataCodewords(ver, ecl) {\n      return Math.floor(_QrCode.getNumRawDataModules(ver) / 8) - _QrCode.ECC_CODEWORDS_PER_BLOCK[ecl.ordinal][ver] * _QrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver];\n    }\n    // Returns a Reed-Solomon ECC generator polynomial for the given degree. This could be\n    // implemented as a lookup table over all possible parameter values, instead of as an algorithm.\n    static reedSolomonComputeDivisor(degree) {\n      if (degree < 1 || degree > 255)\n        throw new RangeError(\"Degree out of range\");\n      let result = [];\n      for (let i = 0; i < degree - 1; i++)\n        result.push(0);\n      result.push(1);\n      let root = 1;\n      for (let i = 0; i < degree; i++) {\n        for (let j = 0; j < result.length; j++) {\n          result[j] = _QrCode.reedSolomonMultiply(result[j], root);\n          if (j + 1 < result.length)\n            result[j] ^= result[j + 1];\n        }\n        root = _QrCode.reedSolomonMultiply(root, 2);\n      }\n      return result;\n    }\n    // Returns the Reed-Solomon error correction codeword for the given data and divisor polynomials.\n    static reedSolomonComputeRemainder(data, divisor) {\n      let result = divisor.map((_) => 0);\n      for (const b of data) {\n        const factor = b ^ result.shift();\n        result.push(0);\n        divisor.forEach((coef, i) => result[i] ^= _QrCode.reedSolomonMultiply(coef, factor));\n      }\n      return result;\n    }\n    // Returns the product of the two given field elements modulo GF(2^8/0x11D). The arguments and result\n    // are unsigned 8-bit integers. This could be implemented as a lookup table of 256*256 entries of uint8.\n    static reedSolomonMultiply(x, y) {\n      if (x >>> 8 != 0 || y >>> 8 != 0)\n        throw new RangeError(\"Byte out of range\");\n      let z = 0;\n      for (let i = 7; i >= 0; i--) {\n        z = z << 1 ^ (z >>> 7) * 285;\n        z ^= (y >>> i & 1) * x;\n      }\n      assert(z >>> 8 == 0);\n      return z;\n    }\n    // Can only be called immediately after a light run is added, and\n    // returns either 0, 1, or 2. A helper function for getPenaltyScore().\n    finderPenaltyCountPatterns(runHistory) {\n      const n = runHistory[1];\n      assert(n <= this.size * 3);\n      const core = n > 0 && runHistory[2] == n && runHistory[3] == n * 3 && runHistory[4] == n && runHistory[5] == n;\n      return (core && runHistory[0] >= n * 4 && runHistory[6] >= n ? 1 : 0) + (core && runHistory[6] >= n * 4 && runHistory[0] >= n ? 1 : 0);\n    }\n    // Must be called at the end of a line (row or column) of modules. A helper function for getPenaltyScore().\n    finderPenaltyTerminateAndCount(currentRunColor, currentRunLength, runHistory) {\n      if (currentRunColor) {\n        this.finderPenaltyAddHistory(currentRunLength, runHistory);\n        currentRunLength = 0;\n      }\n      currentRunLength += this.size;\n      this.finderPenaltyAddHistory(currentRunLength, runHistory);\n      return this.finderPenaltyCountPatterns(runHistory);\n    }\n    // Pushes the given value to the front and drops the last value. A helper function for getPenaltyScore().\n    finderPenaltyAddHistory(currentRunLength, runHistory) {\n      if (runHistory[0] == 0)\n        currentRunLength += this.size;\n      runHistory.pop();\n      runHistory.unshift(currentRunLength);\n    }\n  };\n  /*-- Constants and tables --*/\n  // The minimum version number supported in the QR Code Model 2 standard.\n  _QrCode.MIN_VERSION = 1;\n  // The maximum version number supported in the QR Code Model 2 standard.\n  _QrCode.MAX_VERSION = 40;\n  // For use in getPenaltyScore(), when evaluating which mask is best.\n  _QrCode.PENALTY_N1 = 3;\n  _QrCode.PENALTY_N2 = 3;\n  _QrCode.PENALTY_N3 = 40;\n  _QrCode.PENALTY_N4 = 10;\n  _QrCode.ECC_CODEWORDS_PER_BLOCK = [\n    // Version: (note that index 0 is for padding, and is set to an illegal value)\n    //0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40    Error correction level\n    [-1, 7, 10, 15, 20, 26, 18, 20, 24, 30, 18, 20, 24, 26, 30, 22, 24, 28, 30, 28, 28, 28, 28, 30, 30, 26, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],\n    // Low\n    [-1, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28, 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28],\n    // Medium\n    [-1, 13, 22, 18, 26, 18, 24, 18, 22, 20, 24, 28, 26, 24, 20, 30, 24, 28, 28, 26, 30, 28, 30, 30, 30, 30, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],\n    // Quartile\n    [-1, 17, 28, 22, 16, 22, 28, 26, 26, 24, 28, 24, 28, 22, 24, 24, 30, 28, 28, 26, 28, 30, 24, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30]\n    // High\n  ];\n  _QrCode.NUM_ERROR_CORRECTION_BLOCKS = [\n    // Version: (note that index 0 is for padding, and is set to an illegal value)\n    //0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40    Error correction level\n    [-1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, 8, 9, 9, 10, 12, 12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 24, 25],\n    // Low\n    [-1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17, 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47, 49],\n    // Medium\n    [-1, 1, 1, 2, 2, 4, 4, 6, 6, 8, 8, 8, 10, 12, 16, 12, 17, 16, 18, 21, 20, 23, 23, 25, 27, 29, 34, 34, 35, 38, 40, 43, 45, 48, 51, 53, 56, 59, 62, 65, 68],\n    // Quartile\n    [-1, 1, 1, 2, 4, 4, 4, 5, 6, 8, 8, 11, 11, 16, 16, 18, 16, 19, 21, 25, 25, 25, 34, 30, 32, 35, 37, 40, 42, 45, 48, 51, 54, 57, 60, 63, 66, 70, 74, 77, 81]\n    // High\n  ];\n  let QrCode = _QrCode;\n  qrcodegen2.QrCode = _QrCode;\n  function appendBits(val, len, bb) {\n    if (len < 0 || len > 31 || val >>> len != 0)\n      throw new RangeError(\"Value out of range\");\n    for (let i = len - 1; i >= 0; i--)\n      bb.push(val >>> i & 1);\n  }\n  function getBit(x, i) {\n    return (x >>> i & 1) != 0;\n  }\n  function assert(cond) {\n    if (!cond)\n      throw new Error(\"Assertion error\");\n  }\n  const _QrSegment = class _QrSegment {\n    /*-- Constructor (low level) and fields --*/\n    // Creates a new QR Code segment with the given attributes and data.\n    // The character count (numChars) must agree with the mode and the bit buffer length,\n    // but the constraint isn't checked. The given bit buffer is cloned and stored.\n    constructor(mode, numChars, bitData) {\n      this.mode = mode;\n      this.numChars = numChars;\n      this.bitData = bitData;\n      if (numChars < 0)\n        throw new RangeError(\"Invalid argument\");\n      this.bitData = bitData.slice();\n    }\n    /*-- Static factory functions (mid level) --*/\n    // Returns a segment representing the given binary data encoded in\n    // byte mode. All input byte arrays are acceptable. Any text string\n    // can be converted to UTF-8 bytes and encoded as a byte mode segment.\n    static makeBytes(data) {\n      let bb = [];\n      for (const b of data)\n        appendBits(b, 8, bb);\n      return new _QrSegment(_QrSegment.Mode.BYTE, data.length, bb);\n    }\n    // Returns a segment representing the given string of decimal digits encoded in numeric mode.\n    static makeNumeric(digits) {\n      if (!_QrSegment.isNumeric(digits))\n        throw new RangeError(\"String contains non-numeric characters\");\n      let bb = [];\n      for (let i = 0; i < digits.length; ) {\n        const n = Math.min(digits.length - i, 3);\n        appendBits(parseInt(digits.substring(i, i + n), 10), n * 3 + 1, bb);\n        i += n;\n      }\n      return new _QrSegment(_QrSegment.Mode.NUMERIC, digits.length, bb);\n    }\n    // Returns a segment representing the given text string encoded in alphanumeric mode.\n    // The characters allowed are: 0 to 9, A to Z (uppercase only), space,\n    // dollar, percent, asterisk, plus, hyphen, period, slash, colon.\n    static makeAlphanumeric(text) {\n      if (!_QrSegment.isAlphanumeric(text))\n        throw new RangeError(\"String contains unencodable characters in alphanumeric mode\");\n      let bb = [];\n      let i;\n      for (i = 0; i + 2 <= text.length; i += 2) {\n        let temp = _QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)) * 45;\n        temp += _QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i + 1));\n        appendBits(temp, 11, bb);\n      }\n      if (i < text.length)\n        appendBits(_QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)), 6, bb);\n      return new _QrSegment(_QrSegment.Mode.ALPHANUMERIC, text.length, bb);\n    }\n    // Returns a new mutable list of zero or more segments to represent the given Unicode text string.\n    // The result may use various segment modes and switch modes to optimize the length of the bit stream.\n    static makeSegments(text) {\n      if (text == \"\")\n        return [];\n      else if (_QrSegment.isNumeric(text))\n        return [_QrSegment.makeNumeric(text)];\n      else if (_QrSegment.isAlphanumeric(text))\n        return [_QrSegment.makeAlphanumeric(text)];\n      else\n        return [_QrSegment.makeBytes(_QrSegment.toUtf8ByteArray(text))];\n    }\n    // Returns a segment representing an Extended Channel Interpretation\n    // (ECI) designator with the given assignment value.\n    static makeEci(assignVal) {\n      let bb = [];\n      if (assignVal < 0)\n        throw new RangeError(\"ECI assignment value out of range\");\n      else if (assignVal < 1 << 7)\n        appendBits(assignVal, 8, bb);\n      else if (assignVal < 1 << 14) {\n        appendBits(2, 2, bb);\n        appendBits(assignVal, 14, bb);\n      } else if (assignVal < 1e6) {\n        appendBits(6, 3, bb);\n        appendBits(assignVal, 21, bb);\n      } else\n        throw new RangeError(\"ECI assignment value out of range\");\n      return new _QrSegment(_QrSegment.Mode.ECI, 0, bb);\n    }\n    // Tests whether the given string can be encoded as a segment in numeric mode.\n    // A string is encodable iff each character is in the range 0 to 9.\n    static isNumeric(text) {\n      return _QrSegment.NUMERIC_REGEX.test(text);\n    }\n    // Tests whether the given string can be encoded as a segment in alphanumeric mode.\n    // A string is encodable iff each character is in the following set: 0 to 9, A to Z\n    // (uppercase only), space, dollar, percent, asterisk, plus, hyphen, period, slash, colon.\n    static isAlphanumeric(text) {\n      return _QrSegment.ALPHANUMERIC_REGEX.test(text);\n    }\n    /*-- Methods --*/\n    // Returns a new copy of the data bits of this segment.\n    getData() {\n      return this.bitData.slice();\n    }\n    // (Package-private) Calculates and returns the number of bits needed to encode the given segments at\n    // the given version. The result is infinity if a segment has too many characters to fit its length field.\n    static getTotalBits(segs, version) {\n      let result = 0;\n      for (const seg of segs) {\n        const ccbits = seg.mode.numCharCountBits(version);\n        if (seg.numChars >= 1 << ccbits)\n          return Infinity;\n        result += 4 + ccbits + seg.bitData.length;\n      }\n      return result;\n    }\n    // Returns a new array of bytes representing the given string encoded in UTF-8.\n    static toUtf8ByteArray(str) {\n      str = encodeURI(str);\n      let result = [];\n      for (let i = 0; i < str.length; i++) {\n        if (str.charAt(i) != \"%\")\n          result.push(str.charCodeAt(i));\n        else {\n          result.push(parseInt(str.substring(i + 1, i + 3), 16));\n          i += 2;\n        }\n      }\n      return result;\n    }\n  };\n  /*-- Constants --*/\n  // Describes precisely all strings that are encodable in numeric mode.\n  _QrSegment.NUMERIC_REGEX = /^[0-9]*$/;\n  // Describes precisely all strings that are encodable in alphanumeric mode.\n  _QrSegment.ALPHANUMERIC_REGEX = /^[A-Z0-9 $%*+.\\/:-]*$/;\n  // The set of all legal characters in alphanumeric mode,\n  // where each character value maps to the index in the string.\n  _QrSegment.ALPHANUMERIC_CHARSET = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:\";\n  let QrSegment = _QrSegment;\n  qrcodegen2.QrSegment = _QrSegment;\n})(qrcodegen || (qrcodegen = {}));\n((qrcodegen2) => {\n  let QrCode;\n  ((QrCode2) => {\n    const _Ecc = class _Ecc {\n      // The QR Code can tolerate about 30% erroneous codewords\n      /*-- Constructor and fields --*/\n      constructor(ordinal, formatBits) {\n        this.ordinal = ordinal;\n        this.formatBits = formatBits;\n      }\n    };\n    /*-- Constants --*/\n    _Ecc.LOW = new _Ecc(0, 1);\n    // The QR Code can tolerate about  7% erroneous codewords\n    _Ecc.MEDIUM = new _Ecc(1, 0);\n    // The QR Code can tolerate about 15% erroneous codewords\n    _Ecc.QUARTILE = new _Ecc(2, 3);\n    // The QR Code can tolerate about 25% erroneous codewords\n    _Ecc.HIGH = new _Ecc(3, 2);\n    let Ecc = _Ecc;\n    QrCode2.Ecc = _Ecc;\n  })(QrCode = qrcodegen2.QrCode || (qrcodegen2.QrCode = {}));\n})(qrcodegen || (qrcodegen = {}));\n((qrcodegen2) => {\n  let QrSegment;\n  ((QrSegment2) => {\n    const _Mode = class _Mode {\n      /*-- Constructor and fields --*/\n      constructor(modeBits, numBitsCharCount) {\n        this.modeBits = modeBits;\n        this.numBitsCharCount = numBitsCharCount;\n      }\n      /*-- Method --*/\n      // (Package-private) Returns the bit width of the character count field for a segment in\n      // this mode in a QR Code at the given version number. The result is in the range [0, 16].\n      numCharCountBits(ver) {\n        return this.numBitsCharCount[Math.floor((ver + 7) / 17)];\n      }\n    };\n    /*-- Constants --*/\n    _Mode.NUMERIC = new _Mode(1, [10, 12, 14]);\n    _Mode.ALPHANUMERIC = new _Mode(2, [9, 11, 13]);\n    _Mode.BYTE = new _Mode(4, [8, 16, 16]);\n    _Mode.KANJI = new _Mode(8, [8, 10, 12]);\n    _Mode.ECI = new _Mode(7, [0, 0, 0]);\n    let Mode = _Mode;\n    QrSegment2.Mode = _Mode;\n  })(QrSegment = qrcodegen2.QrSegment || (qrcodegen2.QrSegment = {}));\n})(qrcodegen || (qrcodegen = {}));\nvar qrcodegen_default = qrcodegen;\n\n// src/index.tsx\n/**\n * @license qrcode.react\n * Copyright (c) Paul O'Shannessy\n * SPDX-License-Identifier: ISC\n */\nvar ERROR_LEVEL_MAP = {\n  L: qrcodegen_default.QrCode.Ecc.LOW,\n  M: qrcodegen_default.QrCode.Ecc.MEDIUM,\n  Q: qrcodegen_default.QrCode.Ecc.QUARTILE,\n  H: qrcodegen_default.QrCode.Ecc.HIGH\n};\nvar DEFAULT_SIZE = 128;\nvar DEFAULT_LEVEL = \"L\";\nvar DEFAULT_BGCOLOR = \"#FFFFFF\";\nvar DEFAULT_FGCOLOR = \"#000000\";\nvar DEFAULT_INCLUDEMARGIN = false;\nvar DEFAULT_MINVERSION = 1;\nvar SPEC_MARGIN_SIZE = 4;\nvar DEFAULT_MARGIN_SIZE = 0;\nvar DEFAULT_IMG_SCALE = 0.1;\nfunction generatePath(modules, margin = 0) {\n  const ops = [];\n  modules.forEach(function(row, y) {\n    let start = null;\n    row.forEach(function(cell, x) {\n      if (!cell && start !== null) {\n        ops.push(\n          `M${start + margin} ${y + margin}h${x - start}v1H${start + margin}z`\n        );\n        start = null;\n        return;\n      }\n      if (x === row.length - 1) {\n        if (!cell) {\n          return;\n        }\n        if (start === null) {\n          ops.push(`M${x + margin},${y + margin} h1v1H${x + margin}z`);\n        } else {\n          ops.push(\n            `M${start + margin},${y + margin} h${x + 1 - start}v1H${start + margin}z`\n          );\n        }\n        return;\n      }\n      if (cell && start === null) {\n        start = x;\n      }\n    });\n  });\n  return ops.join(\"\");\n}\nfunction excavateModules(modules, excavation) {\n  return modules.slice().map((row, y) => {\n    if (y < excavation.y || y >= excavation.y + excavation.h) {\n      return row;\n    }\n    return row.map((cell, x) => {\n      if (x < excavation.x || x >= excavation.x + excavation.w) {\n        return cell;\n      }\n      return false;\n    });\n  });\n}\nfunction getImageSettings(cells, size, margin, imageSettings) {\n  if (imageSettings == null) {\n    return null;\n  }\n  const numCells = cells.length + margin * 2;\n  const defaultSize = Math.floor(size * DEFAULT_IMG_SCALE);\n  const scale = numCells / size;\n  const w = (imageSettings.width || defaultSize) * scale;\n  const h = (imageSettings.height || defaultSize) * scale;\n  const x = imageSettings.x == null ? cells.length / 2 - w / 2 : imageSettings.x * scale;\n  const y = imageSettings.y == null ? cells.length / 2 - h / 2 : imageSettings.y * scale;\n  const opacity = imageSettings.opacity == null ? 1 : imageSettings.opacity;\n  let excavation = null;\n  if (imageSettings.excavate) {\n    let floorX = Math.floor(x);\n    let floorY = Math.floor(y);\n    let ceilW = Math.ceil(w + x - floorX);\n    let ceilH = Math.ceil(h + y - floorY);\n    excavation = { x: floorX, y: floorY, w: ceilW, h: ceilH };\n  }\n  const crossOrigin = imageSettings.crossOrigin;\n  return { x, y, h, w, excavation, opacity, crossOrigin };\n}\nfunction getMarginSize(includeMargin, marginSize) {\n  if (marginSize != null) {\n    return Math.max(Math.floor(marginSize), 0);\n  }\n  return includeMargin ? SPEC_MARGIN_SIZE : DEFAULT_MARGIN_SIZE;\n}\nfunction useQRCode({\n  value,\n  level,\n  minVersion,\n  includeMargin,\n  marginSize,\n  imageSettings,\n  size\n}) {\n  let qrcode = React.useMemo(() => {\n    const segments = qrcodegen_default.QrSegment.makeSegments(value);\n    return qrcodegen_default.QrCode.encodeSegments(\n      segments,\n      ERROR_LEVEL_MAP[level],\n      minVersion\n    );\n  }, [value, level, minVersion]);\n  const { cells, margin, numCells, calculatedImageSettings } = React.useMemo(() => {\n    let cells2 = qrcode.getModules();\n    const margin2 = getMarginSize(includeMargin, marginSize);\n    const numCells2 = cells2.length + margin2 * 2;\n    const calculatedImageSettings2 = getImageSettings(\n      cells2,\n      size,\n      margin2,\n      imageSettings\n    );\n    return {\n      cells: cells2,\n      margin: margin2,\n      numCells: numCells2,\n      calculatedImageSettings: calculatedImageSettings2\n    };\n  }, [qrcode, size, imageSettings, includeMargin, marginSize]);\n  return {\n    qrcode,\n    margin,\n    cells,\n    numCells,\n    calculatedImageSettings\n  };\n}\nvar SUPPORTS_PATH2D = function() {\n  try {\n    new Path2D().addPath(new Path2D());\n  } catch (e) {\n    return false;\n  }\n  return true;\n}();\nvar QRCodeCanvas = React.forwardRef(\n  function QRCodeCanvas2(props, forwardedRef) {\n    const _a = props, {\n      value,\n      size = DEFAULT_SIZE,\n      level = DEFAULT_LEVEL,\n      bgColor = DEFAULT_BGCOLOR,\n      fgColor = DEFAULT_FGCOLOR,\n      includeMargin = DEFAULT_INCLUDEMARGIN,\n      minVersion = DEFAULT_MINVERSION,\n      marginSize,\n      imageSettings\n    } = _a, extraProps = __objRest(_a, [\n      \"value\",\n      \"size\",\n      \"level\",\n      \"bgColor\",\n      \"fgColor\",\n      \"includeMargin\",\n      \"minVersion\",\n      \"marginSize\",\n      \"imageSettings\"\n    ]);\n    const _b = extraProps, { style } = _b, otherProps = __objRest(_b, [\"style\"]);\n    const imgSrc = imageSettings == null ? void 0 : imageSettings.src;\n    const _canvas = React.useRef(null);\n    const _image = React.useRef(null);\n    const setCanvasRef = React.useCallback(\n      (node) => {\n        _canvas.current = node;\n        if (typeof forwardedRef === \"function\") {\n          forwardedRef(node);\n        } else if (forwardedRef) {\n          forwardedRef.current = node;\n        }\n      },\n      [forwardedRef]\n    );\n    const [isImgLoaded, setIsImageLoaded] = React.useState(false);\n    const { margin, cells, numCells, calculatedImageSettings } = useQRCode({\n      value,\n      level,\n      minVersion,\n      includeMargin,\n      marginSize,\n      imageSettings,\n      size\n    });\n    React.useEffect(() => {\n      if (_canvas.current != null) {\n        const canvas = _canvas.current;\n        const ctx = canvas.getContext(\"2d\");\n        if (!ctx) {\n          return;\n        }\n        let cellsToDraw = cells;\n        const image = _image.current;\n        const haveImageToRender = calculatedImageSettings != null && image !== null && image.complete && image.naturalHeight !== 0 && image.naturalWidth !== 0;\n        if (haveImageToRender) {\n          if (calculatedImageSettings.excavation != null) {\n            cellsToDraw = excavateModules(\n              cells,\n              calculatedImageSettings.excavation\n            );\n          }\n        }\n        const pixelRatio = window.devicePixelRatio || 1;\n        canvas.height = canvas.width = size * pixelRatio;\n        const scale = size / numCells * pixelRatio;\n        ctx.scale(scale, scale);\n        ctx.fillStyle = bgColor;\n        ctx.fillRect(0, 0, numCells, numCells);\n        ctx.fillStyle = fgColor;\n        if (SUPPORTS_PATH2D) {\n          ctx.fill(new Path2D(generatePath(cellsToDraw, margin)));\n        } else {\n          cells.forEach(function(row, rdx) {\n            row.forEach(function(cell, cdx) {\n              if (cell) {\n                ctx.fillRect(cdx + margin, rdx + margin, 1, 1);\n              }\n            });\n          });\n        }\n        if (calculatedImageSettings) {\n          ctx.globalAlpha = calculatedImageSettings.opacity;\n        }\n        if (haveImageToRender) {\n          ctx.drawImage(\n            image,\n            calculatedImageSettings.x + margin,\n            calculatedImageSettings.y + margin,\n            calculatedImageSettings.w,\n            calculatedImageSettings.h\n          );\n        }\n      }\n    });\n    React.useEffect(() => {\n      setIsImageLoaded(false);\n    }, [imgSrc]);\n    const canvasStyle = __spreadValues({ height: size, width: size }, style);\n    let img = null;\n    if (imgSrc != null) {\n      img = /* @__PURE__ */ React.createElement(\n        \"img\",\n        {\n          src: imgSrc,\n          key: imgSrc,\n          style: { display: \"none\" },\n          onLoad: () => {\n            setIsImageLoaded(true);\n          },\n          ref: _image,\n          crossOrigin: calculatedImageSettings == null ? void 0 : calculatedImageSettings.crossOrigin\n        }\n      );\n    }\n    return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\n      \"canvas\",\n      __spreadValues({\n        style: canvasStyle,\n        height: size,\n        width: size,\n        ref: setCanvasRef,\n        role: \"img\"\n      }, otherProps)\n    ), img);\n  }\n);\nQRCodeCanvas.displayName = \"QRCodeCanvas\";\nvar QRCodeSVG = React.forwardRef(\n  function QRCodeSVG2(props, forwardedRef) {\n    const _a = props, {\n      value,\n      size = DEFAULT_SIZE,\n      level = DEFAULT_LEVEL,\n      bgColor = DEFAULT_BGCOLOR,\n      fgColor = DEFAULT_FGCOLOR,\n      includeMargin = DEFAULT_INCLUDEMARGIN,\n      minVersion = DEFAULT_MINVERSION,\n      title,\n      marginSize,\n      imageSettings\n    } = _a, otherProps = __objRest(_a, [\n      \"value\",\n      \"size\",\n      \"level\",\n      \"bgColor\",\n      \"fgColor\",\n      \"includeMargin\",\n      \"minVersion\",\n      \"title\",\n      \"marginSize\",\n      \"imageSettings\"\n    ]);\n    const { margin, cells, numCells, calculatedImageSettings } = useQRCode({\n      value,\n      level,\n      minVersion,\n      includeMargin,\n      marginSize,\n      imageSettings,\n      size\n    });\n    let cellsToDraw = cells;\n    let image = null;\n    if (imageSettings != null && calculatedImageSettings != null) {\n      if (calculatedImageSettings.excavation != null) {\n        cellsToDraw = excavateModules(\n          cells,\n          calculatedImageSettings.excavation\n        );\n      }\n      image = /* @__PURE__ */ React.createElement(\n        \"image\",\n        {\n          href: imageSettings.src,\n          height: calculatedImageSettings.h,\n          width: calculatedImageSettings.w,\n          x: calculatedImageSettings.x + margin,\n          y: calculatedImageSettings.y + margin,\n          preserveAspectRatio: \"none\",\n          opacity: calculatedImageSettings.opacity,\n          crossOrigin: calculatedImageSettings.crossOrigin\n        }\n      );\n    }\n    const fgPath = generatePath(cellsToDraw, margin);\n    return /* @__PURE__ */ React.createElement(\n      \"svg\",\n      __spreadValues({\n        height: size,\n        width: size,\n        viewBox: `0 0 ${numCells} ${numCells}`,\n        ref: forwardedRef,\n        role: \"img\"\n      }, otherProps),\n      !!title && /* @__PURE__ */ React.createElement(\"title\", null, title),\n      /* @__PURE__ */ React.createElement(\n        \"path\",\n        {\n          fill: bgColor,\n          d: `M0,0 h${numCells}v${numCells}H0z`,\n          shapeRendering: \"crispEdges\"\n        }\n      ),\n      /* @__PURE__ */ React.createElement(\"path\", { fill: fgColor, d: fgPath, shapeRendering: \"crispEdges\" }),\n      image\n    );\n  }\n);\nQRCodeSVG.displayName = \"QRCodeSVG\";\nexport {\n  QRCodeCanvas,\n  QRCodeSVG\n};\n","import React, { ReactElement, ReactNode, useEffect, useRef, useState } from \"react\";\nimport { graphql, GraphQLTaggedNode, PreloadedQuery, useFragment } from \"react-relay/hooks\";\nimport { useTranslation } from \"react-i18next\";\nimport { OperationType } from \"relay-runtime\";\nimport { LuCode, LuDownload, LuLink, LuQrCode, LuRss, LuSettings, LuShare2 } from \"react-icons/lu\";\nimport { QRCodeCanvas } from \"qrcode.react\";\nimport {\n    match, unreachable, ProtoButton,\n    useColorScheme, Floating, FloatingContainer, FloatingTrigger, WithTooltip, screenWidthAtMost,\n    Card, Button,\n} from \"@opencast/appkit\";\nimport { VideoObject, WithContext } from \"schema-dts\";\n\nimport { loadQuery } from \"../relay\";\nimport { InitialLoading, RootLoader } from \"../layout/Root\";\nimport { NotFound } from \"./NotFound\";\nimport { Nav } from \"../layout/Navigation\";\nimport { WaitingPage } from \"../ui/Waiting\";\nimport { getPlayerAspectRatio, InlinePlayer } from \"../ui/player\";\nimport { SeriesBlockFromSeries } from \"../ui/Blocks/Series\";\nimport { makeRoute, MatchedRoute } from \"../rauta\";\nimport { isValidRealmPath } from \"./Realm\";\nimport { Breadcrumbs } from \"../ui/Breadcrumbs\";\nimport { PageTitle } from \"../layout/header/ui\";\nimport {\n    SyncedOpencastEntity,\n    isSynced,\n    toIsoDuration,\n    useForceRerender,\n    translatedConfig,\n    currentRef,\n    secondsToTimeString,\n    eventId,\n    keyOfId,\n    playlistId,\n} from \"../util\";\nimport { BREAKPOINT_SMALL, BREAKPOINT_MEDIUM } from \"../GlobalStyle\";\nimport { LinkButton } from \"../ui/LinkButton\";\nimport CONFIG from \"../config\";\nimport { Link, useRouter } from \"../router\";\nimport { useUser } from \"../User\";\nimport { b64regex } from \"./util\";\nimport { ErrorPage } from \"../ui/error\";\nimport { CopyableInput, InputWithCheckbox, TimeInput } from \"../ui/Input\";\nimport { VideoPageInRealmQuery } from \"./__generated__/VideoPageInRealmQuery.graphql\";\nimport {\n    VideoPageEventData$data,\n    VideoPageEventData$key,\n} from \"./__generated__/VideoPageEventData.graphql\";\nimport { VideoPageRealmData$key } from \"./__generated__/VideoPageRealmData.graphql\";\nimport { VideoPageDirectLinkQuery } from \"./__generated__/VideoPageDirectLinkQuery.graphql\";\nimport {\n    VideoPageDirectOpencastLinkQuery,\n} from \"./__generated__/VideoPageDirectOpencastLinkQuery.graphql\";\nimport { UserData$key } from \"../__generated__/UserData.graphql\";\nimport { NavigationData$key } from \"../layout/__generated__/NavigationData.graphql\";\nimport { VideoPageByOcIdInRealmQuery } from \"./__generated__/VideoPageByOcIdInRealmQuery.graphql\";\nimport {\n    PlaylistBlockPlaylistData$key,\n} from \"../ui/Blocks/__generated__/PlaylistBlockPlaylistData.graphql\";\nimport { getEventTimeInfo } from \"../util/video\";\nimport { formatDuration } from \"../ui/Video\";\nimport { ellipsisOverflowCss, focusStyle } from \"../ui\";\nimport { realmBreadcrumbs } from \"../util/realm\";\nimport { TrackInfo } from \"./manage/Video/TechnicalDetails\";\nimport { COLORS } from \"../color\";\nimport { RelativeDate } from \"../ui/time\";\nimport { Modal, ModalHandle } from \"../ui/Modal\";\nimport { PlayerContextProvider, usePlayerContext } from \"../ui/player/PlayerContext\";\nimport { CollapsibleDescription } from \"../ui/metadata\";\nimport { DirectSeriesRoute } from \"./Series\";\nimport { EmbedVideoRoute } from \"./Embed\";\nimport { ManageVideoDetailsRoute } from \"./manage/Video/Details\";\nimport { PlaylistBlockFromPlaylist } from \"../ui/Blocks/Playlist\";\n\n\n// ===========================================================================================\n// ===== Route definitions\n// ===========================================================================================\n\n/** Video in realm route: `/path/to/realm/v/<videoid>` */\nexport const VideoRoute = makeRoute({\n    url: ({ realmPath, videoID }: { realmPath: string; videoID: string }) =>\n        `${realmPath === \"/\" ? \"\" : realmPath}/v/${keyOfId(videoID)}`,\n    match: url => {\n        const params = getVideoDetailsFromUrl(url, b64regex);\n        if (params === null) {\n            return null;\n        }\n        const { realmPath, videoId, listId } = params;\n\n        const query = graphql`\n            query VideoPageInRealmQuery($id: ID!, $realmPath: String!, $listId: ID!) {\n                ... UserData\n                event: eventById(id: $id) {\n                    ... VideoPageEventData\n                    ... on AuthorizedEvent {\n                        isReferencedByRealm(path: $realmPath)\n                    }\n                }\n                realm: realmByPath(path: $realmPath) {\n                    ... VideoPageRealmData\n                    ... NavigationData\n                }\n                playlist: playlistById(id: $listId) { ...PlaylistBlockPlaylistData }\n            }\n        `;\n\n        const queryRef = loadQuery<VideoPageInRealmQuery>(query, {\n            id: eventId(videoId),\n            realmPath,\n            listId,\n        });\n\n        return {\n            render: () => <RootLoader\n                {... { query, queryRef }}\n                nav={data => data.realm ? <Nav fragRef={data.realm} /> : []}\n                render={({ event, realm, playlist }) => {\n                    if (!event) {\n                        return <NotFound kind=\"video\" />;\n                    }\n\n                    if (!realm || !event.isReferencedByRealm) {\n                        return <ForwardToDirectRoute videoId={videoId} />;\n                    }\n\n                    return <VideoPage\n                        eventRef={event}\n                        realmRef={realm}\n                        playlistRef={playlist ?? null}\n                        basePath={realmPath.replace(/\\/$/u, \"\") + \"/v\"}\n                    />;\n                }}\n            />,\n            dispose: () => queryRef.dispose(),\n        };\n    },\n});\n\n/** Video in realm route: `/path/to/realm/v/:<ocid>` */\nexport const OpencastVideoRoute = makeRoute({\n    url: ({ realmPath, ocId }: { realmPath: string; ocId: string }) =>\n        `${realmPath === \"/\" ? \"\" : realmPath}/v/:${ocId}`,\n    match: url => {\n        const params = getVideoDetailsFromUrl(url, \":([^/]+)\");\n        if (params === null) {\n            return null;\n        }\n\n        const { realmPath, videoId, listId } = params;\n        const id = videoId.substring(1);\n\n        const query = graphql`\n            query VideoPageByOcIdInRealmQuery($id: String!, $realmPath: String!, $listId: ID!) {\n                ... UserData\n                event: eventByOpencastId(id: $id) {\n                    ... VideoPageEventData\n                    ... on AuthorizedEvent {\n                        isReferencedByRealm(path: $realmPath)\n                    }\n                }\n                realm: realmByPath(path: $realmPath) {\n                    ... VideoPageRealmData\n                    ... NavigationData\n                }\n                playlist: playlistById(id: $listId) { ...PlaylistBlockPlaylistData }\n            }\n        `;\n\n        const queryRef = loadQuery<VideoPageByOcIdInRealmQuery>(query, {\n            id,\n            realmPath,\n            listId,\n        });\n\n        return {\n            render: () => <RootLoader\n                {... { query, queryRef }}\n                nav={data => data.realm ? <Nav fragRef={data.realm} /> : []}\n                render={({ event, realm, playlist }) => {\n                    if (!event) {\n                        return <NotFound kind=\"video\" />;\n                    }\n\n                    if (!realm || !event.isReferencedByRealm) {\n                        return <ForwardToDirectOcRoute ocID={id} />;\n                    }\n\n                    return <VideoPage\n                        eventRef={event}\n                        realmRef={realm}\n                        playlistRef={playlist ?? null}\n                        basePath={realmPath.replace(/\\/$/u, \"\") + \"/v\"}\n                    />;\n                }}\n            />,\n            dispose: () => queryRef.dispose(),\n        };\n    },\n});\n\ntype VideoParams = {\n    realmPath: string;\n    videoId: string;\n    listId: string;\n} | null;\n\nconst getVideoDetailsFromUrl = (url: URL, regEx: string): VideoParams => {\n    const urlPath = url.pathname.replace(/^\\/|\\/$/g, \"\");\n    const listId = makeListId(url.searchParams.get(\"list\"));\n    const parts = urlPath.split(\"/\").map(decodeURIComponent);\n    if (parts.length < 2) {\n        return null;\n    }\n    if (parts[parts.length - 2] !== \"v\") {\n        return null;\n    }\n    const videoId = parts[parts.length - 1];\n    if (!videoId.match(regEx)) {\n        return null;\n    }\n\n    const realmPathParts = parts.slice(0, parts.length - 2);\n    if (!isValidRealmPath(realmPathParts)) {\n        return null;\n    }\n\n    const realmPath = \"/\" + realmPathParts.join(\"/\");\n\n    return { realmPath, videoId, listId };\n};\n\nconst makeListId = (id: string | null) => id ? playlistId(id) : \"\";\n\nconst ForwardToDirectRoute: React.FC<{ videoId: string }> = ({ videoId }) => {\n    const router = useRouter();\n    useEffect(() => router.goto(DirectVideoRoute.url({ videoId }), true));\n    return <InitialLoading />;\n};\n\nconst ForwardToDirectOcRoute: React.FC<{ ocID: string }> = ({ ocID }) => {\n    const router = useRouter();\n    useEffect(() => router.goto(DirectOpencastVideoRoute.url({ ocID }), true));\n    return <InitialLoading />;\n};\n\n/** Direct link to video with our ID: `/!v/<videoid>` */\nexport const DirectVideoRoute = makeRoute({\n    url: (args: { videoId: string }) => `/!v/${keyOfId(args.videoId)}`,\n    match: url => {\n        const regex = new RegExp(`^/!v/(${b64regex}+)/?$`, \"u\");\n        const params = regex.exec(url.pathname);\n        if (params === null) {\n            return null;\n        }\n\n        const query = graphql`\n            query VideoPageDirectLinkQuery($id: ID!, $listId: ID!) {\n                ... UserData\n                event: eventById(id: $id) { ... VideoPageEventData }\n                realm: rootRealm {\n                    ... VideoPageRealmData\n                    ... NavigationData\n                }\n                playlist: playlistById(id: $listId) { ...PlaylistBlockPlaylistData }\n            }\n        `;\n        const videoId = decodeURIComponent(params[1]);\n        const queryRef = loadQuery<VideoPageDirectLinkQuery>(query, {\n            id: eventId(videoId),\n            listId: makeListId(url.searchParams.get(\"list\")),\n        });\n\n        return matchedDirectRoute(query, queryRef);\n    },\n});\n\n/** Direct link to video with Opencast ID: `/!v/:<ocid>` */\nexport const DirectOpencastVideoRoute = makeRoute({\n    url: (args: { ocID: string }) => `/!v/:${args.ocID}`,\n    match: url => {\n        const regex = new RegExp(\"^/!v/:([^/]+)$\", \"u\");\n        const matches = regex.exec(url.pathname);\n        if (!matches) {\n            return null;\n        }\n\n        const query = graphql`\n            query VideoPageDirectOpencastLinkQuery($id: String!, $listId: ID!) {\n                ... UserData\n                event: eventByOpencastId(id: $id) { ... VideoPageEventData }\n                realm: rootRealm {\n                    ... VideoPageRealmData\n                    ... NavigationData\n                }\n                playlist: playlistById(id: $listId) { ...PlaylistBlockPlaylistData }\n            }\n        `;\n        const videoId = decodeURIComponent(matches[1]);\n        const queryRef = loadQuery<VideoPageDirectOpencastLinkQuery>(query, {\n            id: videoId,\n            listId: makeListId(url.searchParams.get(\"list\")),\n        });\n\n        return matchedDirectRoute(query, queryRef);\n    },\n});\n\n\ninterface DirectRouteQuery extends OperationType {\n    response: UserData$key & {\n        realm: VideoPageRealmData$key & NavigationData$key;\n        event?: VideoPageEventData$key | null;\n        playlist?: PlaylistBlockPlaylistData$key | null;\n    };\n}\n\n/** Shared code of both direct routes */\nconst matchedDirectRoute = (\n    query: GraphQLTaggedNode,\n    queryRef: PreloadedQuery<DirectRouteQuery>,\n): MatchedRoute => ({\n    render: () => <RootLoader\n        {... { query, queryRef }}\n        noindex\n        nav={data => data.realm ? <Nav fragRef={data.realm} /> : []}\n        render={({ event, realm, playlist }) => !event\n            ? <NotFound kind=\"video\" />\n            : <VideoPage\n                eventRef={event}\n                realmRef={realm ?? unreachable(\"root realm doesn't exist\")}\n                playlistRef={playlist ?? null}\n                basePath=\"/!v\"\n            />}\n    />,\n    dispose: () => queryRef.dispose(),\n});\n\n\n// ===========================================================================================\n// ===== GraphQL Fragments\n// ===========================================================================================\n\nconst realmFragment = graphql`\n    fragment VideoPageRealmData on Realm {\n        name\n        path\n        isMainRoot\n        ancestors { name path }\n    }\n`;\n\nconst eventFragment = graphql`\n    fragment VideoPageEventData on Event {\n        __typename\n        ... on NotAllowed { dummy } # workaround\n        ... on AuthorizedEvent {\n            id\n            title\n            description\n            creators\n            created\n            isLive\n            opencastId\n            metadata\n            canWrite\n            syncedData {\n                updated\n                duration\n                thumbnail\n                startTime\n                endTime\n                tracks { uri flavor mimetype resolution isMaster }\n                captions { uri lang }\n                segments { uri startTime }\n            }\n            series {\n                id\n                opencastId\n                title\n                ... SeriesBlockSeriesData\n            }\n        }\n    }\n`;\n\n\n\n// ===========================================================================================\n// ===== Components\n// ===========================================================================================\n\ntype Props = {\n    eventRef: NonNullable<VideoPageEventData$key>;\n    realmRef: NonNullable<VideoPageRealmData$key>;\n    playlistRef: PlaylistBlockPlaylistData$key | null;\n    basePath: string;\n};\n\nconst VideoPage: React.FC<Props> = ({ eventRef, realmRef, playlistRef, basePath }) => {\n    const { t } = useTranslation();\n    const rerender = useForceRerender();\n    const event = useFragment(eventFragment, eventRef);\n    const realm = useFragment(realmFragment, realmRef);\n\n    if (event.__typename === \"NotAllowed\") {\n        return <ErrorPage title={t(\"api-remote-errors.view.event\")} />;\n    }\n    if (event.__typename !== \"AuthorizedEvent\") {\n        return unreachable();\n    }\n\n    if (!isSynced(event)) {\n        return <WaitingPage type=\"video\" />;\n    }\n\n    const breadcrumbs = realm.isMainRoot ? [] : realmBreadcrumbs(t, realm.ancestors.concat(realm));\n\n    const { hasStarted, hasEnded } = getEventTimeInfo(event);\n    const isCurrentlyLive = hasStarted === true && hasEnded === false;\n\n    const structuredData: WithContext<VideoObject> = {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"VideoObject\",\n        name: event.title,\n        description: event.description ?? undefined,\n        thumbnailUrl: event.syncedData.thumbnail ?? undefined,\n        uploadDate: event.created,\n        duration: toIsoDuration(event.syncedData.duration),\n        ...event.isLive && event.syncedData.startTime && event.syncedData.endTime && {\n            publication: {\n                \"@type\": \"BroadcastEvent\",\n                isLiveBroadcast: isCurrentlyLive,\n                startDate: event.syncedData.startTime,\n                endDate: event.syncedData.endTime,\n            },\n        },\n        // TODO: Provide `contentUrl` or `embedUrl`? Google docs say one should,\n        // but it's not clear what for.\n    };\n\n\n    return <>\n        <Breadcrumbs path={breadcrumbs} tail={event.title} />\n        <script type=\"application/ld+json\">{JSON.stringify(structuredData)}</script>\n        <PlayerContextProvider>\n            <InlinePlayer\n                event={event}\n                css={{ margin: \"-4px auto 0\" }}\n                onEventStateChange={rerender}\n            />\n            <Metadata id={event.id} event={event} />\n        </PlayerContextProvider>\n\n        <div css={{ height: 80 }} />\n\n        {playlistRef\n            ? <PlaylistBlockFromPlaylist\n                moreOfTitle\n                basePath={basePath}\n                fragRef={playlistRef}\n                activeEventId={event.id}\n            />\n            : event.series && <SeriesBlockFromSeries\n                basePath={basePath}\n                fragRef={event.series}\n                title={t(\"video.more-from-series\", { series: event.series.title })}\n                activeEventId={event.id}\n            />\n        }\n    </>;\n};\n\n\ntype Event = Extract<NonNullable<VideoPageEventData$data>, { __typename: \"AuthorizedEvent\" }>;\ntype SyncedEvent = SyncedOpencastEntity<Event>;\n\ntype MetadataProps = {\n    id: string;\n    event: SyncedEvent;\n};\n\nconst Metadata: React.FC<MetadataProps> = ({ id, event }) => {\n    const { t } = useTranslation();\n    const user = useUser();\n\n    const shrinkOnMobile = {\n        [screenWidthAtMost(BREAKPOINT_SMALL)]: {\n            padding: \"5px 10px\",\n            gap: 10,\n        },\n    };\n\n    return <>\n        <div css={{\n            display: \"flex\",\n            alignItems: \"center\",\n            flexWrap: \"wrap\",\n            justifyContent: \"space-between\",\n            margin: \"16px 0\",\n            gap: 8,\n        }}>\n            <div>\n                <VideoTitle title={event.title} />\n                <VideoDate {...{ event }} />\n            </div>\n            {/* Buttons */}\n            <div css={{\n                display: \"flex\",\n                gap: 8,\n                flexWrap: \"wrap\",\n                \"> button\": { ...shrinkOnMobile },\n            }}>\n                {event.canWrite && user !== \"none\" && user !== \"unknown\" && (\n                    <LinkButton to={ManageVideoDetailsRoute.url({ videoId: id })} css={{\n                        \"&:not([disabled])\": { color: COLORS.primary0 },\n                        ...shrinkOnMobile,\n                    }}>\n                        <LuSettings size={16} />\n                        {t(\"video.manage\")}\n                    </LinkButton>\n                )}\n                {CONFIG.showDownloadButton && <DownloadButton event={event} />}\n                <ShareButton {...{ event }} />\n            </div>\n        </div>\n        <div css={{\n            display: \"flex\",\n            flexWrap: \"wrap\",\n            gap: 16,\n            \"> div\": {\n                backgroundColor: COLORS.neutral10,\n                borderRadius: 8,\n                [screenWidthAtMost(BREAKPOINT_MEDIUM)]: {\n                    overflowWrap: \"anywhere\",\n                },\n            },\n        }}>\n            <CollapsibleDescription\n                type=\"video\"\n                description={event.description}\n                creators={event.creators}\n                bottomPadding={40}\n            />\n            <div css={{ flex: \"1 200px\", alignSelf: \"flex-start\", padding: \"20px 22px\" }}>\n                <MetadataTable {...{ event }} />\n            </div>\n        </div>\n    </>;\n};\n\n\nconst PopoverHeading: React.FC<React.PropsWithChildren> = ({ children }) => (\n    <strong css={{ fontSize: 18, display: \"block\", marginBottom: 16 }}>\n        {children}\n    </strong>\n);\n\nconst DownloadButton: React.FC<{ event: SyncedEvent }> = ({ event }) => {\n    const { t } = useTranslation();\n    const ref = useRef(null);\n    const isDark = useColorScheme().scheme === \"dark\";\n\n    return (\n        <FloatingContainer\n            ref={ref}\n            placement=\"top\"\n            arrowSize={12}\n            ariaRole=\"dialog\"\n            trigger=\"click\"\n            viewPortMargin={12}\n        >\n            {!event.isLive && <FloatingTrigger>\n                <Button>\n                    <LuDownload size={16}/>\n                    {t(\"video.download.title\")}\n                </Button>\n            </FloatingTrigger>}\n            <Floating\n                backgroundColor={isDark ? COLORS.neutral15 : COLORS.neutral05}\n                padding={[8, 16, 16, 16]}\n            >\n                <PopoverHeading>{t(\"video.download.title\")}</PopoverHeading>\n                <Card kind=\"info\" iconPos=\"left\" css={{ maxWidth: 400, fontSize: 14 }}>\n                    {t(\"video.download.info\")}\n                </Card>\n                <TrackInfo event={event} translateFlavors css={{ h2: { display: \"none\" } }} />\n            </Floating>\n        </FloatingContainer>\n    );\n};\n\nconst ShareButton: React.FC<{ event: SyncedEvent }> = ({ event }) => {\n    type MenuState = \"closed\" | \"main\" | \"embed\" | \"rss\";\n    /* eslint-disable react/jsx-key */\n    const entries: [Exclude<MenuState, \"closed\">, ReactElement][] = [\n        [\"main\", <LuLink />],\n        [\"embed\", <LuCode />],\n    ];\n    if (event.series) {\n        entries.push([\"rss\", <LuRss />]);\n    }\n    /* eslint-enable react/jsx-key */\n\n    const { t } = useTranslation();\n    const [menuState, setMenuState] = useState<MenuState>(\"closed\");\n    const [timestamp, setTimestamp] = useState(0);\n    const [addLinkTimestamp, setAddLinkTimestamp] = useState(false);\n    const [addEmbedTimestamp, setAddEmbedTimestamp] = useState(false);\n    const isDark = useColorScheme().scheme === \"dark\";\n    const ref = useRef(null);\n    const qrModalRef = useRef<ModalHandle>(null);\n    const { paella, playerIsLoaded } = usePlayerContext();\n\n    const timeStringPattern = /\\?t=(\\d+h)?(\\d+m)?(\\d+s)?/;\n\n    const isActive = (label: MenuState) => label === menuState;\n\n    const tabStyle = {\n        display: \"flex\",\n        flexDirection: \"column\",\n        flex: `1 calc(100% / ${entries.length})`,\n        backgroundColor: COLORS.neutral20,\n        paddingBottom: 4,\n        cursor: \"pointer\",\n        alignItems: \"center\",\n        borderRight: `1px solid ${COLORS.neutral40}`,\n        borderTop: \"none\",\n        borderBottom: `1px solid ${COLORS.neutral40}`,\n        \":is(:first-child)\": { borderTopLeftRadius: 4 },\n        \":is(:last-child)\": {\n            borderRight: \"none\",\n            borderTopRightRadius: 4,\n        },\n        \"& > svg\": {\n            width: 32,\n            height: 32,\n            color: COLORS.primary1,\n            padding: \"8px 4px 4px\",\n        },\n        \"&[disabled]\": {\n            cursor: \"default\",\n            backgroundColor: isDark ? COLORS.neutral15 : COLORS.neutral05,\n            borderBottom: \"none\",\n            svg: { color: COLORS.primary0 },\n        },\n        \":not([disabled])\": {\n            \"&:hover\": { backgroundColor: COLORS.neutral15 },\n        },\n        ...focusStyle({ inset: true }),\n\n        // By using the `has()` selector, these styles only get applied\n        // to non-firefox browsers. Once firefox supports that selector,\n        // this border radius stuff should get refactored.\n        \":has(svg)\": {\n            \"&[disabled]\": {\n                borderRight: \"none\",\n                \"+ button\": {\n                    borderLeft: `1px solid ${COLORS.neutral40}`,\n                    borderBottomLeftRadius: 4,\n                },\n            },\n            \":not([disabled]):has(+ button[disabled])\": {\n                borderBottomRightRadius: 4,\n                borderLeft: \"none\",\n            },\n        },\n    } as const;\n\n    const header = <div css={{ display: \"flex\" }}>\n        {entries.map(([label, icon]) => (\n            <ProtoButton\n                disabled={isActive(label)}\n                key={label}\n                onClick={() => setMenuState(label)}\n                css={tabStyle}\n            >\n                {icon}\n                {t(`video.share.${label}`)}\n            </ProtoButton>\n        ))}\n    </div>;\n\n    const ShowQRCodeButton: React.FC<{ target: string; label: MenuState }> = (\n        { target, label }\n    ) => <>\n        <Button\n            onClick={() => currentRef(qrModalRef).open()}\n            css={{ width: \"max-content\" }}\n        >\n            <LuQrCode />\n            {t(\"video.share.show-qr-code\")}\n        </Button>\n        <Modal\n            ref={qrModalRef}\n            title={t(\"video.share.title\", { title: label })}\n            css={{ minWidth: \"max-content\" }}\n            closeOnOutsideClick\n        >\n            <div css={{ display: \"flex\", justifyContent: \"center\" }}>\n                <QRCodeCanvas\n                    value={target}\n                    size={250}\n                    css={{\n                        margin: 16,\n                        outline: \"8px solid #FFFFFF\",\n                    }}\n                />\n            </div>\n        </Modal>\n    </>;\n\n    const inner = match(menuState, {\n        \"closed\": () => null,\n        \"main\": () => {\n            let url = window.location.href.replace(timeStringPattern, \"\");\n            url += addLinkTimestamp && timestamp\n                ? `?t=${secondsToTimeString(timestamp)}`\n                : \"\";\n\n            return <>\n                <div>\n                    <CopyableInput\n                        label={t(\"manage.my-videos.details.copy-direct-link-to-clipboard\")}\n                        css={{ fontSize: 14, width: 400, marginBottom: 6 }}\n                        value={url}\n                    />\n                    {!event.isLive && <InputWithCheckbox\n                        checkboxChecked={addLinkTimestamp}\n                        setCheckboxChecked={setAddLinkTimestamp}\n                        label={t(\"manage.my-videos.details.set-time\")}\n                        input={<TimeInput\n                            {...{ timestamp, setTimestamp }}\n                            disabled={!addLinkTimestamp}\n                        />}\n                    />}\n                </div>\n                <ShowQRCodeButton target={url} label={menuState} />\n            </>;\n        },\n        \"embed\": () => {\n            const ar = event.syncedData == null\n                ? [16, 9]\n                : getPlayerAspectRatio(event.syncedData.tracks);\n\n            const url = new URL(location.href.replace(timeStringPattern, \"\"));\n            url.search = addEmbedTimestamp && timestamp\n                ? `?t=${secondsToTimeString(timestamp)}`\n                : \"\";\n            url.pathname = EmbedVideoRoute.url({ videoId: event.id });\n\n            const embedCode = `<iframe ${[\n                'name=\"Tobira Player\"',\n                `src=\"${url}\"`,\n                \"allow=fullscreen\",\n                `style=\"${[\n                    \"border: none;\",\n                    \"width: 100%;\",\n                    `aspect-ratio: ${ar.join(\"/\")};`,\n                ].join(\" \")}\"`,\n            ].join(\" \")}></iframe>`;\n\n            return <>\n                <div>\n                    <CopyableInput\n                        label={t(\"video.embed.copy-embed-code-to-clipboard\")}\n                        value={embedCode}\n                        multiline\n                        css={{ fontSize: 14, width: 400, height: 75, marginBottom: 6 }}\n                    />\n                    {!event.isLive && <InputWithCheckbox\n                        checkboxChecked={addEmbedTimestamp}\n                        setCheckboxChecked={setAddEmbedTimestamp}\n                        label={t(\"manage.my-videos.details.set-time\")}\n                        input={<TimeInput\n                            {...{ timestamp, setTimestamp }}\n                            disabled={!addEmbedTimestamp}\n                        />}\n                    />}\n                </div>\n                <ShowQRCodeButton target={embedCode} label={menuState} />\n            </>;\n        },\n        \"rss\": () => {\n            if (event.series) {\n                const rssUrl = window.location.origin + `/~rss/series/${keyOfId(event.series.id)}`;\n                return <>\n                    <div>\n                        <CopyableInput\n                            label={t(\"video.rss.copy-link-to-clipboard\")}\n                            css={{ fontSize: 14, width: 400, marginBottom: 6 }}\n                            value={rssUrl}\n                        />\n                    </div>\n                    <ShowQRCodeButton target={rssUrl} label={menuState} />\n                </>;\n            } else {\n                return null;\n            }\n        },\n    });\n\n\n    return (\n        <FloatingContainer\n            ref={ref}\n            placement=\"top\"\n            arrowSize={12}\n            ariaRole=\"dialog\"\n            open={menuState !== \"closed\"}\n            onClose={() => setMenuState(\"closed\")}\n            viewPortMargin={12}\n        >\n            <FloatingTrigger>\n                <Button onClick={() => {\n                    setMenuState(state => state === \"closed\" ? \"main\" : \"closed\");\n                    if (playerIsLoaded) {\n                        paella.current?.player.videoContainer.currentTime().then(res => {\n                            setTimestamp(res);\n                        });\n                    }\n                }}>\n                    <LuShare2 size={16} />\n                    {t(\"general.action.share\")}\n                </Button>\n            </FloatingTrigger>\n            <Floating\n                padding={0}\n                backgroundColor={isDark ? COLORS.neutral15 : COLORS.neutral05}\n                css={{\n                    height: 240,\n                    display: \"flex\",\n                    flexDirection: \"column\",\n                }}\n            >\n                {header}\n                <div css={{\n                    margin: 16,\n                    flexGrow: 1,\n                    display: \"flex\",\n                    flexDirection: \"column\",\n                    justifyContent: \"space-between\",\n                }}>{inner}</div>\n            </Floating>\n        </FloatingContainer>\n    );\n};\n\n\n\ntype VideoTitleProps = {\n    title: string;\n};\n\nconst VideoTitle: React.FC<VideoTitleProps> = ({ title }) => (\n    <PageTitle title={title} css={{\n        marginBottom: 4,\n        fontSize: 22,\n        maxWidth: \"80ch\",\n        [screenWidthAtMost(BREAKPOINT_MEDIUM)]: { fontSize: 20 },\n        [screenWidthAtMost(BREAKPOINT_SMALL)]: { fontSize: 18 },\n        lineHeight: 1.2,\n        ...ellipsisOverflowCss(2),\n    }} />\n);\n\n\ntype VideoDateProps = {\n    event: SyncedEvent;\n};\n\nconst VideoDate: React.FC<VideoDateProps> = ({ event }) => {\n    const { t, i18n } = useTranslation();\n\n    const { created, updated, startTime, endTime, hasStarted, hasEnded } = getEventTimeInfo(event);\n\n    const fullOptions = { dateStyle: \"long\", timeStyle: \"short\" } as const;\n    const createdFull = created.toLocaleString(i18n.language, fullOptions);\n    const startFull = startTime?.toLocaleString(i18n.language, fullOptions);\n    const endFull = endTime?.toLocaleString(i18n.language, fullOptions);\n    const updatedFull = updated.getTime() - created.getTime() > 5 * 60 * 1000\n        ? updated.toLocaleString(i18n.language, fullOptions)\n        : null;\n\n    let inner;\n    let tooltip;\n    if (event.isLive && hasEnded) {\n        inner = <>\n            {t(\"video.ended\") + \": \"}\n            {endFull}\n        </>;\n    } else if (event.isLive) {\n        tooltip = <>\n            <i>{hasStarted\n                ? t(\"video.started\")\n                : t(\"video.starts\")\n            }\n            </i>: {startFull}\n            {endTime && <>\n                <br />\n                <i>{t(\"video.ends\")}</i>: {endFull}\n            </>\n            }\n            {updatedFull && <>\n                <br/>\n                <i>{t(\"video.updated\")}</i>: {updatedFull}\n            </>}\n        </>;\n\n        inner = hasStarted\n            ? <div>\n                <RelativeDate date={startTime} isLive noTooltip />\n            </div>\n            : <div>\n                {t(\"video.upcoming\") + \": \"}\n                {startFull}\n            </div>;\n    } else {\n        const createdDate = created.toLocaleDateString(i18n.language, { dateStyle: \"long\" });\n        const startedDate = startTime\n            ? startTime !== endTime\n                && startTime?.toLocaleDateString(i18n.language, { dateStyle: \"long\" })\n            : null;\n\n        tooltip = <>\n            {startedDate\n                ? <><i>{t(\"video.started\")}</i>: {startFull}</>\n                : <><i>{t(\"video.created\")}</i>: {createdFull}</>\n            }\n            {updatedFull && <>\n                <br/>\n                <i>{t(\"video.updated\")}</i>: {updatedFull}\n            </>}\n        </>;\n\n        inner = <div>{startedDate ?? createdDate}</div>;\n    }\n\n    return (\n        <div css={{\n            display: \"inline-block\",\n            position: \"relative\",\n            color: COLORS.neutral60,\n            fontSize: 14,\n        }}>\n            <WithTooltip distance={0} tooltip={tooltip}>\n                {inner}\n            </WithTooltip>\n        </div>\n    );\n};\n\ntype MetadataTableProps = {\n    event: Event;\n};\n\nconst MetadataTable = React.forwardRef<HTMLDListElement, MetadataTableProps>(({ event }, ref) => {\n    const { t, i18n } = useTranslation();\n    const pairs: [string, ReactNode][] = [];\n\n    if (event.series) {\n        pairs.push([\n            t(\"video.part-of-series\"),\n            // eslint-disable-next-line react/jsx-key\n            <Link to={DirectSeriesRoute.url({ seriesId: event.series.id })}>\n                {event.series.title}\n            </Link>,\n        ]);\n    }\n\n    if (event.metadata.dcterms.language) {\n        const languageNames = new Intl.DisplayNames(i18n.resolvedLanguage, { type: \"language\" });\n        const languages = event.metadata.dcterms.language.map(lng => languageNames.of(lng) ?? lng);\n\n        pairs.push([\n            t(\"general.language.language\", { count: languages.length }),\n            languages.join(\", \"),\n        ]);\n    }\n\n    for (const [namespace, fields] of Object.entries(CONFIG.metadataLabels)) {\n        const metadataNs = event.metadata[namespace];\n        if (metadataNs === undefined) {\n            continue;\n        }\n\n        for (const [field, label] of Object.entries(fields)) {\n            if (field in metadataNs) {\n                const translatedLabel = typeof label === \"object\"\n                    ? translatedConfig(label, i18n)\n                    : match(label, {\n                        \"builtin:license\": () => t(\"video.license\"),\n                        \"builtin:source\": () => t(\"video.source\"),\n                    });\n\n                const values = metadataNs[field].map((value, i) => <React.Fragment key={i}>\n                    {i > 0 && <br />}\n                    {isValidLink(value) ? <Link to={value}>{value}</Link> : value}\n                </React.Fragment>);\n\n                pairs.push([translatedLabel, values]);\n            }\n        }\n    }\n\n    if (event.syncedData?.duration && !event.isLive) {\n        pairs.push([\n            t(\"video.duration\"),\n            formatDuration(event.syncedData.duration),\n        ]);\n    }\n\n    return (\n        <dl ref={ref} css={{\n            display: \"grid\",\n            gridTemplateColumns: \"max-content 1fr\",\n            columnGap: 8,\n            rowGap: 6,\n            fontSize: 14,\n            lineHeight: 1.3,\n            \"& > dt::after\": {\n                content: \"':'\",\n            },\n            \"& > dd\": {\n                color: COLORS.neutral60,\n            },\n        }}>\n            {pairs.map(([label, value], i) => <React.Fragment key={i}>\n                <dt>{label}</dt>\n                <dd>{value}</dd>\n            </React.Fragment>)}\n        </dl>\n    );\n});\n\nconst isValidLink = (s: string): boolean => {\n    const trimmed = s.trim();\n    if (!(trimmed.startsWith(\"http://\") || trimmed.startsWith(\"https://\"))) {\n        return false;\n    }\n\n    try {\n        new URL(trimmed);\n    } catch (_) {\n        return false;\n    }\n\n    return true;\n};\n","/**\n * @generated SignedSource<<db91f3db4327d48442d55780b64494e0>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type AboutQuery$variables = Record<PropertyKey, never>;\nexport type AboutQuery$data = {\n  readonly realm: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"NavigationData\">;\n  };\n  readonly \" $fragmentSpreads\": FragmentRefs<\"UserData\">;\n};\nexport type AboutQuery = {\n  response: AboutQuery$data;\n  variables: AboutQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv1 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": [],\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"AboutQuery\",\n    \"selections\": [\n      {\n        \"args\": null,\n        \"kind\": \"FragmentSpread\",\n        \"name\": \"UserData\"\n      },\n      {\n        \"alias\": \"realm\",\n        \"args\": null,\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"rootRealm\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"NavigationData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": [],\n    \"kind\": \"Operation\",\n    \"name\": \"AboutQuery\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"User\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"currentUser\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"username\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"displayName\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUpload\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseStudio\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseEditor\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canCreateUserRealm\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canFindUnlisted\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"roles\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"userRole\",\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"realm\",\n        \"args\": null,\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"rootRealm\",\n        \"plural\": false,\n        \"selections\": [\n          (v0/*: any*/),\n          (v1/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"childOrder\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"isUserRoot\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"children\",\n            \"plural\": true,\n            \"selections\": [\n              (v0/*: any*/),\n              (v1/*: any*/),\n              (v2/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"parent\",\n            \"plural\": false,\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"isMainRoot\",\n                \"storageKey\": null\n              },\n              (v1/*: any*/),\n              (v2/*: any*/),\n              (v0/*: any*/)\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"0ba669796140b4d2193bc63a84b32190\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"AboutQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query AboutQuery {\\n  ...UserData\\n  realm: rootRealm {\\n    ...NavigationData\\n    id\\n  }\\n}\\n\\nfragment NavigationData on Realm {\\n  id\\n  name\\n  childOrder\\n  isUserRoot\\n  children {\\n    id\\n    name\\n    path\\n  }\\n  parent {\\n    isMainRoot\\n    name\\n    path\\n    id\\n  }\\n}\\n\\nfragment UserData on Query {\\n  currentUser {\\n    username\\n    displayName\\n    canUpload\\n    canUseStudio\\n    canUseEditor\\n    canCreateUserRealm\\n    canFindUnlisted\\n    roles\\n    userRole\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"0126decc65f6bd4822c766195ac05b22\";\n\nexport default node;\n","/**\n * @generated SignedSource<<1027487660141400620db687d79c009b>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type EmbedDirectOpencastQuery$variables = {\n  id: string;\n};\nexport type EmbedDirectOpencastQuery$data = {\n  readonly event: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"EmbedEventData\">;\n  } | null | undefined;\n};\nexport type EmbedDirectOpencastQuery = {\n  response: EmbedDirectOpencastQuery$data;\n  variables: EmbedDirectOpencastQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"id\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"id\"\n  }\n],\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv3 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"opencastId\",\n  \"storageKey\": null\n},\nv4 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"startTime\",\n  \"storageKey\": null\n},\nv6 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"uri\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"EmbedDirectOpencastQuery\",\n    \"selections\": [\n      {\n        \"alias\": \"event\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"eventByOpencastId\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"EmbedEventData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"EmbedDirectOpencastQuery\",\n    \"selections\": [\n      {\n        \"alias\": \"event\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"eventByOpencastId\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"__typename\",\n            \"storageKey\": null\n          },\n          {\n            \"kind\": \"TypeDiscriminator\",\n            \"abstractKey\": \"__isEvent\"\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"dummy\",\n                \"storageKey\": null\n              }\n            ],\n            \"type\": \"NotAllowed\",\n            \"abstractKey\": null\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              (v2/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"created\",\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"isLive\",\n                \"storageKey\": null\n              },\n              (v3/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"creators\",\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"metadata\",\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"description\",\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": \"Series\",\n                \"kind\": \"LinkedField\",\n                \"name\": \"series\",\n                \"plural\": false,\n                \"selections\": [\n                  (v2/*: any*/),\n                  (v3/*: any*/),\n                  (v4/*: any*/)\n                ],\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": \"SyncedEventData\",\n                \"kind\": \"LinkedField\",\n                \"name\": \"syncedData\",\n                \"plural\": false,\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"updated\",\n                    \"storageKey\": null\n                  },\n                  (v5/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"endTime\",\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"duration\",\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"thumbnail\",\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Track\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"tracks\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v6/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"flavor\",\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"mimetype\",\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"resolution\",\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"isMaster\",\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Caption\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"captions\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v6/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"lang\",\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Segment\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"segments\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v6/*: any*/),\n                      (v5/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"storageKey\": null\n              }\n            ],\n            \"type\": \"AuthorizedEvent\",\n            \"abstractKey\": null\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              (v4/*: any*/)\n            ],\n            \"type\": \"Node\",\n            \"abstractKey\": \"__isNode\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"2feea3f891050835d64282b4fb3e51a8\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"EmbedDirectOpencastQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query EmbedDirectOpencastQuery(\\n  $id: String!\\n) {\\n  event: eventByOpencastId(id: $id) {\\n    __typename\\n    ...EmbedEventData\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n}\\n\\nfragment EmbedEventData on Event {\\n  __isEvent: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedEvent {\\n    title\\n    created\\n    isLive\\n    opencastId\\n    creators\\n    metadata\\n    description\\n    series {\\n      title\\n      opencastId\\n      id\\n    }\\n    syncedData {\\n      updated\\n      startTime\\n      endTime\\n      duration\\n      thumbnail\\n      tracks {\\n        uri\\n        flavor\\n        mimetype\\n        resolution\\n        isMaster\\n      }\\n      captions {\\n        uri\\n        lang\\n      }\\n      segments {\\n        uri\\n        startTime\\n      }\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"fdab39eecf8e23e0b685878be5da9e4b\";\n\nexport default node;\n","/**\n * @generated SignedSource<<e0e608d7bae58b859b8ea4cdeca55fb9>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type EmbedEventData$data = {\n  readonly __typename: \"AuthorizedEvent\";\n  readonly created: string;\n  readonly creators: ReadonlyArray<string>;\n  readonly description: string | null | undefined;\n  readonly isLive: boolean;\n  readonly metadata: Record<string, Record<string, string[]>>;\n  readonly opencastId: string;\n  readonly series: {\n    readonly opencastId: string;\n    readonly title: string;\n  } | null | undefined;\n  readonly syncedData: {\n    readonly captions: ReadonlyArray<{\n      readonly lang: string | null | undefined;\n      readonly uri: string;\n    }>;\n    readonly duration: number;\n    readonly endTime: string | null | undefined;\n    readonly segments: ReadonlyArray<{\n      readonly startTime: number;\n      readonly uri: string;\n    }>;\n    readonly startTime: string | null | undefined;\n    readonly thumbnail: string | null | undefined;\n    readonly tracks: ReadonlyArray<{\n      readonly flavor: string;\n      readonly isMaster: boolean | null | undefined;\n      readonly mimetype: string | null | undefined;\n      readonly resolution: ReadonlyArray<number> | null | undefined;\n      readonly uri: string;\n    }>;\n    readonly updated: string;\n  } | null | undefined;\n  readonly title: string;\n  readonly \" $fragmentType\": \"EmbedEventData\";\n} | {\n  readonly __typename: \"NotAllowed\";\n  readonly dummy: boolean | null | undefined;\n  readonly \" $fragmentType\": \"EmbedEventData\";\n} | {\n  // This will never be '%other', but we need some\n  // value in case none of the concrete values match.\n  readonly __typename: \"%other\";\n  readonly \" $fragmentType\": \"EmbedEventData\";\n};\nexport type EmbedEventData$key = {\n  readonly \" $data\"?: EmbedEventData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"EmbedEventData\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv1 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"opencastId\",\n  \"storageKey\": null\n},\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"startTime\",\n  \"storageKey\": null\n},\nv3 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"uri\",\n  \"storageKey\": null\n};\nreturn {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"EmbedEventData\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"__typename\",\n      \"storageKey\": null\n    },\n    {\n      \"kind\": \"InlineFragment\",\n      \"selections\": [\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"dummy\",\n          \"storageKey\": null\n        }\n      ],\n      \"type\": \"NotAllowed\",\n      \"abstractKey\": null\n    },\n    {\n      \"kind\": \"InlineFragment\",\n      \"selections\": [\n        (v0/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"created\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"isLive\",\n          \"storageKey\": null\n        },\n        (v1/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"creators\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"metadata\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"description\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": \"Series\",\n          \"kind\": \"LinkedField\",\n          \"name\": \"series\",\n          \"plural\": false,\n          \"selections\": [\n            (v0/*: any*/),\n            (v1/*: any*/)\n          ],\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": \"SyncedEventData\",\n          \"kind\": \"LinkedField\",\n          \"name\": \"syncedData\",\n          \"plural\": false,\n          \"selections\": [\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"updated\",\n              \"storageKey\": null\n            },\n            (v2/*: any*/),\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"endTime\",\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"duration\",\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"thumbnail\",\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"concreteType\": \"Track\",\n              \"kind\": \"LinkedField\",\n              \"name\": \"tracks\",\n              \"plural\": true,\n              \"selections\": [\n                (v3/*: any*/),\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"kind\": \"ScalarField\",\n                  \"name\": \"flavor\",\n                  \"storageKey\": null\n                },\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"kind\": \"ScalarField\",\n                  \"name\": \"mimetype\",\n                  \"storageKey\": null\n                },\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"kind\": \"ScalarField\",\n                  \"name\": \"resolution\",\n                  \"storageKey\": null\n                },\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"kind\": \"ScalarField\",\n                  \"name\": \"isMaster\",\n                  \"storageKey\": null\n                }\n              ],\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"concreteType\": \"Caption\",\n              \"kind\": \"LinkedField\",\n              \"name\": \"captions\",\n              \"plural\": true,\n              \"selections\": [\n                (v3/*: any*/),\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"kind\": \"ScalarField\",\n                  \"name\": \"lang\",\n                  \"storageKey\": null\n                }\n              ],\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"concreteType\": \"Segment\",\n              \"kind\": \"LinkedField\",\n              \"name\": \"segments\",\n              \"plural\": true,\n              \"selections\": [\n                (v3/*: any*/),\n                (v2/*: any*/)\n              ],\n              \"storageKey\": null\n            }\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"type\": \"AuthorizedEvent\",\n      \"abstractKey\": null\n    }\n  ],\n  \"type\": \"Event\",\n  \"abstractKey\": \"__isEvent\"\n};\n})();\n\n(node as any).hash = \"a808b0ee7a86bc2932bff1a777c0ea78\";\n\nexport default node;\n","/**\n * @generated SignedSource<<19962078e16f769cd36bac4a9cbb853d>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type EmbedQuery$variables = {\n  id: string;\n};\nexport type EmbedQuery$data = {\n  readonly event: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"EmbedEventData\">;\n  } | null | undefined;\n};\nexport type EmbedQuery = {\n  response: EmbedQuery$data;\n  variables: EmbedQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"id\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"id\"\n  }\n],\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv3 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"opencastId\",\n  \"storageKey\": null\n},\nv4 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"startTime\",\n  \"storageKey\": null\n},\nv6 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"uri\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"EmbedQuery\",\n    \"selections\": [\n      {\n        \"alias\": \"event\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"eventById\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"EmbedEventData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"EmbedQuery\",\n    \"selections\": [\n      {\n        \"alias\": \"event\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"eventById\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"__typename\",\n            \"storageKey\": null\n          },\n          {\n            \"kind\": \"TypeDiscriminator\",\n            \"abstractKey\": \"__isEvent\"\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"dummy\",\n                \"storageKey\": null\n              }\n            ],\n            \"type\": \"NotAllowed\",\n            \"abstractKey\": null\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              (v2/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"created\",\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"isLive\",\n                \"storageKey\": null\n              },\n              (v3/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"creators\",\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"metadata\",\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"description\",\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": \"Series\",\n                \"kind\": \"LinkedField\",\n                \"name\": \"series\",\n                \"plural\": false,\n                \"selections\": [\n                  (v2/*: any*/),\n                  (v3/*: any*/),\n                  (v4/*: any*/)\n                ],\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": \"SyncedEventData\",\n                \"kind\": \"LinkedField\",\n                \"name\": \"syncedData\",\n                \"plural\": false,\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"updated\",\n                    \"storageKey\": null\n                  },\n                  (v5/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"endTime\",\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"duration\",\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"thumbnail\",\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Track\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"tracks\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v6/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"flavor\",\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"mimetype\",\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"resolution\",\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"isMaster\",\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Caption\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"captions\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v6/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"lang\",\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Segment\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"segments\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v6/*: any*/),\n                      (v5/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"storageKey\": null\n              }\n            ],\n            \"type\": \"AuthorizedEvent\",\n            \"abstractKey\": null\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              (v4/*: any*/)\n            ],\n            \"type\": \"Node\",\n            \"abstractKey\": \"__isNode\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"17a9f1ec5d2e6a37b32c20bc9c882866\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"EmbedQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query EmbedQuery(\\n  $id: ID!\\n) {\\n  event: eventById(id: $id) {\\n    __typename\\n    ...EmbedEventData\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n}\\n\\nfragment EmbedEventData on Event {\\n  __isEvent: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedEvent {\\n    title\\n    created\\n    isLive\\n    opencastId\\n    creators\\n    metadata\\n    description\\n    series {\\n      title\\n      opencastId\\n      id\\n    }\\n    syncedData {\\n      updated\\n      startTime\\n      endTime\\n      duration\\n      thumbnail\\n      tracks {\\n        uri\\n        flavor\\n        mimetype\\n        resolution\\n        isMaster\\n      }\\n      captions {\\n        uri\\n        lang\\n      }\\n      segments {\\n        uri\\n        startTime\\n      }\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"cc0e277720574c64438097ae29971234\";\n\nexport default node;\n","/**\n * @generated SignedSource<<cf53d38321c9484c4f46ec4c86bcfda9>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type InvalidUrlQuery$variables = Record<PropertyKey, never>;\nexport type InvalidUrlQuery$data = {\n  readonly \" $fragmentSpreads\": FragmentRefs<\"UserData\">;\n};\nexport type InvalidUrlQuery = {\n  response: InvalidUrlQuery$data;\n  variables: InvalidUrlQuery$variables;\n};\n\nconst node: ConcreteRequest = {\n  \"fragment\": {\n    \"argumentDefinitions\": [],\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"InvalidUrlQuery\",\n    \"selections\": [\n      {\n        \"args\": null,\n        \"kind\": \"FragmentSpread\",\n        \"name\": \"UserData\"\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": [],\n    \"kind\": \"Operation\",\n    \"name\": \"InvalidUrlQuery\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"User\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"currentUser\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"username\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"displayName\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUpload\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseStudio\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseEditor\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canCreateUserRealm\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canFindUnlisted\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"roles\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"userRole\",\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"435de43da3a8a472dcd823504f204a36\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"InvalidUrlQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query InvalidUrlQuery {\\n  ...UserData\\n}\\n\\nfragment UserData on Query {\\n  currentUser {\\n    username\\n    displayName\\n    canUpload\\n    canUseStudio\\n    canUseEditor\\n    canCreateUserRealm\\n    canFindUnlisted\\n    roles\\n    userRole\\n  }\\n}\\n\"\n  }\n};\n\n(node as any).hash = \"3907effa92159997b2544c73cca16082\";\n\nexport default node;\n","/**\n * @generated SignedSource<<1d0fd27bf7eb6067ba681a3437f5503c>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nexport type LoginQuery$variables = Record<PropertyKey, never>;\nexport type LoginQuery$data = {\n  readonly currentUser: {\n    readonly displayName: string;\n    readonly username: string;\n  } | null | undefined;\n};\nexport type LoginQuery = {\n  response: LoginQuery$data;\n  variables: LoginQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"concreteType\": \"User\",\n    \"kind\": \"LinkedField\",\n    \"name\": \"currentUser\",\n    \"plural\": false,\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"kind\": \"ScalarField\",\n        \"name\": \"username\",\n        \"storageKey\": null\n      },\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"kind\": \"ScalarField\",\n        \"name\": \"displayName\",\n        \"storageKey\": null\n      }\n    ],\n    \"storageKey\": null\n  }\n];\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": [],\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"LoginQuery\",\n    \"selections\": (v0/*: any*/),\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": [],\n    \"kind\": \"Operation\",\n    \"name\": \"LoginQuery\",\n    \"selections\": (v0/*: any*/)\n  },\n  \"params\": {\n    \"cacheID\": \"25bcc7d7e76a5c246c23c58f4898b1a7\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"LoginQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query LoginQuery {\\n  currentUser {\\n    username\\n    displayName\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"16e87eea3192e86c6167e207f6c7923b\";\n\nexport default node;\n","/**\n * @generated SignedSource<<7bf6c7b751409de4f05b95211fdafa0b>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type NotFoundQuery$variables = Record<PropertyKey, never>;\nexport type NotFoundQuery$data = {\n  readonly \" $fragmentSpreads\": FragmentRefs<\"UserData\">;\n};\nexport type NotFoundQuery = {\n  response: NotFoundQuery$data;\n  variables: NotFoundQuery$variables;\n};\n\nconst node: ConcreteRequest = {\n  \"fragment\": {\n    \"argumentDefinitions\": [],\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"NotFoundQuery\",\n    \"selections\": [\n      {\n        \"args\": null,\n        \"kind\": \"FragmentSpread\",\n        \"name\": \"UserData\"\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": [],\n    \"kind\": \"Operation\",\n    \"name\": \"NotFoundQuery\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"User\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"currentUser\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"username\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"displayName\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUpload\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseStudio\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseEditor\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canCreateUserRealm\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canFindUnlisted\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"roles\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"userRole\",\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"30e153aa7542f2430f5f1487a926f85a\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"NotFoundQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query NotFoundQuery {\\n  ...UserData\\n}\\n\\nfragment UserData on Query {\\n  currentUser {\\n    username\\n    displayName\\n    canUpload\\n    canUseStudio\\n    canUseEditor\\n    canCreateUserRealm\\n    canFindUnlisted\\n    roles\\n    userRole\\n  }\\n}\\n\"\n  }\n};\n\n(node as any).hash = \"c8372b9ff304a11a06c19ee08f6507f9\";\n\nexport default node;\n","/**\n * @generated SignedSource<<6a57ed9f58b1d503df51d7349edf37f3>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type PlaylistByIdQuery$variables = {\n  id: string;\n};\nexport type PlaylistByIdQuery$data = {\n  readonly playlist: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"PlaylistRouteData\">;\n  } | null | undefined;\n  readonly rootRealm: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"NavigationData\">;\n  };\n  readonly \" $fragmentSpreads\": FragmentRefs<\"UserData\">;\n};\nexport type PlaylistByIdQuery = {\n  response: PlaylistByIdQuery$data;\n  variables: PlaylistByIdQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"id\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"id\"\n  }\n],\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv3 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"dummy\",\n    \"storageKey\": null\n  }\n],\nv4 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": (v3/*: any*/),\n  \"type\": \"NotAllowed\",\n  \"abstractKey\": null\n},\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv6 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv7 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n},\nv8 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv9 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"PlaylistByIdQuery\",\n    \"selections\": [\n      {\n        \"args\": null,\n        \"kind\": \"FragmentSpread\",\n        \"name\": \"UserData\"\n      },\n      {\n        \"alias\": \"playlist\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"playlistById\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"PlaylistRouteData\"\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"rootRealm\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"NavigationData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"PlaylistByIdQuery\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"User\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"currentUser\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"username\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"displayName\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUpload\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseStudio\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseEditor\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canCreateUserRealm\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canFindUnlisted\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"roles\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"userRole\",\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"playlist\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"playlistById\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/),\n          {\n            \"kind\": \"TypeDiscriminator\",\n            \"abstractKey\": \"__isPlaylist\"\n          },\n          (v4/*: any*/),\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              (v5/*: any*/),\n              (v6/*: any*/),\n              (v7/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": null,\n                \"kind\": \"LinkedField\",\n                \"name\": \"entries\",\n                \"plural\": true,\n                \"selections\": [\n                  (v2/*: any*/),\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": [\n                      (v5/*: any*/),\n                      (v6/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"created\",\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"creators\",\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"isLive\",\n                        \"storageKey\": null\n                      },\n                      (v7/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"Series\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"series\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v6/*: any*/),\n                          (v5/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"SyncedEventData\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"syncedData\",\n                        \"plural\": false,\n                        \"selections\": [\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"kind\": \"ScalarField\",\n                            \"name\": \"duration\",\n                            \"storageKey\": null\n                          },\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"kind\": \"ScalarField\",\n                            \"name\": \"thumbnail\",\n                            \"storageKey\": null\n                          },\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"kind\": \"ScalarField\",\n                            \"name\": \"startTime\",\n                            \"storageKey\": null\n                          },\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"kind\": \"ScalarField\",\n                            \"name\": \"endTime\",\n                            \"storageKey\": null\n                          },\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Track\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"tracks\",\n                            \"plural\": true,\n                            \"selections\": [\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"resolution\",\n                                \"storageKey\": null\n                              }\n                            ],\n                            \"storageKey\": null\n                          }\n                        ],\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"type\": \"AuthorizedEvent\",\n                    \"abstractKey\": null\n                  },\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": (v3/*: any*/),\n                    \"type\": \"Missing\",\n                    \"abstractKey\": null\n                  },\n                  (v4/*: any*/),\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": [\n                      (v5/*: any*/)\n                    ],\n                    \"type\": \"Node\",\n                    \"abstractKey\": \"__isNode\"\n                  }\n                ],\n                \"storageKey\": null\n              }\n            ],\n            \"type\": \"AuthorizedPlaylist\",\n            \"abstractKey\": null\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"rootRealm\",\n        \"plural\": false,\n        \"selections\": [\n          (v5/*: any*/),\n          (v8/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"childOrder\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"isUserRoot\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"children\",\n            \"plural\": true,\n            \"selections\": [\n              (v5/*: any*/),\n              (v8/*: any*/),\n              (v9/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"parent\",\n            \"plural\": false,\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"isMainRoot\",\n                \"storageKey\": null\n              },\n              (v8/*: any*/),\n              (v9/*: any*/),\n              (v5/*: any*/)\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"101704ea31308a65235b4e14323c8ad3\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"PlaylistByIdQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query PlaylistByIdQuery(\\n  $id: ID!\\n) {\\n  ...UserData\\n  playlist: playlistById(id: $id) {\\n    __typename\\n    ...PlaylistRouteData\\n    ... on AuthorizedPlaylist {\\n      id\\n    }\\n  }\\n  rootRealm {\\n    ...NavigationData\\n    id\\n  }\\n}\\n\\nfragment NavigationData on Realm {\\n  id\\n  name\\n  childOrder\\n  isUserRoot\\n  children {\\n    id\\n    name\\n    path\\n  }\\n  parent {\\n    isMainRoot\\n    name\\n    path\\n    id\\n  }\\n}\\n\\nfragment PlaylistBlockPlaylistData on Playlist {\\n  __isPlaylist: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedPlaylist {\\n    id\\n    title\\n    description\\n    entries {\\n      __typename\\n      ... on AuthorizedEvent {\\n        id\\n        ...VideoListEventData\\n      }\\n      ... on Missing {\\n        dummy\\n      }\\n      ... on NotAllowed {\\n        dummy\\n      }\\n      ... on Node {\\n        __isNode: __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment PlaylistRouteData on Playlist {\\n  __isPlaylist: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedPlaylist {\\n    id\\n    title\\n    description\\n    entries {\\n      __typename\\n      ... on AuthorizedEvent {\\n        id\\n        ...VideoListEventData\\n      }\\n      ... on Missing {\\n        dummy\\n      }\\n      ... on NotAllowed {\\n        dummy\\n      }\\n      ... on Node {\\n        __isNode: __typename\\n        id\\n      }\\n    }\\n  }\\n  ...PlaylistBlockPlaylistData\\n}\\n\\nfragment UserData on Query {\\n  currentUser {\\n    username\\n    displayName\\n    canUpload\\n    canUseStudio\\n    canUseEditor\\n    canCreateUserRealm\\n    canFindUnlisted\\n    roles\\n    userRole\\n  }\\n}\\n\\nfragment VideoListEventData on AuthorizedEvent {\\n  id\\n  title\\n  created\\n  creators\\n  isLive\\n  description\\n  series {\\n    title\\n    id\\n  }\\n  syncedData {\\n    duration\\n    thumbnail\\n    startTime\\n    endTime\\n    tracks {\\n      resolution\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"82001ce96bcc8621d4ee40e4e119659c\";\n\nexport default node;\n","/**\n * @generated SignedSource<<d942b4a7a5395be10bc9c84362356138>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type PlaylistByOpencastIdQuery$variables = {\n  id: string;\n};\nexport type PlaylistByOpencastIdQuery$data = {\n  readonly playlist: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"PlaylistRouteData\">;\n  } | null | undefined;\n  readonly rootRealm: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"NavigationData\">;\n  };\n  readonly \" $fragmentSpreads\": FragmentRefs<\"UserData\">;\n};\nexport type PlaylistByOpencastIdQuery = {\n  response: PlaylistByOpencastIdQuery$data;\n  variables: PlaylistByOpencastIdQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"id\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"id\"\n  }\n],\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv3 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"dummy\",\n    \"storageKey\": null\n  }\n],\nv4 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": (v3/*: any*/),\n  \"type\": \"NotAllowed\",\n  \"abstractKey\": null\n},\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv6 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv7 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n},\nv8 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv9 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"PlaylistByOpencastIdQuery\",\n    \"selections\": [\n      {\n        \"args\": null,\n        \"kind\": \"FragmentSpread\",\n        \"name\": \"UserData\"\n      },\n      {\n        \"alias\": \"playlist\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"playlistByOpencastId\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"PlaylistRouteData\"\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"rootRealm\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"NavigationData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"PlaylistByOpencastIdQuery\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"User\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"currentUser\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"username\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"displayName\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUpload\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseStudio\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseEditor\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canCreateUserRealm\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canFindUnlisted\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"roles\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"userRole\",\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"playlist\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"playlistByOpencastId\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/),\n          {\n            \"kind\": \"TypeDiscriminator\",\n            \"abstractKey\": \"__isPlaylist\"\n          },\n          (v4/*: any*/),\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              (v5/*: any*/),\n              (v6/*: any*/),\n              (v7/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": null,\n                \"kind\": \"LinkedField\",\n                \"name\": \"entries\",\n                \"plural\": true,\n                \"selections\": [\n                  (v2/*: any*/),\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": [\n                      (v5/*: any*/),\n                      (v6/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"created\",\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"creators\",\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"isLive\",\n                        \"storageKey\": null\n                      },\n                      (v7/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"Series\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"series\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v6/*: any*/),\n                          (v5/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"SyncedEventData\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"syncedData\",\n                        \"plural\": false,\n                        \"selections\": [\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"kind\": \"ScalarField\",\n                            \"name\": \"duration\",\n                            \"storageKey\": null\n                          },\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"kind\": \"ScalarField\",\n                            \"name\": \"thumbnail\",\n                            \"storageKey\": null\n                          },\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"kind\": \"ScalarField\",\n                            \"name\": \"startTime\",\n                            \"storageKey\": null\n                          },\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"kind\": \"ScalarField\",\n                            \"name\": \"endTime\",\n                            \"storageKey\": null\n                          },\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Track\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"tracks\",\n                            \"plural\": true,\n                            \"selections\": [\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"resolution\",\n                                \"storageKey\": null\n                              }\n                            ],\n                            \"storageKey\": null\n                          }\n                        ],\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"type\": \"AuthorizedEvent\",\n                    \"abstractKey\": null\n                  },\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": (v3/*: any*/),\n                    \"type\": \"Missing\",\n                    \"abstractKey\": null\n                  },\n                  (v4/*: any*/),\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": [\n                      (v5/*: any*/)\n                    ],\n                    \"type\": \"Node\",\n                    \"abstractKey\": \"__isNode\"\n                  }\n                ],\n                \"storageKey\": null\n              }\n            ],\n            \"type\": \"AuthorizedPlaylist\",\n            \"abstractKey\": null\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"rootRealm\",\n        \"plural\": false,\n        \"selections\": [\n          (v5/*: any*/),\n          (v8/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"childOrder\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"isUserRoot\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"children\",\n            \"plural\": true,\n            \"selections\": [\n              (v5/*: any*/),\n              (v8/*: any*/),\n              (v9/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"parent\",\n            \"plural\": false,\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"isMainRoot\",\n                \"storageKey\": null\n              },\n              (v8/*: any*/),\n              (v9/*: any*/),\n              (v5/*: any*/)\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"5a9947c22d667fd4a2dd76f5bfe27a9c\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"PlaylistByOpencastIdQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query PlaylistByOpencastIdQuery(\\n  $id: String!\\n) {\\n  ...UserData\\n  playlist: playlistByOpencastId(id: $id) {\\n    __typename\\n    ...PlaylistRouteData\\n    ... on AuthorizedPlaylist {\\n      id\\n    }\\n  }\\n  rootRealm {\\n    ...NavigationData\\n    id\\n  }\\n}\\n\\nfragment NavigationData on Realm {\\n  id\\n  name\\n  childOrder\\n  isUserRoot\\n  children {\\n    id\\n    name\\n    path\\n  }\\n  parent {\\n    isMainRoot\\n    name\\n    path\\n    id\\n  }\\n}\\n\\nfragment PlaylistBlockPlaylistData on Playlist {\\n  __isPlaylist: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedPlaylist {\\n    id\\n    title\\n    description\\n    entries {\\n      __typename\\n      ... on AuthorizedEvent {\\n        id\\n        ...VideoListEventData\\n      }\\n      ... on Missing {\\n        dummy\\n      }\\n      ... on NotAllowed {\\n        dummy\\n      }\\n      ... on Node {\\n        __isNode: __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment PlaylistRouteData on Playlist {\\n  __isPlaylist: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedPlaylist {\\n    id\\n    title\\n    description\\n    entries {\\n      __typename\\n      ... on AuthorizedEvent {\\n        id\\n        ...VideoListEventData\\n      }\\n      ... on Missing {\\n        dummy\\n      }\\n      ... on NotAllowed {\\n        dummy\\n      }\\n      ... on Node {\\n        __isNode: __typename\\n        id\\n      }\\n    }\\n  }\\n  ...PlaylistBlockPlaylistData\\n}\\n\\nfragment UserData on Query {\\n  currentUser {\\n    username\\n    displayName\\n    canUpload\\n    canUseStudio\\n    canUseEditor\\n    canCreateUserRealm\\n    canFindUnlisted\\n    roles\\n    userRole\\n  }\\n}\\n\\nfragment VideoListEventData on AuthorizedEvent {\\n  id\\n  title\\n  created\\n  creators\\n  isLive\\n  description\\n  series {\\n    title\\n    id\\n  }\\n  syncedData {\\n    duration\\n    thumbnail\\n    startTime\\n    endTime\\n    tracks {\\n      resolution\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"1bf1c16b50afb4db20ca276304dd007b\";\n\nexport default node;\n","/**\n * @generated SignedSource<<febbd245cbaec635b0aae92adc37d134>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type PlaylistRouteData$data = {\n  readonly __typename: string;\n  readonly description?: string | null | undefined;\n  readonly dummy?: boolean | null | undefined;\n  readonly entries?: ReadonlyArray<{\n    readonly __typename: \"AuthorizedEvent\";\n    readonly id: string;\n    readonly \" $fragmentSpreads\": FragmentRefs<\"VideoListEventData\">;\n  } | {\n    readonly __typename: \"Missing\";\n    readonly dummy: boolean | null | undefined;\n  } | {\n    readonly __typename: \"NotAllowed\";\n    readonly dummy: boolean | null | undefined;\n  } | {\n    // This will never be '%other', but we need some\n    // value in case none of the concrete values match.\n    readonly __typename: \"%other\";\n  }>;\n  readonly id?: string;\n  readonly title?: string;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"PlaylistBlockPlaylistData\">;\n  readonly \" $fragmentType\": \"PlaylistRouteData\";\n};\nexport type PlaylistRouteData$key = {\n  readonly \" $data\"?: PlaylistRouteData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"PlaylistRouteData\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv1 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"dummy\",\n    \"storageKey\": null\n  }\n],\nv2 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": (v1/*: any*/),\n  \"type\": \"NotAllowed\",\n  \"abstractKey\": null\n},\nv3 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv4 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n};\nreturn {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"PlaylistRouteData\",\n  \"selections\": [\n    (v0/*: any*/),\n    (v2/*: any*/),\n    {\n      \"kind\": \"InlineFragment\",\n      \"selections\": [\n        (v3/*: any*/),\n        (v4/*: any*/),\n        (v5/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": null,\n          \"kind\": \"LinkedField\",\n          \"name\": \"entries\",\n          \"plural\": true,\n          \"selections\": [\n            (v0/*: any*/),\n            {\n              \"kind\": \"InlineFragment\",\n              \"selections\": [\n                (v3/*: any*/),\n                {\n                  \"kind\": \"InlineDataFragmentSpread\",\n                  \"name\": \"VideoListEventData\",\n                  \"selections\": [\n                    (v3/*: any*/),\n                    (v4/*: any*/),\n                    {\n                      \"alias\": null,\n                      \"args\": null,\n                      \"kind\": \"ScalarField\",\n                      \"name\": \"created\",\n                      \"storageKey\": null\n                    },\n                    {\n                      \"alias\": null,\n                      \"args\": null,\n                      \"kind\": \"ScalarField\",\n                      \"name\": \"creators\",\n                      \"storageKey\": null\n                    },\n                    {\n                      \"alias\": null,\n                      \"args\": null,\n                      \"kind\": \"ScalarField\",\n                      \"name\": \"isLive\",\n                      \"storageKey\": null\n                    },\n                    (v5/*: any*/),\n                    {\n                      \"alias\": null,\n                      \"args\": null,\n                      \"concreteType\": \"Series\",\n                      \"kind\": \"LinkedField\",\n                      \"name\": \"series\",\n                      \"plural\": false,\n                      \"selections\": [\n                        (v4/*: any*/),\n                        (v3/*: any*/)\n                      ],\n                      \"storageKey\": null\n                    },\n                    {\n                      \"alias\": null,\n                      \"args\": null,\n                      \"concreteType\": \"SyncedEventData\",\n                      \"kind\": \"LinkedField\",\n                      \"name\": \"syncedData\",\n                      \"plural\": false,\n                      \"selections\": [\n                        {\n                          \"alias\": null,\n                          \"args\": null,\n                          \"kind\": \"ScalarField\",\n                          \"name\": \"duration\",\n                          \"storageKey\": null\n                        },\n                        {\n                          \"alias\": null,\n                          \"args\": null,\n                          \"kind\": \"ScalarField\",\n                          \"name\": \"thumbnail\",\n                          \"storageKey\": null\n                        },\n                        {\n                          \"alias\": null,\n                          \"args\": null,\n                          \"kind\": \"ScalarField\",\n                          \"name\": \"startTime\",\n                          \"storageKey\": null\n                        },\n                        {\n                          \"alias\": null,\n                          \"args\": null,\n                          \"kind\": \"ScalarField\",\n                          \"name\": \"endTime\",\n                          \"storageKey\": null\n                        },\n                        {\n                          \"alias\": null,\n                          \"args\": null,\n                          \"concreteType\": \"Track\",\n                          \"kind\": \"LinkedField\",\n                          \"name\": \"tracks\",\n                          \"plural\": true,\n                          \"selections\": [\n                            {\n                              \"alias\": null,\n                              \"args\": null,\n                              \"kind\": \"ScalarField\",\n                              \"name\": \"resolution\",\n                              \"storageKey\": null\n                            }\n                          ],\n                          \"storageKey\": null\n                        }\n                      ],\n                      \"storageKey\": null\n                    }\n                  ],\n                  \"args\": null,\n                  \"argumentDefinitions\": []\n                }\n              ],\n              \"type\": \"AuthorizedEvent\",\n              \"abstractKey\": null\n            },\n            {\n              \"kind\": \"InlineFragment\",\n              \"selections\": (v1/*: any*/),\n              \"type\": \"Missing\",\n              \"abstractKey\": null\n            },\n            (v2/*: any*/)\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"type\": \"AuthorizedPlaylist\",\n      \"abstractKey\": null\n    },\n    {\n      \"args\": null,\n      \"kind\": \"FragmentSpread\",\n      \"name\": \"PlaylistBlockPlaylistData\"\n    }\n  ],\n  \"type\": \"Playlist\",\n  \"abstractKey\": \"__isPlaylist\"\n};\n})();\n\n(node as any).hash = \"93e709d31dfb5a272c191a78cc786288\";\n\nexport default node;\n","/**\n * @generated SignedSource<<a0906d222b0f430f2276156728f3bd48>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nexport type RealmCreateForUserMutation$variables = Record<PropertyKey, never>;\nexport type RealmCreateForUserMutation$data = {\n  readonly createMyUserRealm: {\n    readonly id: string;\n    readonly path: string;\n  };\n};\nexport type RealmCreateForUserMutation = {\n  response: RealmCreateForUserMutation$data;\n  variables: RealmCreateForUserMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"concreteType\": \"Realm\",\n    \"kind\": \"LinkedField\",\n    \"name\": \"createMyUserRealm\",\n    \"plural\": false,\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"kind\": \"ScalarField\",\n        \"name\": \"id\",\n        \"storageKey\": null\n      },\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"kind\": \"ScalarField\",\n        \"name\": \"path\",\n        \"storageKey\": null\n      }\n    ],\n    \"storageKey\": null\n  }\n];\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": [],\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"RealmCreateForUserMutation\",\n    \"selections\": (v0/*: any*/),\n    \"type\": \"Mutation\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": [],\n    \"kind\": \"Operation\",\n    \"name\": \"RealmCreateForUserMutation\",\n    \"selections\": (v0/*: any*/)\n  },\n  \"params\": {\n    \"cacheID\": \"19bc125bacf9d9f0aed6e29f33313022\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"RealmCreateForUserMutation\",\n    \"operationKind\": \"mutation\",\n    \"text\": \"mutation RealmCreateForUserMutation {\\n  createMyUserRealm {\\n    id\\n    path\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"125da117209d1d26dc7a0a74f2581d92\";\n\nexport default node;\n","/**\n * @generated SignedSource<<894cb0ba36290e829025de6d9e59de9a>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type RealmQuery$variables = {\n  path: string;\n};\nexport type RealmQuery$data = {\n  readonly currentUser: {\n    readonly canCreateUserRealm: boolean;\n    readonly username: string;\n  } | null | undefined;\n  readonly realm: {\n    readonly ancestors: ReadonlyArray<{\n      readonly name: string | null | undefined;\n      readonly ownerDisplayName: string | null | undefined;\n      readonly path: string;\n    }>;\n    readonly blocks: ReadonlyArray<{\n      readonly id: string;\n    }>;\n    readonly canCurrentUserModerate: boolean;\n    readonly children: ReadonlyArray<{\n      readonly id: string;\n    }>;\n    readonly id: string;\n    readonly isMainRoot: boolean;\n    readonly isUserRealm: boolean;\n    readonly name: string | null | undefined;\n    readonly ownerDisplayName: string | null | undefined;\n    readonly parent: {\n      readonly id: string;\n    } | null | undefined;\n    readonly path: string;\n    readonly \" $fragmentSpreads\": FragmentRefs<\"BlocksData\" | \"NavigationData\">;\n  } | null | undefined;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"UserData\">;\n};\nexport type RealmQuery = {\n  response: RealmQuery$data;\n  variables: RealmQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"path\"\n  }\n],\nv1 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"username\",\n  \"storageKey\": null\n},\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"canCreateUserRealm\",\n  \"storageKey\": null\n},\nv3 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"path\",\n    \"variableName\": \"path\"\n  }\n],\nv4 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv6 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n},\nv7 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isMainRoot\",\n  \"storageKey\": null\n},\nv8 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isUserRealm\",\n  \"storageKey\": null\n},\nv9 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"ownerDisplayName\",\n  \"storageKey\": null\n},\nv10 = [\n  (v4/*: any*/)\n],\nv11 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"canCurrentUserModerate\",\n  \"storageKey\": null\n},\nv12 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv13 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"content\",\n    \"storageKey\": null\n  }\n],\nv14 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv15 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n},\nv16 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"created\",\n  \"storageKey\": null\n},\nv17 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"creators\",\n  \"storageKey\": null\n},\nv18 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isLive\",\n  \"storageKey\": null\n},\nv19 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"duration\",\n  \"storageKey\": null\n},\nv20 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"thumbnail\",\n  \"storageKey\": null\n},\nv21 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"startTime\",\n  \"storageKey\": null\n},\nv22 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"endTime\",\n  \"storageKey\": null\n},\nv23 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"resolution\",\n  \"storageKey\": null\n},\nv24 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v4/*: any*/),\n    (v14/*: any*/),\n    (v16/*: any*/),\n    (v17/*: any*/),\n    (v18/*: any*/),\n    (v15/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Series\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"series\",\n      \"plural\": false,\n      \"selections\": [\n        (v14/*: any*/),\n        (v4/*: any*/)\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"SyncedEventData\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"syncedData\",\n      \"plural\": false,\n      \"selections\": [\n        (v19/*: any*/),\n        (v20/*: any*/),\n        (v21/*: any*/),\n        (v22/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": \"Track\",\n          \"kind\": \"LinkedField\",\n          \"name\": \"tracks\",\n          \"plural\": true,\n          \"selections\": [\n            (v23/*: any*/)\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"AuthorizedEvent\",\n  \"abstractKey\": null\n},\nv25 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"dummy\",\n    \"storageKey\": null\n  }\n],\nv26 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": (v25/*: any*/),\n  \"type\": \"NotAllowed\",\n  \"abstractKey\": null\n},\nv27 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": (v10/*: any*/),\n  \"type\": \"Node\",\n  \"abstractKey\": \"__isNode\"\n},\nv28 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showTitle\",\n  \"storageKey\": null\n},\nv29 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showMetadata\",\n  \"storageKey\": null\n},\nv30 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"order\",\n  \"storageKey\": null\n},\nv31 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"layout\",\n  \"storageKey\": null\n},\nv32 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"opencastId\",\n  \"storageKey\": null\n},\nv33 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"uri\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"RealmQuery\",\n    \"selections\": [\n      {\n        \"args\": null,\n        \"kind\": \"FragmentSpread\",\n        \"name\": \"UserData\"\n      },\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"User\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"currentUser\",\n        \"plural\": false,\n        \"selections\": [\n          (v1/*: any*/),\n          (v2/*: any*/)\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"realm\",\n        \"args\": (v3/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"realmByPath\",\n        \"plural\": false,\n        \"selections\": [\n          (v4/*: any*/),\n          (v5/*: any*/),\n          (v6/*: any*/),\n          (v7/*: any*/),\n          (v8/*: any*/),\n          (v9/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"children\",\n            \"plural\": true,\n            \"selections\": (v10/*: any*/),\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": null,\n            \"kind\": \"LinkedField\",\n            \"name\": \"blocks\",\n            \"plural\": true,\n            \"selections\": (v10/*: any*/),\n            \"storageKey\": null\n          },\n          (v11/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"ancestors\",\n            \"plural\": true,\n            \"selections\": [\n              (v5/*: any*/),\n              (v6/*: any*/),\n              (v9/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"parent\",\n            \"plural\": false,\n            \"selections\": (v10/*: any*/),\n            \"storageKey\": null\n          },\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"BlocksData\"\n          },\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"NavigationData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"RealmQuery\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"User\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"currentUser\",\n        \"plural\": false,\n        \"selections\": [\n          (v1/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"displayName\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUpload\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseStudio\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseEditor\",\n            \"storageKey\": null\n          },\n          (v2/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canFindUnlisted\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"roles\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"userRole\",\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"realm\",\n        \"args\": (v3/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"realmByPath\",\n        \"plural\": false,\n        \"selections\": [\n          (v4/*: any*/),\n          (v5/*: any*/),\n          (v6/*: any*/),\n          (v7/*: any*/),\n          (v8/*: any*/),\n          (v9/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"children\",\n            \"plural\": true,\n            \"selections\": [\n              (v4/*: any*/),\n              (v5/*: any*/),\n              (v6/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": null,\n            \"kind\": \"LinkedField\",\n            \"name\": \"blocks\",\n            \"plural\": true,\n            \"selections\": [\n              (v12/*: any*/),\n              (v4/*: any*/),\n              {\n                \"kind\": \"TypeDiscriminator\",\n                \"abstractKey\": \"__isBlock\"\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": (v13/*: any*/),\n                \"type\": \"TitleBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": (v13/*: any*/),\n                \"type\": \"TextBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Series\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"series\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v14/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"SyncedSeriesData\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"syncedData\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v15/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": null,\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"entries\",\n                        \"plural\": true,\n                        \"selections\": [\n                          (v12/*: any*/),\n                          (v24/*: any*/),\n                          (v26/*: any*/),\n                          (v27/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      },\n                      (v4/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v28/*: any*/),\n                  (v29/*: any*/),\n                  (v30/*: any*/),\n                  (v31/*: any*/)\n                ],\n                \"type\": \"SeriesBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"event\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v12/*: any*/),\n                      (v26/*: any*/),\n                      {\n                        \"kind\": \"InlineFragment\",\n                        \"selections\": [\n                          (v4/*: any*/),\n                          (v14/*: any*/),\n                          (v18/*: any*/),\n                          (v32/*: any*/),\n                          (v16/*: any*/),\n                          (v17/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"kind\": \"ScalarField\",\n                            \"name\": \"metadata\",\n                            \"storageKey\": null\n                          },\n                          (v15/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Series\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"series\",\n                            \"plural\": false,\n                            \"selections\": [\n                              (v14/*: any*/),\n                              (v32/*: any*/),\n                              (v4/*: any*/)\n                            ],\n                            \"storageKey\": null\n                          },\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"SyncedEventData\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"syncedData\",\n                            \"plural\": false,\n                            \"selections\": [\n                              (v19/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"updated\",\n                                \"storageKey\": null\n                              },\n                              (v21/*: any*/),\n                              (v22/*: any*/),\n                              (v20/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Track\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"tracks\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v33/*: any*/),\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"flavor\",\n                                    \"storageKey\": null\n                                  },\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"mimetype\",\n                                    \"storageKey\": null\n                                  },\n                                  (v23/*: any*/),\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"isMaster\",\n                                    \"storageKey\": null\n                                  }\n                                ],\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Caption\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"captions\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v33/*: any*/),\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"lang\",\n                                    \"storageKey\": null\n                                  }\n                                ],\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Segment\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"segments\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v33/*: any*/),\n                                  (v21/*: any*/)\n                                ],\n                                \"storageKey\": null\n                              }\n                            ],\n                            \"storageKey\": null\n                          }\n                        ],\n                        \"type\": \"AuthorizedEvent\",\n                        \"abstractKey\": null\n                      },\n                      (v27/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v28/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"showLink\",\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"VideoBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"playlist\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v12/*: any*/),\n                      {\n                        \"kind\": \"TypeDiscriminator\",\n                        \"abstractKey\": \"__isPlaylist\"\n                      },\n                      (v26/*: any*/),\n                      {\n                        \"kind\": \"InlineFragment\",\n                        \"selections\": [\n                          (v4/*: any*/),\n                          (v14/*: any*/),\n                          (v15/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": null,\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"entries\",\n                            \"plural\": true,\n                            \"selections\": [\n                              (v12/*: any*/),\n                              (v24/*: any*/),\n                              {\n                                \"kind\": \"InlineFragment\",\n                                \"selections\": (v25/*: any*/),\n                                \"type\": \"Missing\",\n                                \"abstractKey\": null\n                              },\n                              (v26/*: any*/),\n                              (v27/*: any*/)\n                            ],\n                            \"storageKey\": null\n                          }\n                        ],\n                        \"type\": \"AuthorizedPlaylist\",\n                        \"abstractKey\": null\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v28/*: any*/),\n                  (v29/*: any*/),\n                  (v30/*: any*/),\n                  (v31/*: any*/)\n                ],\n                \"type\": \"PlaylistBlock\",\n                \"abstractKey\": null\n              }\n            ],\n            \"storageKey\": null\n          },\n          (v11/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"ancestors\",\n            \"plural\": true,\n            \"selections\": [\n              (v5/*: any*/),\n              (v6/*: any*/),\n              (v9/*: any*/),\n              (v4/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"parent\",\n            \"plural\": false,\n            \"selections\": [\n              (v4/*: any*/),\n              (v7/*: any*/),\n              (v5/*: any*/),\n              (v6/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"childOrder\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"isUserRoot\",\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"87d0eb180e9b91f819e125f0d9a8f841\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"RealmQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query RealmQuery(\\n  $path: String!\\n) {\\n  ...UserData\\n  currentUser {\\n    username\\n    canCreateUserRealm\\n  }\\n  realm: realmByPath(path: $path) {\\n    id\\n    name\\n    path\\n    isMainRoot\\n    isUserRealm\\n    ownerDisplayName\\n    children {\\n      id\\n    }\\n    blocks {\\n      __typename\\n      id\\n    }\\n    canCurrentUserModerate\\n    ancestors {\\n      name\\n      path\\n      ownerDisplayName\\n      id\\n    }\\n    parent {\\n      id\\n    }\\n    ...BlocksData\\n    ...NavigationData\\n  }\\n}\\n\\nfragment BlocksBlockData on Block {\\n  __isBlock: __typename\\n  id\\n  __typename\\n  ... on TitleBlock {\\n    ...TitleBlockData\\n  }\\n  ... on TextBlock {\\n    ...TextBlockData\\n  }\\n  ... on SeriesBlock {\\n    ...SeriesBlockData\\n  }\\n  ... on VideoBlock {\\n    ...VideoBlockData\\n  }\\n  ... on PlaylistBlock {\\n    ...PlaylistBlockData\\n  }\\n}\\n\\nfragment BlocksData on Realm {\\n  ...BlocksRealmData\\n  blocks {\\n    __typename\\n    id\\n    ...BlocksBlockData\\n  }\\n}\\n\\nfragment BlocksRealmData on Realm {\\n  path\\n}\\n\\nfragment NavigationData on Realm {\\n  id\\n  name\\n  childOrder\\n  isUserRoot\\n  children {\\n    id\\n    name\\n    path\\n  }\\n  parent {\\n    isMainRoot\\n    name\\n    path\\n    id\\n  }\\n}\\n\\nfragment PlaylistBlockData on PlaylistBlock {\\n  playlist {\\n    __typename\\n    ...PlaylistBlockPlaylistData\\n    ... on AuthorizedPlaylist {\\n      id\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment PlaylistBlockPlaylistData on Playlist {\\n  __isPlaylist: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedPlaylist {\\n    id\\n    title\\n    description\\n    entries {\\n      __typename\\n      ... on AuthorizedEvent {\\n        id\\n        ...VideoListEventData\\n      }\\n      ... on Missing {\\n        dummy\\n      }\\n      ... on NotAllowed {\\n        dummy\\n      }\\n      ... on Node {\\n        __isNode: __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment SeriesBlockData on SeriesBlock {\\n  series {\\n    ...SeriesBlockSeriesData\\n    id\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment SeriesBlockSeriesData on Series {\\n  title\\n  syncedData {\\n    description\\n  }\\n  entries {\\n    __typename\\n    ... on AuthorizedEvent {\\n      id\\n      ...VideoListEventData\\n    }\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n}\\n\\nfragment TextBlockData on TextBlock {\\n  content\\n}\\n\\nfragment TitleBlockData on TitleBlock {\\n  content\\n}\\n\\nfragment UserData on Query {\\n  currentUser {\\n    username\\n    displayName\\n    canUpload\\n    canUseStudio\\n    canUseEditor\\n    canCreateUserRealm\\n    canFindUnlisted\\n    roles\\n    userRole\\n  }\\n}\\n\\nfragment VideoBlockData on VideoBlock {\\n  event {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedEvent {\\n      id\\n      title\\n      isLive\\n      opencastId\\n      created\\n      creators\\n      metadata\\n      description\\n      series {\\n        title\\n        opencastId\\n        id\\n      }\\n      syncedData {\\n        duration\\n        updated\\n        startTime\\n        endTime\\n        thumbnail\\n        tracks {\\n          uri\\n          flavor\\n          mimetype\\n          resolution\\n          isMaster\\n        }\\n        captions {\\n          uri\\n          lang\\n        }\\n        segments {\\n          uri\\n          startTime\\n        }\\n      }\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  showTitle\\n  showLink\\n}\\n\\nfragment VideoListEventData on AuthorizedEvent {\\n  id\\n  title\\n  created\\n  creators\\n  isLive\\n  description\\n  series {\\n    title\\n    id\\n  }\\n  syncedData {\\n    duration\\n    thumbnail\\n    startTime\\n    endTime\\n    tracks {\\n      resolution\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"32d1c7d432907d9d73752505867faf48\";\n\nexport default node;\n","/**\n * @generated SignedSource<<d6acb75162a7c5ffea0bd848e00055f7>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type ItemType = \"EVENT\" | \"REALM\" | \"SERIES\" | \"%future added value\";\nexport type TextAssetType = \"CAPTION\" | \"SLIDE_TEXT\" | \"%future added value\";\nexport type Filters = {\n  end?: string | null | undefined;\n  itemType?: ItemType | null | undefined;\n  start?: string | null | undefined;\n};\nexport type SearchQuery$variables = {\n  filters: Filters;\n  q: string;\n};\nexport type SearchQuery$data = {\n  readonly search: {\n    readonly __typename: \"EmptyQuery\";\n    readonly dummy: boolean | null | undefined;\n  } | {\n    readonly __typename: \"SearchResults\";\n    readonly items: ReadonlyArray<{\n      readonly __typename: string;\n      readonly ancestorNames?: ReadonlyArray<string | null | undefined>;\n      readonly audioOnly?: boolean;\n      readonly created?: string;\n      readonly creators?: ReadonlyArray<string>;\n      readonly description?: string | null | undefined;\n      readonly duration?: number;\n      readonly endTime?: string | null | undefined;\n      readonly hostRealms?: ReadonlyArray<{\n        readonly path: string;\n      }>;\n      readonly id: string;\n      readonly isLive?: boolean;\n      readonly name?: string | null | undefined;\n      readonly path?: string;\n      readonly seriesId?: string | null | undefined;\n      readonly seriesTitle?: string | null | undefined;\n      readonly startTime?: string | null | undefined;\n      readonly textMatches?: ReadonlyArray<{\n        readonly duration: number;\n        readonly highlights: ReadonlyArray<{\n          readonly len: number;\n          readonly start: number;\n        }>;\n        readonly start: number;\n        readonly text: string;\n        readonly ty: TextAssetType;\n      }>;\n      readonly thumbnail?: string | null | undefined;\n      readonly thumbnails?: ReadonlyArray<{\n        readonly audioOnly: boolean;\n        readonly isLive: boolean;\n        readonly thumbnail: string | null | undefined;\n      }>;\n      readonly title?: string;\n    }>;\n    readonly totalHits: number;\n  } | {\n    readonly __typename: \"SearchUnavailable\";\n    readonly dummy: boolean | null | undefined;\n  } | {\n    // This will never be '%other', but we need some\n    // value in case none of the concrete values match.\n    readonly __typename: \"%other\";\n  };\n  readonly \" $fragmentSpreads\": FragmentRefs<\"UserData\">;\n};\nexport type SearchQuery = {\n  response: SearchQuery$data;\n  variables: SearchQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"filters\"\n},\nv1 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"q\"\n},\nv2 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"filters\",\n    \"variableName\": \"filters\"\n  },\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"query\",\n    \"variableName\": \"q\"\n  }\n],\nv3 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv4 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"dummy\",\n    \"storageKey\": null\n  }\n],\nv5 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": (v4/*: any*/),\n  \"type\": \"EmptyQuery\",\n  \"abstractKey\": null\n},\nv6 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": (v4/*: any*/),\n  \"type\": \"SearchUnavailable\",\n  \"abstractKey\": null\n},\nv7 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv8 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv9 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n},\nv10 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"thumbnail\",\n  \"storageKey\": null\n},\nv11 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"duration\",\n  \"storageKey\": null\n},\nv12 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"creators\",\n  \"storageKey\": null\n},\nv13 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"seriesTitle\",\n  \"storageKey\": null\n},\nv14 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"seriesId\",\n  \"storageKey\": null\n},\nv15 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isLive\",\n  \"storageKey\": null\n},\nv16 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"audioOnly\",\n  \"storageKey\": null\n},\nv17 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"startTime\",\n  \"storageKey\": null\n},\nv18 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"endTime\",\n  \"storageKey\": null\n},\nv19 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"created\",\n  \"storageKey\": null\n},\nv20 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n},\nv21 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"start\",\n  \"storageKey\": null\n},\nv22 = {\n  \"alias\": null,\n  \"args\": null,\n  \"concreteType\": \"TextMatch\",\n  \"kind\": \"LinkedField\",\n  \"name\": \"textMatches\",\n  \"plural\": true,\n  \"selections\": [\n    (v21/*: any*/),\n    (v11/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"text\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"ty\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"ByteSpan\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"highlights\",\n      \"plural\": true,\n      \"selections\": [\n        (v21/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"len\",\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"storageKey\": null\n},\nv23 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v8/*: any*/),\n    (v9/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"ThumbnailInfo\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"thumbnails\",\n      \"plural\": true,\n      \"selections\": [\n        (v10/*: any*/),\n        (v15/*: any*/),\n        (v16/*: any*/)\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"SearchSeries\",\n  \"abstractKey\": null\n},\nv24 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"name\",\n      \"storageKey\": null\n    },\n    (v20/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"ancestorNames\",\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"SearchRealm\",\n  \"abstractKey\": null\n},\nv25 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"totalHits\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": [\n      (v0/*: any*/),\n      (v1/*: any*/)\n    ],\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"SearchQuery\",\n    \"selections\": [\n      {\n        \"args\": null,\n        \"kind\": \"FragmentSpread\",\n        \"name\": \"UserData\"\n      },\n      {\n        \"alias\": null,\n        \"args\": (v2/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"search\",\n        \"plural\": false,\n        \"selections\": [\n          (v3/*: any*/),\n          (v5/*: any*/),\n          (v6/*: any*/),\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": null,\n                \"kind\": \"LinkedField\",\n                \"name\": \"items\",\n                \"plural\": true,\n                \"selections\": [\n                  (v7/*: any*/),\n                  (v3/*: any*/),\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": [\n                      (v8/*: any*/),\n                      (v9/*: any*/),\n                      (v10/*: any*/),\n                      (v11/*: any*/),\n                      (v12/*: any*/),\n                      (v13/*: any*/),\n                      (v14/*: any*/),\n                      (v15/*: any*/),\n                      (v16/*: any*/),\n                      (v17/*: any*/),\n                      (v18/*: any*/),\n                      (v19/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"SearchRealm\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"hostRealms\",\n                        \"plural\": true,\n                        \"selections\": [\n                          (v20/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      },\n                      (v22/*: any*/)\n                    ],\n                    \"type\": \"SearchEvent\",\n                    \"abstractKey\": null\n                  },\n                  (v23/*: any*/),\n                  (v24/*: any*/)\n                ],\n                \"storageKey\": null\n              },\n              (v25/*: any*/)\n            ],\n            \"type\": \"SearchResults\",\n            \"abstractKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": [\n      (v1/*: any*/),\n      (v0/*: any*/)\n    ],\n    \"kind\": \"Operation\",\n    \"name\": \"SearchQuery\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"User\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"currentUser\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"username\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"displayName\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUpload\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseStudio\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseEditor\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canCreateUserRealm\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canFindUnlisted\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"roles\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"userRole\",\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": null,\n        \"args\": (v2/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"search\",\n        \"plural\": false,\n        \"selections\": [\n          (v3/*: any*/),\n          (v5/*: any*/),\n          (v6/*: any*/),\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": null,\n                \"kind\": \"LinkedField\",\n                \"name\": \"items\",\n                \"plural\": true,\n                \"selections\": [\n                  (v7/*: any*/),\n                  (v3/*: any*/),\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": [\n                      (v8/*: any*/),\n                      (v9/*: any*/),\n                      (v10/*: any*/),\n                      (v11/*: any*/),\n                      (v12/*: any*/),\n                      (v13/*: any*/),\n                      (v14/*: any*/),\n                      (v15/*: any*/),\n                      (v16/*: any*/),\n                      (v17/*: any*/),\n                      (v18/*: any*/),\n                      (v19/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"SearchRealm\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"hostRealms\",\n                        \"plural\": true,\n                        \"selections\": [\n                          (v20/*: any*/),\n                          (v7/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      },\n                      (v22/*: any*/)\n                    ],\n                    \"type\": \"SearchEvent\",\n                    \"abstractKey\": null\n                  },\n                  (v23/*: any*/),\n                  (v24/*: any*/)\n                ],\n                \"storageKey\": null\n              },\n              (v25/*: any*/)\n            ],\n            \"type\": \"SearchResults\",\n            \"abstractKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"f99ee2dc2e3ccab37cca0a094945e718\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"SearchQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query SearchQuery(\\n  $q: String!\\n  $filters: Filters!\\n) {\\n  ...UserData\\n  search(query: $q, filters: $filters) {\\n    __typename\\n    ... on EmptyQuery {\\n      dummy\\n    }\\n    ... on SearchUnavailable {\\n      dummy\\n    }\\n    ... on SearchResults {\\n      items {\\n        id\\n        __typename\\n        ... on SearchEvent {\\n          title\\n          description\\n          thumbnail\\n          duration\\n          creators\\n          seriesTitle\\n          seriesId\\n          isLive\\n          audioOnly\\n          startTime\\n          endTime\\n          created\\n          hostRealms {\\n            path\\n            id\\n          }\\n          textMatches {\\n            start\\n            duration\\n            text\\n            ty\\n            highlights {\\n              start\\n              len\\n            }\\n          }\\n        }\\n        ... on SearchSeries {\\n          title\\n          description\\n          thumbnails {\\n            thumbnail\\n            isLive\\n            audioOnly\\n          }\\n        }\\n        ... on SearchRealm {\\n          name\\n          path\\n          ancestorNames\\n        }\\n      }\\n      totalHits\\n    }\\n  }\\n}\\n\\nfragment UserData on Query {\\n  currentUser {\\n    username\\n    displayName\\n    canUpload\\n    canUseStudio\\n    canUseEditor\\n    canCreateUserRealm\\n    canFindUnlisted\\n    roles\\n    userRole\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"4c36a91e8f8ecfa5801f63ccccef1206\";\n\nexport default node;\n","/**\n * @generated SignedSource<<f6e929f6512bd5f3ea73bf969dd2b585>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nexport type SearchSlidePreviewQuery$variables = {\n  id: string;\n};\nexport type SearchSlidePreviewQuery$data = {\n  readonly eventById: {\n    readonly id?: string;\n    readonly syncedData?: {\n      readonly segments: ReadonlyArray<{\n        readonly startTime: number;\n        readonly uri: string;\n      }>;\n    } | null | undefined;\n  } | null | undefined;\n};\nexport type SearchSlidePreviewQuery = {\n  response: SearchSlidePreviewQuery$data;\n  variables: SearchSlidePreviewQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"id\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"id\"\n  }\n],\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv3 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v2/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"SyncedEventData\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"syncedData\",\n      \"plural\": false,\n      \"selections\": [\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": \"Segment\",\n          \"kind\": \"LinkedField\",\n          \"name\": \"segments\",\n          \"plural\": true,\n          \"selections\": [\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"startTime\",\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"uri\",\n              \"storageKey\": null\n            }\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"AuthorizedEvent\",\n  \"abstractKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"SearchSlidePreviewQuery\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"eventById\",\n        \"plural\": false,\n        \"selections\": [\n          (v3/*: any*/)\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"SearchSlidePreviewQuery\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"eventById\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"__typename\",\n            \"storageKey\": null\n          },\n          (v3/*: any*/),\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              (v2/*: any*/)\n            ],\n            \"type\": \"Node\",\n            \"abstractKey\": \"__isNode\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"b5b42cb61815c384f9d539d60ae49976\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"SearchSlidePreviewQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query SearchSlidePreviewQuery(\\n  $id: ID!\\n) {\\n  eventById(id: $id) {\\n    __typename\\n    ... on AuthorizedEvent {\\n      id\\n      syncedData {\\n        segments {\\n          startTime\\n          uri\\n        }\\n      }\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"ddafa7cb567421e338c2e175fdb9e4ac\";\n\nexport default node;\n","/**\n * @generated SignedSource<<6bda2372a554b9fa5fb664b471ad1751>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type SeriesByIdQuery$variables = {\n  id: string;\n};\nexport type SeriesByIdQuery$data = {\n  readonly rootRealm: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"NavigationData\">;\n  };\n  readonly series: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"SeriesRouteData\">;\n  } | null | undefined;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"UserData\">;\n};\nexport type SeriesByIdQuery = {\n  response: SeriesByIdQuery$data;\n  variables: SeriesByIdQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"id\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"id\"\n  }\n],\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv3 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n},\nv4 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv6 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"SeriesByIdQuery\",\n    \"selections\": [\n      {\n        \"args\": null,\n        \"kind\": \"FragmentSpread\",\n        \"name\": \"UserData\"\n      },\n      {\n        \"alias\": \"series\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": \"Series\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"seriesById\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"SeriesRouteData\"\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"rootRealm\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"NavigationData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"SeriesByIdQuery\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"User\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"currentUser\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"username\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"displayName\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUpload\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseStudio\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseEditor\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canCreateUserRealm\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canFindUnlisted\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"roles\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"userRole\",\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"series\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": \"Series\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"seriesById\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"SyncedSeriesData\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"syncedData\",\n            \"plural\": false,\n            \"selections\": [\n              (v3/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": null,\n            \"kind\": \"LinkedField\",\n            \"name\": \"entries\",\n            \"plural\": true,\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"__typename\",\n                \"storageKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  (v4/*: any*/),\n                  (v2/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"created\",\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"creators\",\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"isLive\",\n                    \"storageKey\": null\n                  },\n                  (v3/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Series\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"series\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v2/*: any*/),\n                      (v4/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"SyncedEventData\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"syncedData\",\n                    \"plural\": false,\n                    \"selections\": [\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"duration\",\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"thumbnail\",\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"startTime\",\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"endTime\",\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"Track\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"tracks\",\n                        \"plural\": true,\n                        \"selections\": [\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"kind\": \"ScalarField\",\n                            \"name\": \"resolution\",\n                            \"storageKey\": null\n                          }\n                        ],\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"AuthorizedEvent\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"dummy\",\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"NotAllowed\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  (v4/*: any*/)\n                ],\n                \"type\": \"Node\",\n                \"abstractKey\": \"__isNode\"\n              }\n            ],\n            \"storageKey\": null\n          },\n          (v4/*: any*/)\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"rootRealm\",\n        \"plural\": false,\n        \"selections\": [\n          (v4/*: any*/),\n          (v5/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"childOrder\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"isUserRoot\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"children\",\n            \"plural\": true,\n            \"selections\": [\n              (v4/*: any*/),\n              (v5/*: any*/),\n              (v6/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"parent\",\n            \"plural\": false,\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"isMainRoot\",\n                \"storageKey\": null\n              },\n              (v5/*: any*/),\n              (v6/*: any*/),\n              (v4/*: any*/)\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"4fb5de2cbed9101806a6255151cd3d54\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"SeriesByIdQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query SeriesByIdQuery(\\n  $id: ID!\\n) {\\n  ...UserData\\n  series: seriesById(id: $id) {\\n    ...SeriesRouteData\\n    id\\n  }\\n  rootRealm {\\n    ...NavigationData\\n    id\\n  }\\n}\\n\\nfragment NavigationData on Realm {\\n  id\\n  name\\n  childOrder\\n  isUserRoot\\n  children {\\n    id\\n    name\\n    path\\n  }\\n  parent {\\n    isMainRoot\\n    name\\n    path\\n    id\\n  }\\n}\\n\\nfragment SeriesBlockSeriesData on Series {\\n  title\\n  syncedData {\\n    description\\n  }\\n  entries {\\n    __typename\\n    ... on AuthorizedEvent {\\n      id\\n      ...VideoListEventData\\n    }\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n}\\n\\nfragment SeriesRouteData on Series {\\n  title\\n  syncedData {\\n    description\\n  }\\n  ...SeriesBlockSeriesData\\n}\\n\\nfragment UserData on Query {\\n  currentUser {\\n    username\\n    displayName\\n    canUpload\\n    canUseStudio\\n    canUseEditor\\n    canCreateUserRealm\\n    canFindUnlisted\\n    roles\\n    userRole\\n  }\\n}\\n\\nfragment VideoListEventData on AuthorizedEvent {\\n  id\\n  title\\n  created\\n  creators\\n  isLive\\n  description\\n  series {\\n    title\\n    id\\n  }\\n  syncedData {\\n    duration\\n    thumbnail\\n    startTime\\n    endTime\\n    tracks {\\n      resolution\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"e04fd7e8c3786465bd6981e41d7f5c48\";\n\nexport default node;\n","/**\n * @generated SignedSource<<a9f3c78280103783751205c6ab3a7647>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type SeriesByOpencastIdQuery$variables = {\n  id: string;\n};\nexport type SeriesByOpencastIdQuery$data = {\n  readonly rootRealm: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"NavigationData\">;\n  };\n  readonly series: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"SeriesRouteData\">;\n  } | null | undefined;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"UserData\">;\n};\nexport type SeriesByOpencastIdQuery = {\n  response: SeriesByOpencastIdQuery$data;\n  variables: SeriesByOpencastIdQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"id\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"id\"\n  }\n],\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv3 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n},\nv4 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv6 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"SeriesByOpencastIdQuery\",\n    \"selections\": [\n      {\n        \"args\": null,\n        \"kind\": \"FragmentSpread\",\n        \"name\": \"UserData\"\n      },\n      {\n        \"alias\": \"series\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": \"Series\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"seriesByOpencastId\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"SeriesRouteData\"\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"rootRealm\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"NavigationData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"SeriesByOpencastIdQuery\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"User\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"currentUser\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"username\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"displayName\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUpload\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseStudio\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseEditor\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canCreateUserRealm\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canFindUnlisted\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"roles\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"userRole\",\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"series\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": \"Series\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"seriesByOpencastId\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"SyncedSeriesData\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"syncedData\",\n            \"plural\": false,\n            \"selections\": [\n              (v3/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": null,\n            \"kind\": \"LinkedField\",\n            \"name\": \"entries\",\n            \"plural\": true,\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"__typename\",\n                \"storageKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  (v4/*: any*/),\n                  (v2/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"created\",\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"creators\",\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"isLive\",\n                    \"storageKey\": null\n                  },\n                  (v3/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Series\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"series\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v2/*: any*/),\n                      (v4/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"SyncedEventData\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"syncedData\",\n                    \"plural\": false,\n                    \"selections\": [\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"duration\",\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"thumbnail\",\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"startTime\",\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"endTime\",\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"Track\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"tracks\",\n                        \"plural\": true,\n                        \"selections\": [\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"kind\": \"ScalarField\",\n                            \"name\": \"resolution\",\n                            \"storageKey\": null\n                          }\n                        ],\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"AuthorizedEvent\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"dummy\",\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"NotAllowed\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  (v4/*: any*/)\n                ],\n                \"type\": \"Node\",\n                \"abstractKey\": \"__isNode\"\n              }\n            ],\n            \"storageKey\": null\n          },\n          (v4/*: any*/)\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"rootRealm\",\n        \"plural\": false,\n        \"selections\": [\n          (v4/*: any*/),\n          (v5/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"childOrder\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"isUserRoot\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"children\",\n            \"plural\": true,\n            \"selections\": [\n              (v4/*: any*/),\n              (v5/*: any*/),\n              (v6/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"parent\",\n            \"plural\": false,\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"isMainRoot\",\n                \"storageKey\": null\n              },\n              (v5/*: any*/),\n              (v6/*: any*/),\n              (v4/*: any*/)\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"916d89c0c35f64b6450e35747e15e850\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"SeriesByOpencastIdQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query SeriesByOpencastIdQuery(\\n  $id: String!\\n) {\\n  ...UserData\\n  series: seriesByOpencastId(id: $id) {\\n    ...SeriesRouteData\\n    id\\n  }\\n  rootRealm {\\n    ...NavigationData\\n    id\\n  }\\n}\\n\\nfragment NavigationData on Realm {\\n  id\\n  name\\n  childOrder\\n  isUserRoot\\n  children {\\n    id\\n    name\\n    path\\n  }\\n  parent {\\n    isMainRoot\\n    name\\n    path\\n    id\\n  }\\n}\\n\\nfragment SeriesBlockSeriesData on Series {\\n  title\\n  syncedData {\\n    description\\n  }\\n  entries {\\n    __typename\\n    ... on AuthorizedEvent {\\n      id\\n      ...VideoListEventData\\n    }\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n}\\n\\nfragment SeriesRouteData on Series {\\n  title\\n  syncedData {\\n    description\\n  }\\n  ...SeriesBlockSeriesData\\n}\\n\\nfragment UserData on Query {\\n  currentUser {\\n    username\\n    displayName\\n    canUpload\\n    canUseStudio\\n    canUseEditor\\n    canCreateUserRealm\\n    canFindUnlisted\\n    roles\\n    userRole\\n  }\\n}\\n\\nfragment VideoListEventData on AuthorizedEvent {\\n  id\\n  title\\n  created\\n  creators\\n  isLive\\n  description\\n  series {\\n    title\\n    id\\n  }\\n  syncedData {\\n    duration\\n    thumbnail\\n    startTime\\n    endTime\\n    tracks {\\n      resolution\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"00427f14391401c71cfe1b98785a8170\";\n\nexport default node;\n","/**\n * @generated SignedSource<<b19efae839526e8ffb4577f6ae1df98f>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type SeriesRouteData$data = {\n  readonly syncedData: {\n    readonly description: string | null | undefined;\n  } | null | undefined;\n  readonly title: string;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"SeriesBlockSeriesData\">;\n  readonly \" $fragmentType\": \"SeriesRouteData\";\n};\nexport type SeriesRouteData$key = {\n  readonly \" $data\"?: SeriesRouteData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"SeriesRouteData\">;\n};\n\nconst node: ReaderFragment = {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"SeriesRouteData\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"title\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"SyncedSeriesData\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"syncedData\",\n      \"plural\": false,\n      \"selections\": [\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"description\",\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"args\": null,\n      \"kind\": \"FragmentSpread\",\n      \"name\": \"SeriesBlockSeriesData\"\n    }\n  ],\n  \"type\": \"Series\",\n  \"abstractKey\": null\n};\n\n(node as any).hash = \"a75312de5b85c17c49a0245f7c935183\";\n\nexport default node;\n","/**\n * @generated SignedSource<<125e9a0d2d631c45477fe1be7b867539>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type UploadQuery$variables = Record<PropertyKey, never>;\nexport type UploadQuery$data = {\n  readonly \" $fragmentSpreads\": FragmentRefs<\"AccessKnownRolesData\" | \"UserData\">;\n};\nexport type UploadQuery = {\n  response: UploadQuery$data;\n  variables: UploadQuery$variables;\n};\n\nconst node: ConcreteRequest = {\n  \"fragment\": {\n    \"argumentDefinitions\": [],\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"UploadQuery\",\n    \"selections\": [\n      {\n        \"args\": null,\n        \"kind\": \"FragmentSpread\",\n        \"name\": \"UserData\"\n      },\n      {\n        \"args\": null,\n        \"kind\": \"FragmentSpread\",\n        \"name\": \"AccessKnownRolesData\"\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": [],\n    \"kind\": \"Operation\",\n    \"name\": \"UploadQuery\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"User\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"currentUser\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"username\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"displayName\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUpload\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseStudio\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseEditor\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canCreateUserRealm\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canFindUnlisted\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"roles\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"userRole\",\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"KnownGroup\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"knownGroups\",\n        \"plural\": true,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"role\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"label\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"implies\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"large\",\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"f4aef784ff3fb40456c42d9a8ec76d56\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"UploadQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query UploadQuery {\\n  ...UserData\\n  ...AccessKnownRolesData\\n}\\n\\nfragment AccessKnownRolesData on Query {\\n  knownGroups {\\n    role\\n    label\\n    implies\\n    large\\n  }\\n}\\n\\nfragment UserData on Query {\\n  currentUser {\\n    username\\n    displayName\\n    canUpload\\n    canUseStudio\\n    canUseEditor\\n    canCreateUserRealm\\n    canFindUnlisted\\n    roles\\n    userRole\\n  }\\n}\\n\"\n  }\n};\n\n(node as any).hash = \"670d89911533b247dedbd1a3542c58fa\";\n\nexport default node;\n","/**\n * @generated SignedSource<<f0b2e044c18c28a36a27b755277bb2d5>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type VideoPageByOcIdInRealmQuery$variables = {\n  id: string;\n  listId: string;\n  realmPath: string;\n};\nexport type VideoPageByOcIdInRealmQuery$data = {\n  readonly event: {\n    readonly isReferencedByRealm?: boolean;\n    readonly \" $fragmentSpreads\": FragmentRefs<\"VideoPageEventData\">;\n  } | null | undefined;\n  readonly playlist: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"PlaylistBlockPlaylistData\">;\n  } | null | undefined;\n  readonly realm: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"NavigationData\" | \"VideoPageRealmData\">;\n  } | null | undefined;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"UserData\">;\n};\nexport type VideoPageByOcIdInRealmQuery = {\n  response: VideoPageByOcIdInRealmQuery$data;\n  variables: VideoPageByOcIdInRealmQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"id\"\n},\nv1 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"listId\"\n},\nv2 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"realmPath\"\n},\nv3 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"id\"\n  }\n],\nv4 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"path\",\n    \"variableName\": \"realmPath\"\n  }\n],\nv5 = {\n  \"alias\": null,\n  \"args\": (v4/*: any*/),\n  \"kind\": \"ScalarField\",\n  \"name\": \"isReferencedByRealm\",\n  \"storageKey\": null\n},\nv6 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"listId\"\n  }\n],\nv7 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv8 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"dummy\",\n    \"storageKey\": null\n  }\n],\nv9 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": (v8/*: any*/),\n  \"type\": \"NotAllowed\",\n  \"abstractKey\": null\n},\nv10 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv11 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv12 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n},\nv13 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"creators\",\n  \"storageKey\": null\n},\nv14 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"created\",\n  \"storageKey\": null\n},\nv15 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isLive\",\n  \"storageKey\": null\n},\nv16 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"opencastId\",\n  \"storageKey\": null\n},\nv17 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"duration\",\n  \"storageKey\": null\n},\nv18 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"thumbnail\",\n  \"storageKey\": null\n},\nv19 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"startTime\",\n  \"storageKey\": null\n},\nv20 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"endTime\",\n  \"storageKey\": null\n},\nv21 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"uri\",\n  \"storageKey\": null\n},\nv22 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"resolution\",\n  \"storageKey\": null\n},\nv23 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v10/*: any*/),\n    (v11/*: any*/),\n    (v14/*: any*/),\n    (v13/*: any*/),\n    (v15/*: any*/),\n    (v12/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Series\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"series\",\n      \"plural\": false,\n      \"selections\": [\n        (v11/*: any*/),\n        (v10/*: any*/)\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"SyncedEventData\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"syncedData\",\n      \"plural\": false,\n      \"selections\": [\n        (v17/*: any*/),\n        (v18/*: any*/),\n        (v19/*: any*/),\n        (v20/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": \"Track\",\n          \"kind\": \"LinkedField\",\n          \"name\": \"tracks\",\n          \"plural\": true,\n          \"selections\": [\n            (v22/*: any*/)\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"AuthorizedEvent\",\n  \"abstractKey\": null\n},\nv24 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v10/*: any*/)\n  ],\n  \"type\": \"Node\",\n  \"abstractKey\": \"__isNode\"\n},\nv25 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv26 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n},\nv27 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isMainRoot\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": [\n      (v0/*: any*/),\n      (v1/*: any*/),\n      (v2/*: any*/)\n    ],\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"VideoPageByOcIdInRealmQuery\",\n    \"selections\": [\n      {\n        \"args\": null,\n        \"kind\": \"FragmentSpread\",\n        \"name\": \"UserData\"\n      },\n      {\n        \"alias\": \"event\",\n        \"args\": (v3/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"eventByOpencastId\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"VideoPageEventData\"\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              (v5/*: any*/)\n            ],\n            \"type\": \"AuthorizedEvent\",\n            \"abstractKey\": null\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"realm\",\n        \"args\": (v4/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"realmByPath\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"VideoPageRealmData\"\n          },\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"NavigationData\"\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"playlist\",\n        \"args\": (v6/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"playlistById\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"PlaylistBlockPlaylistData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": [\n      (v0/*: any*/),\n      (v2/*: any*/),\n      (v1/*: any*/)\n    ],\n    \"kind\": \"Operation\",\n    \"name\": \"VideoPageByOcIdInRealmQuery\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"User\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"currentUser\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"username\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"displayName\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUpload\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseStudio\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseEditor\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canCreateUserRealm\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canFindUnlisted\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"roles\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"userRole\",\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"event\",\n        \"args\": (v3/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"eventByOpencastId\",\n        \"plural\": false,\n        \"selections\": [\n          (v7/*: any*/),\n          {\n            \"kind\": \"TypeDiscriminator\",\n            \"abstractKey\": \"__isEvent\"\n          },\n          (v9/*: any*/),\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              (v10/*: any*/),\n              (v11/*: any*/),\n              (v12/*: any*/),\n              (v13/*: any*/),\n              (v14/*: any*/),\n              (v15/*: any*/),\n              (v16/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"metadata\",\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"canWrite\",\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": \"SyncedEventData\",\n                \"kind\": \"LinkedField\",\n                \"name\": \"syncedData\",\n                \"plural\": false,\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"updated\",\n                    \"storageKey\": null\n                  },\n                  (v17/*: any*/),\n                  (v18/*: any*/),\n                  (v19/*: any*/),\n                  (v20/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Track\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"tracks\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v21/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"flavor\",\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"mimetype\",\n                        \"storageKey\": null\n                      },\n                      (v22/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"isMaster\",\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Caption\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"captions\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v21/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"lang\",\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Segment\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"segments\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v21/*: any*/),\n                      (v19/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": \"Series\",\n                \"kind\": \"LinkedField\",\n                \"name\": \"series\",\n                \"plural\": false,\n                \"selections\": [\n                  (v10/*: any*/),\n                  (v16/*: any*/),\n                  (v11/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"SyncedSeriesData\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"syncedData\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v12/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"entries\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v7/*: any*/),\n                      (v23/*: any*/),\n                      (v9/*: any*/),\n                      (v24/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"storageKey\": null\n              },\n              (v5/*: any*/)\n            ],\n            \"type\": \"AuthorizedEvent\",\n            \"abstractKey\": null\n          },\n          (v24/*: any*/)\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"realm\",\n        \"args\": (v4/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"realmByPath\",\n        \"plural\": false,\n        \"selections\": [\n          (v25/*: any*/),\n          (v26/*: any*/),\n          (v27/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"ancestors\",\n            \"plural\": true,\n            \"selections\": [\n              (v25/*: any*/),\n              (v26/*: any*/),\n              (v10/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          (v10/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"childOrder\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"isUserRoot\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"children\",\n            \"plural\": true,\n            \"selections\": [\n              (v10/*: any*/),\n              (v25/*: any*/),\n              (v26/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"parent\",\n            \"plural\": false,\n            \"selections\": [\n              (v27/*: any*/),\n              (v25/*: any*/),\n              (v26/*: any*/),\n              (v10/*: any*/)\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"playlist\",\n        \"args\": (v6/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"playlistById\",\n        \"plural\": false,\n        \"selections\": [\n          (v7/*: any*/),\n          {\n            \"kind\": \"TypeDiscriminator\",\n            \"abstractKey\": \"__isPlaylist\"\n          },\n          (v9/*: any*/),\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              (v10/*: any*/),\n              (v11/*: any*/),\n              (v12/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": null,\n                \"kind\": \"LinkedField\",\n                \"name\": \"entries\",\n                \"plural\": true,\n                \"selections\": [\n                  (v7/*: any*/),\n                  (v23/*: any*/),\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": (v8/*: any*/),\n                    \"type\": \"Missing\",\n                    \"abstractKey\": null\n                  },\n                  (v9/*: any*/),\n                  (v24/*: any*/)\n                ],\n                \"storageKey\": null\n              }\n            ],\n            \"type\": \"AuthorizedPlaylist\",\n            \"abstractKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"a39cf9a96e0a0c7a7dd0d65cf635b4a5\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"VideoPageByOcIdInRealmQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query VideoPageByOcIdInRealmQuery(\\n  $id: String!\\n  $realmPath: String!\\n  $listId: ID!\\n) {\\n  ...UserData\\n  event: eventByOpencastId(id: $id) {\\n    __typename\\n    ...VideoPageEventData\\n    ... on AuthorizedEvent {\\n      isReferencedByRealm(path: $realmPath)\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  realm: realmByPath(path: $realmPath) {\\n    ...VideoPageRealmData\\n    ...NavigationData\\n    id\\n  }\\n  playlist: playlistById(id: $listId) {\\n    __typename\\n    ...PlaylistBlockPlaylistData\\n    ... on AuthorizedPlaylist {\\n      id\\n    }\\n  }\\n}\\n\\nfragment NavigationData on Realm {\\n  id\\n  name\\n  childOrder\\n  isUserRoot\\n  children {\\n    id\\n    name\\n    path\\n  }\\n  parent {\\n    isMainRoot\\n    name\\n    path\\n    id\\n  }\\n}\\n\\nfragment PlaylistBlockPlaylistData on Playlist {\\n  __isPlaylist: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedPlaylist {\\n    id\\n    title\\n    description\\n    entries {\\n      __typename\\n      ... on AuthorizedEvent {\\n        id\\n        ...VideoListEventData\\n      }\\n      ... on Missing {\\n        dummy\\n      }\\n      ... on NotAllowed {\\n        dummy\\n      }\\n      ... on Node {\\n        __isNode: __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment SeriesBlockSeriesData on Series {\\n  title\\n  syncedData {\\n    description\\n  }\\n  entries {\\n    __typename\\n    ... on AuthorizedEvent {\\n      id\\n      ...VideoListEventData\\n    }\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n}\\n\\nfragment UserData on Query {\\n  currentUser {\\n    username\\n    displayName\\n    canUpload\\n    canUseStudio\\n    canUseEditor\\n    canCreateUserRealm\\n    canFindUnlisted\\n    roles\\n    userRole\\n  }\\n}\\n\\nfragment VideoListEventData on AuthorizedEvent {\\n  id\\n  title\\n  created\\n  creators\\n  isLive\\n  description\\n  series {\\n    title\\n    id\\n  }\\n  syncedData {\\n    duration\\n    thumbnail\\n    startTime\\n    endTime\\n    tracks {\\n      resolution\\n    }\\n  }\\n}\\n\\nfragment VideoPageEventData on Event {\\n  __isEvent: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedEvent {\\n    id\\n    title\\n    description\\n    creators\\n    created\\n    isLive\\n    opencastId\\n    metadata\\n    canWrite\\n    syncedData {\\n      updated\\n      duration\\n      thumbnail\\n      startTime\\n      endTime\\n      tracks {\\n        uri\\n        flavor\\n        mimetype\\n        resolution\\n        isMaster\\n      }\\n      captions {\\n        uri\\n        lang\\n      }\\n      segments {\\n        uri\\n        startTime\\n      }\\n    }\\n    series {\\n      id\\n      opencastId\\n      title\\n      ...SeriesBlockSeriesData\\n    }\\n  }\\n}\\n\\nfragment VideoPageRealmData on Realm {\\n  name\\n  path\\n  isMainRoot\\n  ancestors {\\n    name\\n    path\\n    id\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"d173bf73b3d0bca33501725953f7b7fc\";\n\nexport default node;\n","/**\n * @generated SignedSource<<501bafba84e5a1f3309d52b230217abd>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type VideoPageDirectLinkQuery$variables = {\n  id: string;\n  listId: string;\n};\nexport type VideoPageDirectLinkQuery$data = {\n  readonly event: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"VideoPageEventData\">;\n  } | null | undefined;\n  readonly playlist: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"PlaylistBlockPlaylistData\">;\n  } | null | undefined;\n  readonly realm: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"NavigationData\" | \"VideoPageRealmData\">;\n  };\n  readonly \" $fragmentSpreads\": FragmentRefs<\"UserData\">;\n};\nexport type VideoPageDirectLinkQuery = {\n  response: VideoPageDirectLinkQuery$data;\n  variables: VideoPageDirectLinkQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"id\"\n  },\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"listId\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"id\"\n  }\n],\nv2 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"listId\"\n  }\n],\nv3 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv4 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"dummy\",\n    \"storageKey\": null\n  }\n],\nv5 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": (v4/*: any*/),\n  \"type\": \"NotAllowed\",\n  \"abstractKey\": null\n},\nv6 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv7 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv8 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n},\nv9 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"creators\",\n  \"storageKey\": null\n},\nv10 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"created\",\n  \"storageKey\": null\n},\nv11 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isLive\",\n  \"storageKey\": null\n},\nv12 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"opencastId\",\n  \"storageKey\": null\n},\nv13 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"duration\",\n  \"storageKey\": null\n},\nv14 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"thumbnail\",\n  \"storageKey\": null\n},\nv15 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"startTime\",\n  \"storageKey\": null\n},\nv16 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"endTime\",\n  \"storageKey\": null\n},\nv17 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"uri\",\n  \"storageKey\": null\n},\nv18 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"resolution\",\n  \"storageKey\": null\n},\nv19 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v6/*: any*/),\n    (v7/*: any*/),\n    (v10/*: any*/),\n    (v9/*: any*/),\n    (v11/*: any*/),\n    (v8/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Series\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"series\",\n      \"plural\": false,\n      \"selections\": [\n        (v7/*: any*/),\n        (v6/*: any*/)\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"SyncedEventData\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"syncedData\",\n      \"plural\": false,\n      \"selections\": [\n        (v13/*: any*/),\n        (v14/*: any*/),\n        (v15/*: any*/),\n        (v16/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": \"Track\",\n          \"kind\": \"LinkedField\",\n          \"name\": \"tracks\",\n          \"plural\": true,\n          \"selections\": [\n            (v18/*: any*/)\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"AuthorizedEvent\",\n  \"abstractKey\": null\n},\nv20 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v6/*: any*/)\n  ],\n  \"type\": \"Node\",\n  \"abstractKey\": \"__isNode\"\n},\nv21 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv22 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n},\nv23 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isMainRoot\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"VideoPageDirectLinkQuery\",\n    \"selections\": [\n      {\n        \"args\": null,\n        \"kind\": \"FragmentSpread\",\n        \"name\": \"UserData\"\n      },\n      {\n        \"alias\": \"event\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"eventById\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"VideoPageEventData\"\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"realm\",\n        \"args\": null,\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"rootRealm\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"VideoPageRealmData\"\n          },\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"NavigationData\"\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"playlist\",\n        \"args\": (v2/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"playlistById\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"PlaylistBlockPlaylistData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"VideoPageDirectLinkQuery\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"User\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"currentUser\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"username\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"displayName\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUpload\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseStudio\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseEditor\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canCreateUserRealm\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canFindUnlisted\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"roles\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"userRole\",\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"event\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"eventById\",\n        \"plural\": false,\n        \"selections\": [\n          (v3/*: any*/),\n          {\n            \"kind\": \"TypeDiscriminator\",\n            \"abstractKey\": \"__isEvent\"\n          },\n          (v5/*: any*/),\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              (v6/*: any*/),\n              (v7/*: any*/),\n              (v8/*: any*/),\n              (v9/*: any*/),\n              (v10/*: any*/),\n              (v11/*: any*/),\n              (v12/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"metadata\",\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"canWrite\",\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": \"SyncedEventData\",\n                \"kind\": \"LinkedField\",\n                \"name\": \"syncedData\",\n                \"plural\": false,\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"updated\",\n                    \"storageKey\": null\n                  },\n                  (v13/*: any*/),\n                  (v14/*: any*/),\n                  (v15/*: any*/),\n                  (v16/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Track\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"tracks\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v17/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"flavor\",\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"mimetype\",\n                        \"storageKey\": null\n                      },\n                      (v18/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"isMaster\",\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Caption\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"captions\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v17/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"lang\",\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Segment\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"segments\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v17/*: any*/),\n                      (v15/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": \"Series\",\n                \"kind\": \"LinkedField\",\n                \"name\": \"series\",\n                \"plural\": false,\n                \"selections\": [\n                  (v6/*: any*/),\n                  (v12/*: any*/),\n                  (v7/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"SyncedSeriesData\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"syncedData\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v8/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"entries\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v3/*: any*/),\n                      (v19/*: any*/),\n                      (v5/*: any*/),\n                      (v20/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"storageKey\": null\n              }\n            ],\n            \"type\": \"AuthorizedEvent\",\n            \"abstractKey\": null\n          },\n          (v20/*: any*/)\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"realm\",\n        \"args\": null,\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"rootRealm\",\n        \"plural\": false,\n        \"selections\": [\n          (v21/*: any*/),\n          (v22/*: any*/),\n          (v23/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"ancestors\",\n            \"plural\": true,\n            \"selections\": [\n              (v21/*: any*/),\n              (v22/*: any*/),\n              (v6/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          (v6/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"childOrder\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"isUserRoot\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"children\",\n            \"plural\": true,\n            \"selections\": [\n              (v6/*: any*/),\n              (v21/*: any*/),\n              (v22/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"parent\",\n            \"plural\": false,\n            \"selections\": [\n              (v23/*: any*/),\n              (v21/*: any*/),\n              (v22/*: any*/),\n              (v6/*: any*/)\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"playlist\",\n        \"args\": (v2/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"playlistById\",\n        \"plural\": false,\n        \"selections\": [\n          (v3/*: any*/),\n          {\n            \"kind\": \"TypeDiscriminator\",\n            \"abstractKey\": \"__isPlaylist\"\n          },\n          (v5/*: any*/),\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              (v6/*: any*/),\n              (v7/*: any*/),\n              (v8/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": null,\n                \"kind\": \"LinkedField\",\n                \"name\": \"entries\",\n                \"plural\": true,\n                \"selections\": [\n                  (v3/*: any*/),\n                  (v19/*: any*/),\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": (v4/*: any*/),\n                    \"type\": \"Missing\",\n                    \"abstractKey\": null\n                  },\n                  (v5/*: any*/),\n                  (v20/*: any*/)\n                ],\n                \"storageKey\": null\n              }\n            ],\n            \"type\": \"AuthorizedPlaylist\",\n            \"abstractKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"89e07177925a1d9515ab16c2ad99e954\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"VideoPageDirectLinkQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query VideoPageDirectLinkQuery(\\n  $id: ID!\\n  $listId: ID!\\n) {\\n  ...UserData\\n  event: eventById(id: $id) {\\n    __typename\\n    ...VideoPageEventData\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  realm: rootRealm {\\n    ...VideoPageRealmData\\n    ...NavigationData\\n    id\\n  }\\n  playlist: playlistById(id: $listId) {\\n    __typename\\n    ...PlaylistBlockPlaylistData\\n    ... on AuthorizedPlaylist {\\n      id\\n    }\\n  }\\n}\\n\\nfragment NavigationData on Realm {\\n  id\\n  name\\n  childOrder\\n  isUserRoot\\n  children {\\n    id\\n    name\\n    path\\n  }\\n  parent {\\n    isMainRoot\\n    name\\n    path\\n    id\\n  }\\n}\\n\\nfragment PlaylistBlockPlaylistData on Playlist {\\n  __isPlaylist: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedPlaylist {\\n    id\\n    title\\n    description\\n    entries {\\n      __typename\\n      ... on AuthorizedEvent {\\n        id\\n        ...VideoListEventData\\n      }\\n      ... on Missing {\\n        dummy\\n      }\\n      ... on NotAllowed {\\n        dummy\\n      }\\n      ... on Node {\\n        __isNode: __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment SeriesBlockSeriesData on Series {\\n  title\\n  syncedData {\\n    description\\n  }\\n  entries {\\n    __typename\\n    ... on AuthorizedEvent {\\n      id\\n      ...VideoListEventData\\n    }\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n}\\n\\nfragment UserData on Query {\\n  currentUser {\\n    username\\n    displayName\\n    canUpload\\n    canUseStudio\\n    canUseEditor\\n    canCreateUserRealm\\n    canFindUnlisted\\n    roles\\n    userRole\\n  }\\n}\\n\\nfragment VideoListEventData on AuthorizedEvent {\\n  id\\n  title\\n  created\\n  creators\\n  isLive\\n  description\\n  series {\\n    title\\n    id\\n  }\\n  syncedData {\\n    duration\\n    thumbnail\\n    startTime\\n    endTime\\n    tracks {\\n      resolution\\n    }\\n  }\\n}\\n\\nfragment VideoPageEventData on Event {\\n  __isEvent: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedEvent {\\n    id\\n    title\\n    description\\n    creators\\n    created\\n    isLive\\n    opencastId\\n    metadata\\n    canWrite\\n    syncedData {\\n      updated\\n      duration\\n      thumbnail\\n      startTime\\n      endTime\\n      tracks {\\n        uri\\n        flavor\\n        mimetype\\n        resolution\\n        isMaster\\n      }\\n      captions {\\n        uri\\n        lang\\n      }\\n      segments {\\n        uri\\n        startTime\\n      }\\n    }\\n    series {\\n      id\\n      opencastId\\n      title\\n      ...SeriesBlockSeriesData\\n    }\\n  }\\n}\\n\\nfragment VideoPageRealmData on Realm {\\n  name\\n  path\\n  isMainRoot\\n  ancestors {\\n    name\\n    path\\n    id\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"a547997f7dec6e139dfda427a44b089e\";\n\nexport default node;\n","/**\n * @generated SignedSource<<f7418d67aa71d0ce4eff28300d0b27d3>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type VideoPageDirectOpencastLinkQuery$variables = {\n  id: string;\n  listId: string;\n};\nexport type VideoPageDirectOpencastLinkQuery$data = {\n  readonly event: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"VideoPageEventData\">;\n  } | null | undefined;\n  readonly playlist: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"PlaylistBlockPlaylistData\">;\n  } | null | undefined;\n  readonly realm: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"NavigationData\" | \"VideoPageRealmData\">;\n  };\n  readonly \" $fragmentSpreads\": FragmentRefs<\"UserData\">;\n};\nexport type VideoPageDirectOpencastLinkQuery = {\n  response: VideoPageDirectOpencastLinkQuery$data;\n  variables: VideoPageDirectOpencastLinkQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"id\"\n  },\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"listId\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"id\"\n  }\n],\nv2 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"listId\"\n  }\n],\nv3 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv4 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"dummy\",\n    \"storageKey\": null\n  }\n],\nv5 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": (v4/*: any*/),\n  \"type\": \"NotAllowed\",\n  \"abstractKey\": null\n},\nv6 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv7 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv8 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n},\nv9 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"creators\",\n  \"storageKey\": null\n},\nv10 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"created\",\n  \"storageKey\": null\n},\nv11 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isLive\",\n  \"storageKey\": null\n},\nv12 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"opencastId\",\n  \"storageKey\": null\n},\nv13 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"duration\",\n  \"storageKey\": null\n},\nv14 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"thumbnail\",\n  \"storageKey\": null\n},\nv15 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"startTime\",\n  \"storageKey\": null\n},\nv16 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"endTime\",\n  \"storageKey\": null\n},\nv17 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"uri\",\n  \"storageKey\": null\n},\nv18 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"resolution\",\n  \"storageKey\": null\n},\nv19 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v6/*: any*/),\n    (v7/*: any*/),\n    (v10/*: any*/),\n    (v9/*: any*/),\n    (v11/*: any*/),\n    (v8/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Series\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"series\",\n      \"plural\": false,\n      \"selections\": [\n        (v7/*: any*/),\n        (v6/*: any*/)\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"SyncedEventData\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"syncedData\",\n      \"plural\": false,\n      \"selections\": [\n        (v13/*: any*/),\n        (v14/*: any*/),\n        (v15/*: any*/),\n        (v16/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": \"Track\",\n          \"kind\": \"LinkedField\",\n          \"name\": \"tracks\",\n          \"plural\": true,\n          \"selections\": [\n            (v18/*: any*/)\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"AuthorizedEvent\",\n  \"abstractKey\": null\n},\nv20 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v6/*: any*/)\n  ],\n  \"type\": \"Node\",\n  \"abstractKey\": \"__isNode\"\n},\nv21 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv22 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n},\nv23 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isMainRoot\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"VideoPageDirectOpencastLinkQuery\",\n    \"selections\": [\n      {\n        \"args\": null,\n        \"kind\": \"FragmentSpread\",\n        \"name\": \"UserData\"\n      },\n      {\n        \"alias\": \"event\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"eventByOpencastId\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"VideoPageEventData\"\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"realm\",\n        \"args\": null,\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"rootRealm\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"VideoPageRealmData\"\n          },\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"NavigationData\"\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"playlist\",\n        \"args\": (v2/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"playlistById\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"PlaylistBlockPlaylistData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"VideoPageDirectOpencastLinkQuery\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"User\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"currentUser\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"username\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"displayName\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUpload\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseStudio\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseEditor\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canCreateUserRealm\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canFindUnlisted\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"roles\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"userRole\",\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"event\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"eventByOpencastId\",\n        \"plural\": false,\n        \"selections\": [\n          (v3/*: any*/),\n          {\n            \"kind\": \"TypeDiscriminator\",\n            \"abstractKey\": \"__isEvent\"\n          },\n          (v5/*: any*/),\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              (v6/*: any*/),\n              (v7/*: any*/),\n              (v8/*: any*/),\n              (v9/*: any*/),\n              (v10/*: any*/),\n              (v11/*: any*/),\n              (v12/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"metadata\",\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"canWrite\",\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": \"SyncedEventData\",\n                \"kind\": \"LinkedField\",\n                \"name\": \"syncedData\",\n                \"plural\": false,\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"updated\",\n                    \"storageKey\": null\n                  },\n                  (v13/*: any*/),\n                  (v14/*: any*/),\n                  (v15/*: any*/),\n                  (v16/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Track\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"tracks\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v17/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"flavor\",\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"mimetype\",\n                        \"storageKey\": null\n                      },\n                      (v18/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"isMaster\",\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Caption\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"captions\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v17/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"lang\",\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Segment\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"segments\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v17/*: any*/),\n                      (v15/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": \"Series\",\n                \"kind\": \"LinkedField\",\n                \"name\": \"series\",\n                \"plural\": false,\n                \"selections\": [\n                  (v6/*: any*/),\n                  (v12/*: any*/),\n                  (v7/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"SyncedSeriesData\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"syncedData\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v8/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"entries\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v3/*: any*/),\n                      (v19/*: any*/),\n                      (v5/*: any*/),\n                      (v20/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"storageKey\": null\n              }\n            ],\n            \"type\": \"AuthorizedEvent\",\n            \"abstractKey\": null\n          },\n          (v20/*: any*/)\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"realm\",\n        \"args\": null,\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"rootRealm\",\n        \"plural\": false,\n        \"selections\": [\n          (v21/*: any*/),\n          (v22/*: any*/),\n          (v23/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"ancestors\",\n            \"plural\": true,\n            \"selections\": [\n              (v21/*: any*/),\n              (v22/*: any*/),\n              (v6/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          (v6/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"childOrder\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"isUserRoot\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"children\",\n            \"plural\": true,\n            \"selections\": [\n              (v6/*: any*/),\n              (v21/*: any*/),\n              (v22/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"parent\",\n            \"plural\": false,\n            \"selections\": [\n              (v23/*: any*/),\n              (v21/*: any*/),\n              (v22/*: any*/),\n              (v6/*: any*/)\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"playlist\",\n        \"args\": (v2/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"playlistById\",\n        \"plural\": false,\n        \"selections\": [\n          (v3/*: any*/),\n          {\n            \"kind\": \"TypeDiscriminator\",\n            \"abstractKey\": \"__isPlaylist\"\n          },\n          (v5/*: any*/),\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              (v6/*: any*/),\n              (v7/*: any*/),\n              (v8/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": null,\n                \"kind\": \"LinkedField\",\n                \"name\": \"entries\",\n                \"plural\": true,\n                \"selections\": [\n                  (v3/*: any*/),\n                  (v19/*: any*/),\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": (v4/*: any*/),\n                    \"type\": \"Missing\",\n                    \"abstractKey\": null\n                  },\n                  (v5/*: any*/),\n                  (v20/*: any*/)\n                ],\n                \"storageKey\": null\n              }\n            ],\n            \"type\": \"AuthorizedPlaylist\",\n            \"abstractKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"3b38add0c326cbc84fff02f260a3e937\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"VideoPageDirectOpencastLinkQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query VideoPageDirectOpencastLinkQuery(\\n  $id: String!\\n  $listId: ID!\\n) {\\n  ...UserData\\n  event: eventByOpencastId(id: $id) {\\n    __typename\\n    ...VideoPageEventData\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  realm: rootRealm {\\n    ...VideoPageRealmData\\n    ...NavigationData\\n    id\\n  }\\n  playlist: playlistById(id: $listId) {\\n    __typename\\n    ...PlaylistBlockPlaylistData\\n    ... on AuthorizedPlaylist {\\n      id\\n    }\\n  }\\n}\\n\\nfragment NavigationData on Realm {\\n  id\\n  name\\n  childOrder\\n  isUserRoot\\n  children {\\n    id\\n    name\\n    path\\n  }\\n  parent {\\n    isMainRoot\\n    name\\n    path\\n    id\\n  }\\n}\\n\\nfragment PlaylistBlockPlaylistData on Playlist {\\n  __isPlaylist: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedPlaylist {\\n    id\\n    title\\n    description\\n    entries {\\n      __typename\\n      ... on AuthorizedEvent {\\n        id\\n        ...VideoListEventData\\n      }\\n      ... on Missing {\\n        dummy\\n      }\\n      ... on NotAllowed {\\n        dummy\\n      }\\n      ... on Node {\\n        __isNode: __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment SeriesBlockSeriesData on Series {\\n  title\\n  syncedData {\\n    description\\n  }\\n  entries {\\n    __typename\\n    ... on AuthorizedEvent {\\n      id\\n      ...VideoListEventData\\n    }\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n}\\n\\nfragment UserData on Query {\\n  currentUser {\\n    username\\n    displayName\\n    canUpload\\n    canUseStudio\\n    canUseEditor\\n    canCreateUserRealm\\n    canFindUnlisted\\n    roles\\n    userRole\\n  }\\n}\\n\\nfragment VideoListEventData on AuthorizedEvent {\\n  id\\n  title\\n  created\\n  creators\\n  isLive\\n  description\\n  series {\\n    title\\n    id\\n  }\\n  syncedData {\\n    duration\\n    thumbnail\\n    startTime\\n    endTime\\n    tracks {\\n      resolution\\n    }\\n  }\\n}\\n\\nfragment VideoPageEventData on Event {\\n  __isEvent: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedEvent {\\n    id\\n    title\\n    description\\n    creators\\n    created\\n    isLive\\n    opencastId\\n    metadata\\n    canWrite\\n    syncedData {\\n      updated\\n      duration\\n      thumbnail\\n      startTime\\n      endTime\\n      tracks {\\n        uri\\n        flavor\\n        mimetype\\n        resolution\\n        isMaster\\n      }\\n      captions {\\n        uri\\n        lang\\n      }\\n      segments {\\n        uri\\n        startTime\\n      }\\n    }\\n    series {\\n      id\\n      opencastId\\n      title\\n      ...SeriesBlockSeriesData\\n    }\\n  }\\n}\\n\\nfragment VideoPageRealmData on Realm {\\n  name\\n  path\\n  isMainRoot\\n  ancestors {\\n    name\\n    path\\n    id\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"3398ecfe9683dceedada08101103f2c6\";\n\nexport default node;\n","/**\n * @generated SignedSource<<12070cdd48c13a3fe47c007056f6668b>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type VideoPageEventData$data = {\n  readonly __typename: \"AuthorizedEvent\";\n  readonly canWrite: boolean;\n  readonly created: string;\n  readonly creators: ReadonlyArray<string>;\n  readonly description: string | null | undefined;\n  readonly id: string;\n  readonly isLive: boolean;\n  readonly metadata: Record<string, Record<string, string[]>>;\n  readonly opencastId: string;\n  readonly series: {\n    readonly id: string;\n    readonly opencastId: string;\n    readonly title: string;\n    readonly \" $fragmentSpreads\": FragmentRefs<\"SeriesBlockSeriesData\">;\n  } | null | undefined;\n  readonly syncedData: {\n    readonly captions: ReadonlyArray<{\n      readonly lang: string | null | undefined;\n      readonly uri: string;\n    }>;\n    readonly duration: number;\n    readonly endTime: string | null | undefined;\n    readonly segments: ReadonlyArray<{\n      readonly startTime: number;\n      readonly uri: string;\n    }>;\n    readonly startTime: string | null | undefined;\n    readonly thumbnail: string | null | undefined;\n    readonly tracks: ReadonlyArray<{\n      readonly flavor: string;\n      readonly isMaster: boolean | null | undefined;\n      readonly mimetype: string | null | undefined;\n      readonly resolution: ReadonlyArray<number> | null | undefined;\n      readonly uri: string;\n    }>;\n    readonly updated: string;\n  } | null | undefined;\n  readonly title: string;\n  readonly \" $fragmentType\": \"VideoPageEventData\";\n} | {\n  readonly __typename: \"NotAllowed\";\n  readonly dummy: boolean | null | undefined;\n  readonly \" $fragmentType\": \"VideoPageEventData\";\n} | {\n  // This will never be '%other', but we need some\n  // value in case none of the concrete values match.\n  readonly __typename: \"%other\";\n  readonly \" $fragmentType\": \"VideoPageEventData\";\n};\nexport type VideoPageEventData$key = {\n  readonly \" $data\"?: VideoPageEventData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"VideoPageEventData\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv1 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"opencastId\",\n  \"storageKey\": null\n},\nv3 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"startTime\",\n  \"storageKey\": null\n},\nv4 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"uri\",\n  \"storageKey\": null\n};\nreturn {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"VideoPageEventData\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"__typename\",\n      \"storageKey\": null\n    },\n    {\n      \"kind\": \"InlineFragment\",\n      \"selections\": [\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"dummy\",\n          \"storageKey\": null\n        }\n      ],\n      \"type\": \"NotAllowed\",\n      \"abstractKey\": null\n    },\n    {\n      \"kind\": \"InlineFragment\",\n      \"selections\": [\n        (v0/*: any*/),\n        (v1/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"description\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"creators\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"created\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"isLive\",\n          \"storageKey\": null\n        },\n        (v2/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"metadata\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"canWrite\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": \"SyncedEventData\",\n          \"kind\": \"LinkedField\",\n          \"name\": \"syncedData\",\n          \"plural\": false,\n          \"selections\": [\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"updated\",\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"duration\",\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"thumbnail\",\n              \"storageKey\": null\n            },\n            (v3/*: any*/),\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"endTime\",\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"concreteType\": \"Track\",\n              \"kind\": \"LinkedField\",\n              \"name\": \"tracks\",\n              \"plural\": true,\n              \"selections\": [\n                (v4/*: any*/),\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"kind\": \"ScalarField\",\n                  \"name\": \"flavor\",\n                  \"storageKey\": null\n                },\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"kind\": \"ScalarField\",\n                  \"name\": \"mimetype\",\n                  \"storageKey\": null\n                },\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"kind\": \"ScalarField\",\n                  \"name\": \"resolution\",\n                  \"storageKey\": null\n                },\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"kind\": \"ScalarField\",\n                  \"name\": \"isMaster\",\n                  \"storageKey\": null\n                }\n              ],\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"concreteType\": \"Caption\",\n              \"kind\": \"LinkedField\",\n              \"name\": \"captions\",\n              \"plural\": true,\n              \"selections\": [\n                (v4/*: any*/),\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"kind\": \"ScalarField\",\n                  \"name\": \"lang\",\n                  \"storageKey\": null\n                }\n              ],\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"concreteType\": \"Segment\",\n              \"kind\": \"LinkedField\",\n              \"name\": \"segments\",\n              \"plural\": true,\n              \"selections\": [\n                (v4/*: any*/),\n                (v3/*: any*/)\n              ],\n              \"storageKey\": null\n            }\n          ],\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": \"Series\",\n          \"kind\": \"LinkedField\",\n          \"name\": \"series\",\n          \"plural\": false,\n          \"selections\": [\n            (v0/*: any*/),\n            (v2/*: any*/),\n            (v1/*: any*/),\n            {\n              \"args\": null,\n              \"kind\": \"FragmentSpread\",\n              \"name\": \"SeriesBlockSeriesData\"\n            }\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"type\": \"AuthorizedEvent\",\n      \"abstractKey\": null\n    }\n  ],\n  \"type\": \"Event\",\n  \"abstractKey\": \"__isEvent\"\n};\n})();\n\n(node as any).hash = \"1c4772855501d5ef0cd3207740b8a804\";\n\nexport default node;\n","/**\n * @generated SignedSource<<72b59469d97284e884ac6e782930005c>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type VideoPageInRealmQuery$variables = {\n  id: string;\n  listId: string;\n  realmPath: string;\n};\nexport type VideoPageInRealmQuery$data = {\n  readonly event: {\n    readonly isReferencedByRealm?: boolean;\n    readonly \" $fragmentSpreads\": FragmentRefs<\"VideoPageEventData\">;\n  } | null | undefined;\n  readonly playlist: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"PlaylistBlockPlaylistData\">;\n  } | null | undefined;\n  readonly realm: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"NavigationData\" | \"VideoPageRealmData\">;\n  } | null | undefined;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"UserData\">;\n};\nexport type VideoPageInRealmQuery = {\n  response: VideoPageInRealmQuery$data;\n  variables: VideoPageInRealmQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"id\"\n},\nv1 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"listId\"\n},\nv2 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"realmPath\"\n},\nv3 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"id\"\n  }\n],\nv4 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"path\",\n    \"variableName\": \"realmPath\"\n  }\n],\nv5 = {\n  \"alias\": null,\n  \"args\": (v4/*: any*/),\n  \"kind\": \"ScalarField\",\n  \"name\": \"isReferencedByRealm\",\n  \"storageKey\": null\n},\nv6 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"listId\"\n  }\n],\nv7 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv8 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"dummy\",\n    \"storageKey\": null\n  }\n],\nv9 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": (v8/*: any*/),\n  \"type\": \"NotAllowed\",\n  \"abstractKey\": null\n},\nv10 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv11 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv12 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n},\nv13 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"creators\",\n  \"storageKey\": null\n},\nv14 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"created\",\n  \"storageKey\": null\n},\nv15 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isLive\",\n  \"storageKey\": null\n},\nv16 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"opencastId\",\n  \"storageKey\": null\n},\nv17 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"duration\",\n  \"storageKey\": null\n},\nv18 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"thumbnail\",\n  \"storageKey\": null\n},\nv19 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"startTime\",\n  \"storageKey\": null\n},\nv20 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"endTime\",\n  \"storageKey\": null\n},\nv21 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"uri\",\n  \"storageKey\": null\n},\nv22 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"resolution\",\n  \"storageKey\": null\n},\nv23 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v10/*: any*/),\n    (v11/*: any*/),\n    (v14/*: any*/),\n    (v13/*: any*/),\n    (v15/*: any*/),\n    (v12/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Series\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"series\",\n      \"plural\": false,\n      \"selections\": [\n        (v11/*: any*/),\n        (v10/*: any*/)\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"SyncedEventData\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"syncedData\",\n      \"plural\": false,\n      \"selections\": [\n        (v17/*: any*/),\n        (v18/*: any*/),\n        (v19/*: any*/),\n        (v20/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": \"Track\",\n          \"kind\": \"LinkedField\",\n          \"name\": \"tracks\",\n          \"plural\": true,\n          \"selections\": [\n            (v22/*: any*/)\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"AuthorizedEvent\",\n  \"abstractKey\": null\n},\nv24 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v10/*: any*/)\n  ],\n  \"type\": \"Node\",\n  \"abstractKey\": \"__isNode\"\n},\nv25 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv26 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n},\nv27 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isMainRoot\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": [\n      (v0/*: any*/),\n      (v1/*: any*/),\n      (v2/*: any*/)\n    ],\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"VideoPageInRealmQuery\",\n    \"selections\": [\n      {\n        \"args\": null,\n        \"kind\": \"FragmentSpread\",\n        \"name\": \"UserData\"\n      },\n      {\n        \"alias\": \"event\",\n        \"args\": (v3/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"eventById\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"VideoPageEventData\"\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              (v5/*: any*/)\n            ],\n            \"type\": \"AuthorizedEvent\",\n            \"abstractKey\": null\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"realm\",\n        \"args\": (v4/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"realmByPath\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"VideoPageRealmData\"\n          },\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"NavigationData\"\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"playlist\",\n        \"args\": (v6/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"playlistById\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"PlaylistBlockPlaylistData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": [\n      (v0/*: any*/),\n      (v2/*: any*/),\n      (v1/*: any*/)\n    ],\n    \"kind\": \"Operation\",\n    \"name\": \"VideoPageInRealmQuery\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"User\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"currentUser\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"username\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"displayName\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUpload\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseStudio\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseEditor\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canCreateUserRealm\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canFindUnlisted\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"roles\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"userRole\",\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"event\",\n        \"args\": (v3/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"eventById\",\n        \"plural\": false,\n        \"selections\": [\n          (v7/*: any*/),\n          {\n            \"kind\": \"TypeDiscriminator\",\n            \"abstractKey\": \"__isEvent\"\n          },\n          (v9/*: any*/),\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              (v10/*: any*/),\n              (v11/*: any*/),\n              (v12/*: any*/),\n              (v13/*: any*/),\n              (v14/*: any*/),\n              (v15/*: any*/),\n              (v16/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"metadata\",\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"canWrite\",\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": \"SyncedEventData\",\n                \"kind\": \"LinkedField\",\n                \"name\": \"syncedData\",\n                \"plural\": false,\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"updated\",\n                    \"storageKey\": null\n                  },\n                  (v17/*: any*/),\n                  (v18/*: any*/),\n                  (v19/*: any*/),\n                  (v20/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Track\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"tracks\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v21/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"flavor\",\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"mimetype\",\n                        \"storageKey\": null\n                      },\n                      (v22/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"isMaster\",\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Caption\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"captions\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v21/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"lang\",\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Segment\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"segments\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v21/*: any*/),\n                      (v19/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": \"Series\",\n                \"kind\": \"LinkedField\",\n                \"name\": \"series\",\n                \"plural\": false,\n                \"selections\": [\n                  (v10/*: any*/),\n                  (v16/*: any*/),\n                  (v11/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"SyncedSeriesData\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"syncedData\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v12/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"entries\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v7/*: any*/),\n                      (v23/*: any*/),\n                      (v9/*: any*/),\n                      (v24/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"storageKey\": null\n              },\n              (v5/*: any*/)\n            ],\n            \"type\": \"AuthorizedEvent\",\n            \"abstractKey\": null\n          },\n          (v24/*: any*/)\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"realm\",\n        \"args\": (v4/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"realmByPath\",\n        \"plural\": false,\n        \"selections\": [\n          (v25/*: any*/),\n          (v26/*: any*/),\n          (v27/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"ancestors\",\n            \"plural\": true,\n            \"selections\": [\n              (v25/*: any*/),\n              (v26/*: any*/),\n              (v10/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          (v10/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"childOrder\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"isUserRoot\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"children\",\n            \"plural\": true,\n            \"selections\": [\n              (v10/*: any*/),\n              (v25/*: any*/),\n              (v26/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"parent\",\n            \"plural\": false,\n            \"selections\": [\n              (v27/*: any*/),\n              (v25/*: any*/),\n              (v26/*: any*/),\n              (v10/*: any*/)\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"playlist\",\n        \"args\": (v6/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"playlistById\",\n        \"plural\": false,\n        \"selections\": [\n          (v7/*: any*/),\n          {\n            \"kind\": \"TypeDiscriminator\",\n            \"abstractKey\": \"__isPlaylist\"\n          },\n          (v9/*: any*/),\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              (v10/*: any*/),\n              (v11/*: any*/),\n              (v12/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": null,\n                \"kind\": \"LinkedField\",\n                \"name\": \"entries\",\n                \"plural\": true,\n                \"selections\": [\n                  (v7/*: any*/),\n                  (v23/*: any*/),\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": (v8/*: any*/),\n                    \"type\": \"Missing\",\n                    \"abstractKey\": null\n                  },\n                  (v9/*: any*/),\n                  (v24/*: any*/)\n                ],\n                \"storageKey\": null\n              }\n            ],\n            \"type\": \"AuthorizedPlaylist\",\n            \"abstractKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"77ebcf0b5906b6564b0a340946cd6fb7\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"VideoPageInRealmQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query VideoPageInRealmQuery(\\n  $id: ID!\\n  $realmPath: String!\\n  $listId: ID!\\n) {\\n  ...UserData\\n  event: eventById(id: $id) {\\n    __typename\\n    ...VideoPageEventData\\n    ... on AuthorizedEvent {\\n      isReferencedByRealm(path: $realmPath)\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  realm: realmByPath(path: $realmPath) {\\n    ...VideoPageRealmData\\n    ...NavigationData\\n    id\\n  }\\n  playlist: playlistById(id: $listId) {\\n    __typename\\n    ...PlaylistBlockPlaylistData\\n    ... on AuthorizedPlaylist {\\n      id\\n    }\\n  }\\n}\\n\\nfragment NavigationData on Realm {\\n  id\\n  name\\n  childOrder\\n  isUserRoot\\n  children {\\n    id\\n    name\\n    path\\n  }\\n  parent {\\n    isMainRoot\\n    name\\n    path\\n    id\\n  }\\n}\\n\\nfragment PlaylistBlockPlaylistData on Playlist {\\n  __isPlaylist: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedPlaylist {\\n    id\\n    title\\n    description\\n    entries {\\n      __typename\\n      ... on AuthorizedEvent {\\n        id\\n        ...VideoListEventData\\n      }\\n      ... on Missing {\\n        dummy\\n      }\\n      ... on NotAllowed {\\n        dummy\\n      }\\n      ... on Node {\\n        __isNode: __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment SeriesBlockSeriesData on Series {\\n  title\\n  syncedData {\\n    description\\n  }\\n  entries {\\n    __typename\\n    ... on AuthorizedEvent {\\n      id\\n      ...VideoListEventData\\n    }\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n}\\n\\nfragment UserData on Query {\\n  currentUser {\\n    username\\n    displayName\\n    canUpload\\n    canUseStudio\\n    canUseEditor\\n    canCreateUserRealm\\n    canFindUnlisted\\n    roles\\n    userRole\\n  }\\n}\\n\\nfragment VideoListEventData on AuthorizedEvent {\\n  id\\n  title\\n  created\\n  creators\\n  isLive\\n  description\\n  series {\\n    title\\n    id\\n  }\\n  syncedData {\\n    duration\\n    thumbnail\\n    startTime\\n    endTime\\n    tracks {\\n      resolution\\n    }\\n  }\\n}\\n\\nfragment VideoPageEventData on Event {\\n  __isEvent: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedEvent {\\n    id\\n    title\\n    description\\n    creators\\n    created\\n    isLive\\n    opencastId\\n    metadata\\n    canWrite\\n    syncedData {\\n      updated\\n      duration\\n      thumbnail\\n      startTime\\n      endTime\\n      tracks {\\n        uri\\n        flavor\\n        mimetype\\n        resolution\\n        isMaster\\n      }\\n      captions {\\n        uri\\n        lang\\n      }\\n      segments {\\n        uri\\n        startTime\\n      }\\n    }\\n    series {\\n      id\\n      opencastId\\n      title\\n      ...SeriesBlockSeriesData\\n    }\\n  }\\n}\\n\\nfragment VideoPageRealmData on Realm {\\n  name\\n  path\\n  isMainRoot\\n  ancestors {\\n    name\\n    path\\n    id\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"47f142fbf50361124390d58b4df98951\";\n\nexport default node;\n","/**\n * @generated SignedSource<<706fd39013db810ad680eea85fce4cbc>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type VideoPageRealmData$data = {\n  readonly ancestors: ReadonlyArray<{\n    readonly name: string | null | undefined;\n    readonly path: string;\n  }>;\n  readonly isMainRoot: boolean;\n  readonly name: string | null | undefined;\n  readonly path: string;\n  readonly \" $fragmentType\": \"VideoPageRealmData\";\n};\nexport type VideoPageRealmData$key = {\n  readonly \" $data\"?: VideoPageRealmData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"VideoPageRealmData\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv1 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n};\nreturn {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"VideoPageRealmData\",\n  \"selections\": [\n    (v0/*: any*/),\n    (v1/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"isMainRoot\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Realm\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"ancestors\",\n      \"plural\": true,\n      \"selections\": [\n        (v0/*: any*/),\n        (v1/*: any*/)\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"Realm\",\n  \"abstractKey\": null\n};\n})();\n\n(node as any).hash = \"c9523996b24cd4a83baceda25d2351a3\";\n\nexport default node;\n","/**\n * @generated SignedSource<<6e5a6844c239a1fbc0af0cdeeca4103d>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type EditModeFormRealmData$data = {\n  readonly blocks: ReadonlyArray<{\n    readonly id: string;\n  }>;\n  readonly id: string;\n  readonly \" $fragmentType\": \"EditModeFormRealmData\";\n};\nexport type EditModeFormRealmData$key = {\n  readonly \" $data\"?: EditModeFormRealmData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"EditModeFormRealmData\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n};\nreturn {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"EditModeFormRealmData\",\n  \"selections\": [\n    (v0/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": null,\n      \"kind\": \"LinkedField\",\n      \"name\": \"blocks\",\n      \"plural\": true,\n      \"selections\": [\n        (v0/*: any*/)\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"Realm\",\n  \"abstractKey\": null\n};\n})();\n\n(node as any).hash = \"c0c6eaacf988e66c16e1c5e1946fc4e0\";\n\nexport default node;\n","/**\n * @generated SignedSource<<996baf842518c560d92fa90620d8723d>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type EditModeRealmData$data = {\n  readonly blocks: ReadonlyArray<{\n    readonly __typename: string;\n    readonly id: string;\n    readonly \" $fragmentSpreads\": FragmentRefs<\"PlaylistEditModeBlockData\" | \"SeriesEditModeBlockData\" | \"TextEditModeBlockData\" | \"TitleEditModeBlockData\" | \"VideoEditModeBlockData\">;\n  }>;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"EditModeFormRealmData\">;\n  readonly \" $fragmentType\": \"EditModeRealmData\";\n};\nexport type EditModeRealmData$key = {\n  readonly \" $data\"?: EditModeRealmData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"EditModeRealmData\">;\n};\n\nconst node: ReaderFragment = {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"EditModeRealmData\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": null,\n      \"kind\": \"LinkedField\",\n      \"name\": \"blocks\",\n      \"plural\": true,\n      \"selections\": [\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"id\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"__typename\",\n          \"storageKey\": null\n        },\n        {\n          \"kind\": \"InlineFragment\",\n          \"selections\": [\n            {\n              \"args\": null,\n              \"kind\": \"FragmentSpread\",\n              \"name\": \"TitleEditModeBlockData\"\n            }\n          ],\n          \"type\": \"TitleBlock\",\n          \"abstractKey\": null\n        },\n        {\n          \"kind\": \"InlineFragment\",\n          \"selections\": [\n            {\n              \"args\": null,\n              \"kind\": \"FragmentSpread\",\n              \"name\": \"TextEditModeBlockData\"\n            }\n          ],\n          \"type\": \"TextBlock\",\n          \"abstractKey\": null\n        },\n        {\n          \"kind\": \"InlineFragment\",\n          \"selections\": [\n            {\n              \"args\": null,\n              \"kind\": \"FragmentSpread\",\n              \"name\": \"SeriesEditModeBlockData\"\n            }\n          ],\n          \"type\": \"SeriesBlock\",\n          \"abstractKey\": null\n        },\n        {\n          \"kind\": \"InlineFragment\",\n          \"selections\": [\n            {\n              \"args\": null,\n              \"kind\": \"FragmentSpread\",\n              \"name\": \"VideoEditModeBlockData\"\n            }\n          ],\n          \"type\": \"VideoBlock\",\n          \"abstractKey\": null\n        },\n        {\n          \"kind\": \"InlineFragment\",\n          \"selections\": [\n            {\n              \"args\": null,\n              \"kind\": \"FragmentSpread\",\n              \"name\": \"PlaylistEditModeBlockData\"\n            }\n          ],\n          \"type\": \"PlaylistBlock\",\n          \"abstractKey\": null\n        }\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"args\": null,\n      \"kind\": \"FragmentSpread\",\n      \"name\": \"EditModeFormRealmData\"\n    }\n  ],\n  \"type\": \"Realm\",\n  \"abstractKey\": null\n};\n\n(node as any).hash = \"332c1b24631ef30e3ce0025b920923a0\";\n\nexport default node;\n","/**\n * @generated SignedSource<<e079fac05d592f1756e43b9de8b15a36>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type VideoListLayout = \"GALLERY\" | \"LIST\" | \"SLIDER\" | \"%future added value\";\nexport type VideoListOrder = \"AZ\" | \"NEW_TO_OLD\" | \"OLD_TO_NEW\" | \"ORIGINAL\" | \"ZA\" | \"%future added value\";\nexport type NewPlaylistBlock = {\n  layout: VideoListLayout;\n  order: VideoListOrder;\n  playlist: string;\n  showMetadata: boolean;\n  showTitle: boolean;\n};\nexport type PlaylistEditCreateMutation$variables = {\n  block: NewPlaylistBlock;\n  index: number;\n  realm: string;\n};\nexport type PlaylistEditCreateMutation$data = {\n  readonly addPlaylistBlock: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"ContentManageRealmData\">;\n  };\n};\nexport type PlaylistEditCreateMutation = {\n  response: PlaylistEditCreateMutation$data;\n  variables: PlaylistEditCreateMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"block\"\n},\nv1 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"index\"\n},\nv2 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"realm\"\n},\nv3 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"block\",\n    \"variableName\": \"block\"\n  },\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"index\",\n    \"variableName\": \"index\"\n  },\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"realm\",\n    \"variableName\": \"realm\"\n  }\n],\nv4 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n},\nv6 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv7 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv8 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"content\",\n    \"storageKey\": null\n  }\n],\nv9 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"opencastId\",\n  \"storageKey\": null\n},\nv10 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv11 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n},\nv12 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"created\",\n  \"storageKey\": null\n},\nv13 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"creators\",\n  \"storageKey\": null\n},\nv14 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isLive\",\n  \"storageKey\": null\n},\nv15 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"duration\",\n  \"storageKey\": null\n},\nv16 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"thumbnail\",\n  \"storageKey\": null\n},\nv17 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"startTime\",\n  \"storageKey\": null\n},\nv18 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"endTime\",\n  \"storageKey\": null\n},\nv19 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"resolution\",\n  \"storageKey\": null\n},\nv20 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v6/*: any*/),\n    (v10/*: any*/),\n    (v12/*: any*/),\n    (v13/*: any*/),\n    (v14/*: any*/),\n    (v11/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Series\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"series\",\n      \"plural\": false,\n      \"selections\": [\n        (v10/*: any*/),\n        (v6/*: any*/)\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"SyncedEventData\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"syncedData\",\n      \"plural\": false,\n      \"selections\": [\n        (v15/*: any*/),\n        (v16/*: any*/),\n        (v17/*: any*/),\n        (v18/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": \"Track\",\n          \"kind\": \"LinkedField\",\n          \"name\": \"tracks\",\n          \"plural\": true,\n          \"selections\": [\n            (v19/*: any*/)\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"AuthorizedEvent\",\n  \"abstractKey\": null\n},\nv21 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"dummy\",\n    \"storageKey\": null\n  }\n],\nv22 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": (v21/*: any*/),\n  \"type\": \"NotAllowed\",\n  \"abstractKey\": null\n},\nv23 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v6/*: any*/)\n  ],\n  \"type\": \"Node\",\n  \"abstractKey\": \"__isNode\"\n},\nv24 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showTitle\",\n  \"storageKey\": null\n},\nv25 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showMetadata\",\n  \"storageKey\": null\n},\nv26 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"order\",\n  \"storageKey\": null\n},\nv27 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"layout\",\n  \"storageKey\": null\n},\nv28 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"uri\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": [\n      (v0/*: any*/),\n      (v1/*: any*/),\n      (v2/*: any*/)\n    ],\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"PlaylistEditCreateMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v3/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"addPlaylistBlock\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"ContentManageRealmData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Mutation\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": [\n      (v2/*: any*/),\n      (v1/*: any*/),\n      (v0/*: any*/)\n    ],\n    \"kind\": \"Operation\",\n    \"name\": \"PlaylistEditCreateMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v3/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"addPlaylistBlock\",\n        \"plural\": false,\n        \"selections\": [\n          (v4/*: any*/),\n          (v5/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"isMainRoot\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"ancestors\",\n            \"plural\": true,\n            \"selections\": [\n              (v4/*: any*/),\n              (v5/*: any*/),\n              (v6/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          (v6/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": null,\n            \"kind\": \"LinkedField\",\n            \"name\": \"blocks\",\n            \"plural\": true,\n            \"selections\": [\n              (v7/*: any*/),\n              (v6/*: any*/),\n              {\n                \"kind\": \"TypeDiscriminator\",\n                \"abstractKey\": \"__isBlock\"\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": (v8/*: any*/),\n                \"type\": \"TitleBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": (v8/*: any*/),\n                \"type\": \"TextBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Series\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"series\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v6/*: any*/),\n                      (v9/*: any*/),\n                      (v10/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"SyncedSeriesData\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"syncedData\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v11/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": null,\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"entries\",\n                        \"plural\": true,\n                        \"selections\": [\n                          (v7/*: any*/),\n                          (v20/*: any*/),\n                          (v22/*: any*/),\n                          (v23/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v24/*: any*/),\n                  (v25/*: any*/),\n                  (v26/*: any*/),\n                  (v27/*: any*/)\n                ],\n                \"type\": \"SeriesBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"event\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v7/*: any*/),\n                      (v22/*: any*/),\n                      {\n                        \"kind\": \"InlineFragment\",\n                        \"selections\": [\n                          (v6/*: any*/),\n                          (v10/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Series\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"series\",\n                            \"plural\": false,\n                            \"selections\": [\n                              (v10/*: any*/),\n                              (v6/*: any*/),\n                              (v9/*: any*/)\n                            ],\n                            \"storageKey\": null\n                          },\n                          (v12/*: any*/),\n                          (v14/*: any*/),\n                          (v13/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"SyncedEventData\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"syncedData\",\n                            \"plural\": false,\n                            \"selections\": [\n                              (v16/*: any*/),\n                              (v15/*: any*/),\n                              (v17/*: any*/),\n                              (v18/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"updated\",\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Track\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"tracks\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v28/*: any*/),\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"flavor\",\n                                    \"storageKey\": null\n                                  },\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"mimetype\",\n                                    \"storageKey\": null\n                                  },\n                                  (v19/*: any*/),\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"isMaster\",\n                                    \"storageKey\": null\n                                  }\n                                ],\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Caption\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"captions\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v28/*: any*/),\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"lang\",\n                                    \"storageKey\": null\n                                  }\n                                ],\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Segment\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"segments\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v28/*: any*/),\n                                  (v17/*: any*/)\n                                ],\n                                \"storageKey\": null\n                              }\n                            ],\n                            \"storageKey\": null\n                          },\n                          (v9/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"kind\": \"ScalarField\",\n                            \"name\": \"metadata\",\n                            \"storageKey\": null\n                          },\n                          (v11/*: any*/)\n                        ],\n                        \"type\": \"AuthorizedEvent\",\n                        \"abstractKey\": null\n                      },\n                      (v23/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v24/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"showLink\",\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"VideoBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"playlist\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v7/*: any*/),\n                      (v22/*: any*/),\n                      {\n                        \"kind\": \"InlineFragment\",\n                        \"selections\": [\n                          (v6/*: any*/),\n                          (v9/*: any*/),\n                          (v10/*: any*/),\n                          (v11/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": null,\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"entries\",\n                            \"plural\": true,\n                            \"selections\": [\n                              (v7/*: any*/),\n                              (v20/*: any*/),\n                              {\n                                \"kind\": \"InlineFragment\",\n                                \"selections\": (v21/*: any*/),\n                                \"type\": \"Missing\",\n                                \"abstractKey\": null\n                              },\n                              (v22/*: any*/),\n                              (v23/*: any*/)\n                            ],\n                            \"storageKey\": null\n                          }\n                        ],\n                        \"type\": \"AuthorizedPlaylist\",\n                        \"abstractKey\": null\n                      },\n                      {\n                        \"kind\": \"TypeDiscriminator\",\n                        \"abstractKey\": \"__isPlaylist\"\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v24/*: any*/),\n                  (v25/*: any*/),\n                  (v26/*: any*/),\n                  (v27/*: any*/)\n                ],\n                \"type\": \"PlaylistBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"ClientExtension\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"editMode\",\n                    \"storageKey\": null\n                  }\n                ]\n              }\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": null,\n            \"kind\": \"LinkedField\",\n            \"name\": \"nameSource\",\n            \"plural\": false,\n            \"selections\": [\n              (v7/*: any*/),\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"block\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v7/*: any*/),\n                      (v6/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"RealmNameFromBlock\",\n                \"abstractKey\": null\n              }\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"0cb06e9afed92d2cfcef37c89b407296\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"PlaylistEditCreateMutation\",\n    \"operationKind\": \"mutation\",\n    \"text\": \"mutation PlaylistEditCreateMutation(\\n  $realm: ID!\\n  $index: Int!\\n  $block: NewPlaylistBlock!\\n) {\\n  addPlaylistBlock(realm: $realm, index: $index, block: $block) {\\n    ...ContentManageRealmData\\n    id\\n  }\\n}\\n\\nfragment AddButtonsRealmData on Realm {\\n  id\\n}\\n\\nfragment BlockRealmData on Realm {\\n  id\\n  ...BlocksRealmData\\n  ...EditButtonsRealmData\\n  ...EditModeRealmData\\n  blocks {\\n    __typename\\n    id\\n    ...BlocksBlockData\\n  }\\n}\\n\\nfragment BlocksBlockData on Block {\\n  __isBlock: __typename\\n  id\\n  __typename\\n  ... on TitleBlock {\\n    ...TitleBlockData\\n  }\\n  ... on TextBlock {\\n    ...TextBlockData\\n  }\\n  ... on SeriesBlock {\\n    ...SeriesBlockData\\n  }\\n  ... on VideoBlock {\\n    ...VideoBlockData\\n  }\\n  ... on PlaylistBlock {\\n    ...PlaylistBlockData\\n  }\\n}\\n\\nfragment BlocksRealmData on Realm {\\n  path\\n}\\n\\nfragment ContentManageRealmData on Realm {\\n  name\\n  path\\n  isMainRoot\\n  ancestors {\\n    name\\n    path\\n    id\\n  }\\n  ...BlockRealmData\\n  ...AddButtonsRealmData\\n  blocks {\\n    __typename\\n    id\\n  }\\n}\\n\\nfragment EditButtonsRealmData on Realm {\\n  ...MoveButtonsData\\n  blocks {\\n    __typename\\n    ...RemoveButtonData\\n    id\\n  }\\n  nameSource {\\n    __typename\\n    ... on RealmNameFromBlock {\\n      block {\\n        __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment EditModeFormRealmData on Realm {\\n  id\\n  blocks {\\n    __typename\\n    id\\n  }\\n}\\n\\nfragment EditModeRealmData on Realm {\\n  blocks {\\n    id\\n    __typename\\n    ... on TitleBlock {\\n      ...TitleEditModeBlockData\\n    }\\n    ... on TextBlock {\\n      ...TextEditModeBlockData\\n    }\\n    ... on SeriesBlock {\\n      ...SeriesEditModeBlockData\\n    }\\n    ... on VideoBlock {\\n      ...VideoEditModeBlockData\\n    }\\n    ... on PlaylistBlock {\\n      ...PlaylistEditModeBlockData\\n    }\\n  }\\n  ...EditModeFormRealmData\\n}\\n\\nfragment MoveButtonsData on Realm {\\n  id\\n  blocks {\\n    __typename\\n    id\\n  }\\n}\\n\\nfragment PlaylistBlockData on PlaylistBlock {\\n  playlist {\\n    __typename\\n    ...PlaylistBlockPlaylistData\\n    ... on AuthorizedPlaylist {\\n      id\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment PlaylistBlockPlaylistData on Playlist {\\n  __isPlaylist: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedPlaylist {\\n    id\\n    title\\n    description\\n    entries {\\n      __typename\\n      ... on AuthorizedEvent {\\n        id\\n        ...VideoListEventData\\n      }\\n      ... on Missing {\\n        dummy\\n      }\\n      ... on NotAllowed {\\n        dummy\\n      }\\n      ... on Node {\\n        __isNode: __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment PlaylistEditModeBlockData on PlaylistBlock {\\n  playlist {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedPlaylist {\\n      id\\n      opencastId\\n      title\\n      description\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment RemoveButtonData on Block {\\n  __isBlock: __typename\\n  id\\n}\\n\\nfragment SeriesBlockData on SeriesBlock {\\n  series {\\n    ...SeriesBlockSeriesData\\n    id\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment SeriesBlockSeriesData on Series {\\n  title\\n  syncedData {\\n    description\\n  }\\n  entries {\\n    __typename\\n    ... on AuthorizedEvent {\\n      id\\n      ...VideoListEventData\\n    }\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n}\\n\\nfragment SeriesEditModeBlockData on SeriesBlock {\\n  series {\\n    id\\n    opencastId\\n    title\\n    syncedData {\\n      description\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment TextBlockData on TextBlock {\\n  content\\n}\\n\\nfragment TextEditModeBlockData on TextBlock {\\n  content\\n}\\n\\nfragment TitleBlockData on TitleBlock {\\n  content\\n}\\n\\nfragment TitleEditModeBlockData on TitleBlock {\\n  content\\n}\\n\\nfragment VideoBlockData on VideoBlock {\\n  event {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedEvent {\\n      id\\n      title\\n      isLive\\n      opencastId\\n      created\\n      creators\\n      metadata\\n      description\\n      series {\\n        title\\n        opencastId\\n        id\\n      }\\n      syncedData {\\n        duration\\n        updated\\n        startTime\\n        endTime\\n        thumbnail\\n        tracks {\\n          uri\\n          flavor\\n          mimetype\\n          resolution\\n          isMaster\\n        }\\n        captions {\\n          uri\\n          lang\\n        }\\n        segments {\\n          uri\\n          startTime\\n        }\\n      }\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  showTitle\\n  showLink\\n}\\n\\nfragment VideoEditModeBlockData on VideoBlock {\\n  event {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedEvent {\\n      id\\n      title\\n      series {\\n        title\\n        id\\n      }\\n      created\\n      isLive\\n      creators\\n      syncedData {\\n        thumbnail\\n        duration\\n        startTime\\n        endTime\\n      }\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  showTitle\\n  showLink\\n}\\n\\nfragment VideoListEventData on AuthorizedEvent {\\n  id\\n  title\\n  created\\n  creators\\n  isLive\\n  description\\n  series {\\n    title\\n    id\\n  }\\n  syncedData {\\n    duration\\n    thumbnail\\n    startTime\\n    endTime\\n    tracks {\\n      resolution\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"93604d942775903d10480ece200d86c5\";\n\nexport default node;\n","/**\n * @generated SignedSource<<22c1c1227d052a8e641ba6e8a94fd227>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nexport type VideoListLayout = \"GALLERY\" | \"LIST\" | \"SLIDER\" | \"%future added value\";\nexport type VideoListOrder = \"AZ\" | \"NEW_TO_OLD\" | \"OLD_TO_NEW\" | \"ORIGINAL\" | \"ZA\" | \"%future added value\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type PlaylistEditModeBlockData$data = {\n  readonly layout: VideoListLayout;\n  readonly order: VideoListOrder;\n  readonly playlist: {\n    readonly __typename: \"AuthorizedPlaylist\";\n    readonly description: string | null | undefined;\n    readonly id: string;\n    readonly opencastId: string;\n    readonly title: string;\n  } | {\n    readonly __typename: \"NotAllowed\";\n    readonly dummy: boolean | null | undefined;\n  } | {\n    // This will never be '%other', but we need some\n    // value in case none of the concrete values match.\n    readonly __typename: \"%other\";\n  } | null | undefined;\n  readonly showMetadata: boolean;\n  readonly showTitle: boolean;\n  readonly \" $fragmentType\": \"PlaylistEditModeBlockData\";\n};\nexport type PlaylistEditModeBlockData$key = {\n  readonly \" $data\"?: PlaylistEditModeBlockData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"PlaylistEditModeBlockData\">;\n};\n\nconst node: ReaderFragment = {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"PlaylistEditModeBlockData\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": null,\n      \"kind\": \"LinkedField\",\n      \"name\": \"playlist\",\n      \"plural\": false,\n      \"selections\": [\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"__typename\",\n          \"storageKey\": null\n        },\n        {\n          \"kind\": \"InlineFragment\",\n          \"selections\": [\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"dummy\",\n              \"storageKey\": null\n            }\n          ],\n          \"type\": \"NotAllowed\",\n          \"abstractKey\": null\n        },\n        {\n          \"kind\": \"InlineFragment\",\n          \"selections\": [\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"id\",\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"opencastId\",\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"title\",\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"description\",\n              \"storageKey\": null\n            }\n          ],\n          \"type\": \"AuthorizedPlaylist\",\n          \"abstractKey\": null\n        }\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"showTitle\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"showMetadata\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"order\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"layout\",\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"PlaylistBlock\",\n  \"abstractKey\": null\n};\n\n(node as any).hash = \"abe9a596110e7dd067a666ce8e9470e7\";\n\nexport default node;\n","/**\n * @generated SignedSource<<0e35257c94d139307332d8443e5f52ed>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type VideoListLayout = \"GALLERY\" | \"LIST\" | \"SLIDER\" | \"%future added value\";\nexport type VideoListOrder = \"AZ\" | \"NEW_TO_OLD\" | \"OLD_TO_NEW\" | \"ORIGINAL\" | \"ZA\" | \"%future added value\";\nexport type UpdatePlaylistBlock = {\n  layout?: VideoListLayout | null | undefined;\n  order?: VideoListOrder | null | undefined;\n  playlist?: string | null | undefined;\n  showMetadata?: boolean | null | undefined;\n  showTitle?: boolean | null | undefined;\n};\nexport type PlaylistEditSaveMutation$variables = {\n  id: string;\n  set: UpdatePlaylistBlock;\n};\nexport type PlaylistEditSaveMutation$data = {\n  readonly updatePlaylistBlock: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"BlocksBlockData\" | \"EditBlockUpdateRealmNameData\">;\n  };\n};\nexport type PlaylistEditSaveMutation = {\n  response: PlaylistEditSaveMutation$data;\n  variables: PlaylistEditSaveMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"id\"\n  },\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"set\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"id\"\n  },\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"set\",\n    \"variableName\": \"set\"\n  }\n],\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv3 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv4 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"content\",\n    \"storageKey\": null\n  }\n],\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv6 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n},\nv7 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"created\",\n  \"storageKey\": null\n},\nv8 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"creators\",\n  \"storageKey\": null\n},\nv9 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isLive\",\n  \"storageKey\": null\n},\nv10 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"duration\",\n  \"storageKey\": null\n},\nv11 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"thumbnail\",\n  \"storageKey\": null\n},\nv12 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"startTime\",\n  \"storageKey\": null\n},\nv13 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"endTime\",\n  \"storageKey\": null\n},\nv14 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"resolution\",\n  \"storageKey\": null\n},\nv15 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v3/*: any*/),\n    (v5/*: any*/),\n    (v7/*: any*/),\n    (v8/*: any*/),\n    (v9/*: any*/),\n    (v6/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Series\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"series\",\n      \"plural\": false,\n      \"selections\": [\n        (v5/*: any*/),\n        (v3/*: any*/)\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"SyncedEventData\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"syncedData\",\n      \"plural\": false,\n      \"selections\": [\n        (v10/*: any*/),\n        (v11/*: any*/),\n        (v12/*: any*/),\n        (v13/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": \"Track\",\n          \"kind\": \"LinkedField\",\n          \"name\": \"tracks\",\n          \"plural\": true,\n          \"selections\": [\n            (v14/*: any*/)\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"AuthorizedEvent\",\n  \"abstractKey\": null\n},\nv16 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"dummy\",\n    \"storageKey\": null\n  }\n],\nv17 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": (v16/*: any*/),\n  \"type\": \"NotAllowed\",\n  \"abstractKey\": null\n},\nv18 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v3/*: any*/)\n  ],\n  \"type\": \"Node\",\n  \"abstractKey\": \"__isNode\"\n},\nv19 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showTitle\",\n  \"storageKey\": null\n},\nv20 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showMetadata\",\n  \"storageKey\": null\n},\nv21 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"order\",\n  \"storageKey\": null\n},\nv22 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"layout\",\n  \"storageKey\": null\n},\nv23 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"opencastId\",\n  \"storageKey\": null\n},\nv24 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"uri\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"PlaylistEditSaveMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"updatePlaylistBlock\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"BlocksBlockData\"\n          },\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"EditBlockUpdateRealmNameData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Mutation\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"PlaylistEditSaveMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"updatePlaylistBlock\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/),\n          {\n            \"kind\": \"TypeDiscriminator\",\n            \"abstractKey\": \"__isBlock\"\n          },\n          (v3/*: any*/),\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": (v4/*: any*/),\n            \"type\": \"TitleBlock\",\n            \"abstractKey\": null\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": (v4/*: any*/),\n            \"type\": \"TextBlock\",\n            \"abstractKey\": null\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": \"Series\",\n                \"kind\": \"LinkedField\",\n                \"name\": \"series\",\n                \"plural\": false,\n                \"selections\": [\n                  (v5/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"SyncedSeriesData\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"syncedData\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v6/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"entries\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v2/*: any*/),\n                      (v15/*: any*/),\n                      (v17/*: any*/),\n                      (v18/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v3/*: any*/)\n                ],\n                \"storageKey\": null\n              },\n              (v19/*: any*/),\n              (v20/*: any*/),\n              (v21/*: any*/),\n              (v22/*: any*/)\n            ],\n            \"type\": \"SeriesBlock\",\n            \"abstractKey\": null\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": null,\n                \"kind\": \"LinkedField\",\n                \"name\": \"event\",\n                \"plural\": false,\n                \"selections\": [\n                  (v2/*: any*/),\n                  (v17/*: any*/),\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": [\n                      (v3/*: any*/),\n                      (v5/*: any*/),\n                      (v9/*: any*/),\n                      (v23/*: any*/),\n                      (v7/*: any*/),\n                      (v8/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"metadata\",\n                        \"storageKey\": null\n                      },\n                      (v6/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"Series\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"series\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v5/*: any*/),\n                          (v23/*: any*/),\n                          (v3/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"SyncedEventData\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"syncedData\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v10/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"kind\": \"ScalarField\",\n                            \"name\": \"updated\",\n                            \"storageKey\": null\n                          },\n                          (v12/*: any*/),\n                          (v13/*: any*/),\n                          (v11/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Track\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"tracks\",\n                            \"plural\": true,\n                            \"selections\": [\n                              (v24/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"flavor\",\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"mimetype\",\n                                \"storageKey\": null\n                              },\n                              (v14/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"isMaster\",\n                                \"storageKey\": null\n                              }\n                            ],\n                            \"storageKey\": null\n                          },\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Caption\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"captions\",\n                            \"plural\": true,\n                            \"selections\": [\n                              (v24/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"lang\",\n                                \"storageKey\": null\n                              }\n                            ],\n                            \"storageKey\": null\n                          },\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Segment\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"segments\",\n                            \"plural\": true,\n                            \"selections\": [\n                              (v24/*: any*/),\n                              (v12/*: any*/)\n                            ],\n                            \"storageKey\": null\n                          }\n                        ],\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"type\": \"AuthorizedEvent\",\n                    \"abstractKey\": null\n                  },\n                  (v18/*: any*/)\n                ],\n                \"storageKey\": null\n              },\n              (v19/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"showLink\",\n                \"storageKey\": null\n              }\n            ],\n            \"type\": \"VideoBlock\",\n            \"abstractKey\": null\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": null,\n                \"kind\": \"LinkedField\",\n                \"name\": \"playlist\",\n                \"plural\": false,\n                \"selections\": [\n                  (v2/*: any*/),\n                  {\n                    \"kind\": \"TypeDiscriminator\",\n                    \"abstractKey\": \"__isPlaylist\"\n                  },\n                  (v17/*: any*/),\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": [\n                      (v3/*: any*/),\n                      (v5/*: any*/),\n                      (v6/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": null,\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"entries\",\n                        \"plural\": true,\n                        \"selections\": [\n                          (v2/*: any*/),\n                          (v15/*: any*/),\n                          {\n                            \"kind\": \"InlineFragment\",\n                            \"selections\": (v16/*: any*/),\n                            \"type\": \"Missing\",\n                            \"abstractKey\": null\n                          },\n                          (v17/*: any*/),\n                          (v18/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"type\": \"AuthorizedPlaylist\",\n                    \"abstractKey\": null\n                  }\n                ],\n                \"storageKey\": null\n              },\n              (v19/*: any*/),\n              (v20/*: any*/),\n              (v21/*: any*/),\n              (v22/*: any*/)\n            ],\n            \"type\": \"PlaylistBlock\",\n            \"abstractKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"realm\",\n            \"plural\": false,\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"name\",\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": null,\n                \"kind\": \"LinkedField\",\n                \"name\": \"nameSource\",\n                \"plural\": false,\n                \"selections\": [\n                  (v2/*: any*/),\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": [\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": null,\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"block\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v2/*: any*/),\n                          (v3/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"type\": \"RealmNameFromBlock\",\n                    \"abstractKey\": null\n                  }\n                ],\n                \"storageKey\": null\n              },\n              (v3/*: any*/)\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"51a5ecfe82b5043ead8b80882cdede9e\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"PlaylistEditSaveMutation\",\n    \"operationKind\": \"mutation\",\n    \"text\": \"mutation PlaylistEditSaveMutation(\\n  $id: ID!\\n  $set: UpdatePlaylistBlock!\\n) {\\n  updatePlaylistBlock(id: $id, set: $set) {\\n    __typename\\n    ...BlocksBlockData\\n    ...EditBlockUpdateRealmNameData\\n    id\\n  }\\n}\\n\\nfragment BlocksBlockData on Block {\\n  __isBlock: __typename\\n  id\\n  __typename\\n  ... on TitleBlock {\\n    ...TitleBlockData\\n  }\\n  ... on TextBlock {\\n    ...TextBlockData\\n  }\\n  ... on SeriesBlock {\\n    ...SeriesBlockData\\n  }\\n  ... on VideoBlock {\\n    ...VideoBlockData\\n  }\\n  ... on PlaylistBlock {\\n    ...PlaylistBlockData\\n  }\\n}\\n\\nfragment EditBlockUpdateRealmNameData on Block {\\n  __isBlock: __typename\\n  realm {\\n    name\\n    nameSource {\\n      __typename\\n      ... on RealmNameFromBlock {\\n        block {\\n          __typename\\n          id\\n        }\\n      }\\n    }\\n    id\\n  }\\n}\\n\\nfragment PlaylistBlockData on PlaylistBlock {\\n  playlist {\\n    __typename\\n    ...PlaylistBlockPlaylistData\\n    ... on AuthorizedPlaylist {\\n      id\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment PlaylistBlockPlaylistData on Playlist {\\n  __isPlaylist: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedPlaylist {\\n    id\\n    title\\n    description\\n    entries {\\n      __typename\\n      ... on AuthorizedEvent {\\n        id\\n        ...VideoListEventData\\n      }\\n      ... on Missing {\\n        dummy\\n      }\\n      ... on NotAllowed {\\n        dummy\\n      }\\n      ... on Node {\\n        __isNode: __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment SeriesBlockData on SeriesBlock {\\n  series {\\n    ...SeriesBlockSeriesData\\n    id\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment SeriesBlockSeriesData on Series {\\n  title\\n  syncedData {\\n    description\\n  }\\n  entries {\\n    __typename\\n    ... on AuthorizedEvent {\\n      id\\n      ...VideoListEventData\\n    }\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n}\\n\\nfragment TextBlockData on TextBlock {\\n  content\\n}\\n\\nfragment TitleBlockData on TitleBlock {\\n  content\\n}\\n\\nfragment VideoBlockData on VideoBlock {\\n  event {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedEvent {\\n      id\\n      title\\n      isLive\\n      opencastId\\n      created\\n      creators\\n      metadata\\n      description\\n      series {\\n        title\\n        opencastId\\n        id\\n      }\\n      syncedData {\\n        duration\\n        updated\\n        startTime\\n        endTime\\n        thumbnail\\n        tracks {\\n          uri\\n          flavor\\n          mimetype\\n          resolution\\n          isMaster\\n        }\\n        captions {\\n          uri\\n          lang\\n        }\\n        segments {\\n          uri\\n          startTime\\n        }\\n      }\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  showTitle\\n  showLink\\n}\\n\\nfragment VideoListEventData on AuthorizedEvent {\\n  id\\n  title\\n  created\\n  creators\\n  isLive\\n  description\\n  series {\\n    title\\n    id\\n  }\\n  syncedData {\\n    duration\\n    thumbnail\\n    startTime\\n    endTime\\n    tracks {\\n      resolution\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"f20bce7bdd1da3ff2cd7bdef40349adf\";\n\nexport default node;\n","/**\n * @generated SignedSource<<4e5d1c30c6db5053811f0c20acd35153>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type VideoListLayout = \"GALLERY\" | \"LIST\" | \"SLIDER\" | \"%future added value\";\nexport type VideoListOrder = \"AZ\" | \"NEW_TO_OLD\" | \"OLD_TO_NEW\" | \"ORIGINAL\" | \"ZA\" | \"%future added value\";\nexport type NewSeriesBlock = {\n  layout: VideoListLayout;\n  order: VideoListOrder;\n  series: string;\n  showMetadata: boolean;\n  showTitle: boolean;\n};\nexport type SeriesEditCreateMutation$variables = {\n  block: NewSeriesBlock;\n  index: number;\n  realm: string;\n};\nexport type SeriesEditCreateMutation$data = {\n  readonly addSeriesBlock: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"ContentManageRealmData\">;\n  };\n};\nexport type SeriesEditCreateMutation = {\n  response: SeriesEditCreateMutation$data;\n  variables: SeriesEditCreateMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"block\"\n},\nv1 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"index\"\n},\nv2 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"realm\"\n},\nv3 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"block\",\n    \"variableName\": \"block\"\n  },\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"index\",\n    \"variableName\": \"index\"\n  },\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"realm\",\n    \"variableName\": \"realm\"\n  }\n],\nv4 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n},\nv6 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv7 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv8 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"content\",\n    \"storageKey\": null\n  }\n],\nv9 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"opencastId\",\n  \"storageKey\": null\n},\nv10 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv11 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n},\nv12 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"created\",\n  \"storageKey\": null\n},\nv13 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"creators\",\n  \"storageKey\": null\n},\nv14 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isLive\",\n  \"storageKey\": null\n},\nv15 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"duration\",\n  \"storageKey\": null\n},\nv16 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"thumbnail\",\n  \"storageKey\": null\n},\nv17 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"startTime\",\n  \"storageKey\": null\n},\nv18 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"endTime\",\n  \"storageKey\": null\n},\nv19 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"resolution\",\n  \"storageKey\": null\n},\nv20 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v6/*: any*/),\n    (v10/*: any*/),\n    (v12/*: any*/),\n    (v13/*: any*/),\n    (v14/*: any*/),\n    (v11/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Series\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"series\",\n      \"plural\": false,\n      \"selections\": [\n        (v10/*: any*/),\n        (v6/*: any*/)\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"SyncedEventData\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"syncedData\",\n      \"plural\": false,\n      \"selections\": [\n        (v15/*: any*/),\n        (v16/*: any*/),\n        (v17/*: any*/),\n        (v18/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": \"Track\",\n          \"kind\": \"LinkedField\",\n          \"name\": \"tracks\",\n          \"plural\": true,\n          \"selections\": [\n            (v19/*: any*/)\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"AuthorizedEvent\",\n  \"abstractKey\": null\n},\nv21 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"dummy\",\n    \"storageKey\": null\n  }\n],\nv22 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": (v21/*: any*/),\n  \"type\": \"NotAllowed\",\n  \"abstractKey\": null\n},\nv23 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v6/*: any*/)\n  ],\n  \"type\": \"Node\",\n  \"abstractKey\": \"__isNode\"\n},\nv24 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showTitle\",\n  \"storageKey\": null\n},\nv25 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showMetadata\",\n  \"storageKey\": null\n},\nv26 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"order\",\n  \"storageKey\": null\n},\nv27 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"layout\",\n  \"storageKey\": null\n},\nv28 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"uri\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": [\n      (v0/*: any*/),\n      (v1/*: any*/),\n      (v2/*: any*/)\n    ],\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"SeriesEditCreateMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v3/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"addSeriesBlock\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"ContentManageRealmData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Mutation\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": [\n      (v2/*: any*/),\n      (v1/*: any*/),\n      (v0/*: any*/)\n    ],\n    \"kind\": \"Operation\",\n    \"name\": \"SeriesEditCreateMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v3/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"addSeriesBlock\",\n        \"plural\": false,\n        \"selections\": [\n          (v4/*: any*/),\n          (v5/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"isMainRoot\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"ancestors\",\n            \"plural\": true,\n            \"selections\": [\n              (v4/*: any*/),\n              (v5/*: any*/),\n              (v6/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          (v6/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": null,\n            \"kind\": \"LinkedField\",\n            \"name\": \"blocks\",\n            \"plural\": true,\n            \"selections\": [\n              (v7/*: any*/),\n              (v6/*: any*/),\n              {\n                \"kind\": \"TypeDiscriminator\",\n                \"abstractKey\": \"__isBlock\"\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": (v8/*: any*/),\n                \"type\": \"TitleBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": (v8/*: any*/),\n                \"type\": \"TextBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Series\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"series\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v6/*: any*/),\n                      (v9/*: any*/),\n                      (v10/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"SyncedSeriesData\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"syncedData\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v11/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": null,\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"entries\",\n                        \"plural\": true,\n                        \"selections\": [\n                          (v7/*: any*/),\n                          (v20/*: any*/),\n                          (v22/*: any*/),\n                          (v23/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v24/*: any*/),\n                  (v25/*: any*/),\n                  (v26/*: any*/),\n                  (v27/*: any*/)\n                ],\n                \"type\": \"SeriesBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"event\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v7/*: any*/),\n                      (v22/*: any*/),\n                      {\n                        \"kind\": \"InlineFragment\",\n                        \"selections\": [\n                          (v6/*: any*/),\n                          (v10/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Series\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"series\",\n                            \"plural\": false,\n                            \"selections\": [\n                              (v10/*: any*/),\n                              (v6/*: any*/),\n                              (v9/*: any*/)\n                            ],\n                            \"storageKey\": null\n                          },\n                          (v12/*: any*/),\n                          (v14/*: any*/),\n                          (v13/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"SyncedEventData\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"syncedData\",\n                            \"plural\": false,\n                            \"selections\": [\n                              (v16/*: any*/),\n                              (v15/*: any*/),\n                              (v17/*: any*/),\n                              (v18/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"updated\",\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Track\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"tracks\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v28/*: any*/),\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"flavor\",\n                                    \"storageKey\": null\n                                  },\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"mimetype\",\n                                    \"storageKey\": null\n                                  },\n                                  (v19/*: any*/),\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"isMaster\",\n                                    \"storageKey\": null\n                                  }\n                                ],\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Caption\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"captions\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v28/*: any*/),\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"lang\",\n                                    \"storageKey\": null\n                                  }\n                                ],\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Segment\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"segments\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v28/*: any*/),\n                                  (v17/*: any*/)\n                                ],\n                                \"storageKey\": null\n                              }\n                            ],\n                            \"storageKey\": null\n                          },\n                          (v9/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"kind\": \"ScalarField\",\n                            \"name\": \"metadata\",\n                            \"storageKey\": null\n                          },\n                          (v11/*: any*/)\n                        ],\n                        \"type\": \"AuthorizedEvent\",\n                        \"abstractKey\": null\n                      },\n                      (v23/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v24/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"showLink\",\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"VideoBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"playlist\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v7/*: any*/),\n                      (v22/*: any*/),\n                      {\n                        \"kind\": \"InlineFragment\",\n                        \"selections\": [\n                          (v6/*: any*/),\n                          (v9/*: any*/),\n                          (v10/*: any*/),\n                          (v11/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": null,\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"entries\",\n                            \"plural\": true,\n                            \"selections\": [\n                              (v7/*: any*/),\n                              (v20/*: any*/),\n                              {\n                                \"kind\": \"InlineFragment\",\n                                \"selections\": (v21/*: any*/),\n                                \"type\": \"Missing\",\n                                \"abstractKey\": null\n                              },\n                              (v22/*: any*/),\n                              (v23/*: any*/)\n                            ],\n                            \"storageKey\": null\n                          }\n                        ],\n                        \"type\": \"AuthorizedPlaylist\",\n                        \"abstractKey\": null\n                      },\n                      {\n                        \"kind\": \"TypeDiscriminator\",\n                        \"abstractKey\": \"__isPlaylist\"\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v24/*: any*/),\n                  (v25/*: any*/),\n                  (v26/*: any*/),\n                  (v27/*: any*/)\n                ],\n                \"type\": \"PlaylistBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"ClientExtension\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"editMode\",\n                    \"storageKey\": null\n                  }\n                ]\n              }\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": null,\n            \"kind\": \"LinkedField\",\n            \"name\": \"nameSource\",\n            \"plural\": false,\n            \"selections\": [\n              (v7/*: any*/),\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"block\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v7/*: any*/),\n                      (v6/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"RealmNameFromBlock\",\n                \"abstractKey\": null\n              }\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"80beb31f70372ea00405f05e2556fe96\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"SeriesEditCreateMutation\",\n    \"operationKind\": \"mutation\",\n    \"text\": \"mutation SeriesEditCreateMutation(\\n  $realm: ID!\\n  $index: Int!\\n  $block: NewSeriesBlock!\\n) {\\n  addSeriesBlock(realm: $realm, index: $index, block: $block) {\\n    ...ContentManageRealmData\\n    id\\n  }\\n}\\n\\nfragment AddButtonsRealmData on Realm {\\n  id\\n}\\n\\nfragment BlockRealmData on Realm {\\n  id\\n  ...BlocksRealmData\\n  ...EditButtonsRealmData\\n  ...EditModeRealmData\\n  blocks {\\n    __typename\\n    id\\n    ...BlocksBlockData\\n  }\\n}\\n\\nfragment BlocksBlockData on Block {\\n  __isBlock: __typename\\n  id\\n  __typename\\n  ... on TitleBlock {\\n    ...TitleBlockData\\n  }\\n  ... on TextBlock {\\n    ...TextBlockData\\n  }\\n  ... on SeriesBlock {\\n    ...SeriesBlockData\\n  }\\n  ... on VideoBlock {\\n    ...VideoBlockData\\n  }\\n  ... on PlaylistBlock {\\n    ...PlaylistBlockData\\n  }\\n}\\n\\nfragment BlocksRealmData on Realm {\\n  path\\n}\\n\\nfragment ContentManageRealmData on Realm {\\n  name\\n  path\\n  isMainRoot\\n  ancestors {\\n    name\\n    path\\n    id\\n  }\\n  ...BlockRealmData\\n  ...AddButtonsRealmData\\n  blocks {\\n    __typename\\n    id\\n  }\\n}\\n\\nfragment EditButtonsRealmData on Realm {\\n  ...MoveButtonsData\\n  blocks {\\n    __typename\\n    ...RemoveButtonData\\n    id\\n  }\\n  nameSource {\\n    __typename\\n    ... on RealmNameFromBlock {\\n      block {\\n        __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment EditModeFormRealmData on Realm {\\n  id\\n  blocks {\\n    __typename\\n    id\\n  }\\n}\\n\\nfragment EditModeRealmData on Realm {\\n  blocks {\\n    id\\n    __typename\\n    ... on TitleBlock {\\n      ...TitleEditModeBlockData\\n    }\\n    ... on TextBlock {\\n      ...TextEditModeBlockData\\n    }\\n    ... on SeriesBlock {\\n      ...SeriesEditModeBlockData\\n    }\\n    ... on VideoBlock {\\n      ...VideoEditModeBlockData\\n    }\\n    ... on PlaylistBlock {\\n      ...PlaylistEditModeBlockData\\n    }\\n  }\\n  ...EditModeFormRealmData\\n}\\n\\nfragment MoveButtonsData on Realm {\\n  id\\n  blocks {\\n    __typename\\n    id\\n  }\\n}\\n\\nfragment PlaylistBlockData on PlaylistBlock {\\n  playlist {\\n    __typename\\n    ...PlaylistBlockPlaylistData\\n    ... on AuthorizedPlaylist {\\n      id\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment PlaylistBlockPlaylistData on Playlist {\\n  __isPlaylist: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedPlaylist {\\n    id\\n    title\\n    description\\n    entries {\\n      __typename\\n      ... on AuthorizedEvent {\\n        id\\n        ...VideoListEventData\\n      }\\n      ... on Missing {\\n        dummy\\n      }\\n      ... on NotAllowed {\\n        dummy\\n      }\\n      ... on Node {\\n        __isNode: __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment PlaylistEditModeBlockData on PlaylistBlock {\\n  playlist {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedPlaylist {\\n      id\\n      opencastId\\n      title\\n      description\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment RemoveButtonData on Block {\\n  __isBlock: __typename\\n  id\\n}\\n\\nfragment SeriesBlockData on SeriesBlock {\\n  series {\\n    ...SeriesBlockSeriesData\\n    id\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment SeriesBlockSeriesData on Series {\\n  title\\n  syncedData {\\n    description\\n  }\\n  entries {\\n    __typename\\n    ... on AuthorizedEvent {\\n      id\\n      ...VideoListEventData\\n    }\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n}\\n\\nfragment SeriesEditModeBlockData on SeriesBlock {\\n  series {\\n    id\\n    opencastId\\n    title\\n    syncedData {\\n      description\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment TextBlockData on TextBlock {\\n  content\\n}\\n\\nfragment TextEditModeBlockData on TextBlock {\\n  content\\n}\\n\\nfragment TitleBlockData on TitleBlock {\\n  content\\n}\\n\\nfragment TitleEditModeBlockData on TitleBlock {\\n  content\\n}\\n\\nfragment VideoBlockData on VideoBlock {\\n  event {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedEvent {\\n      id\\n      title\\n      isLive\\n      opencastId\\n      created\\n      creators\\n      metadata\\n      description\\n      series {\\n        title\\n        opencastId\\n        id\\n      }\\n      syncedData {\\n        duration\\n        updated\\n        startTime\\n        endTime\\n        thumbnail\\n        tracks {\\n          uri\\n          flavor\\n          mimetype\\n          resolution\\n          isMaster\\n        }\\n        captions {\\n          uri\\n          lang\\n        }\\n        segments {\\n          uri\\n          startTime\\n        }\\n      }\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  showTitle\\n  showLink\\n}\\n\\nfragment VideoEditModeBlockData on VideoBlock {\\n  event {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedEvent {\\n      id\\n      title\\n      series {\\n        title\\n        id\\n      }\\n      created\\n      isLive\\n      creators\\n      syncedData {\\n        thumbnail\\n        duration\\n        startTime\\n        endTime\\n      }\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  showTitle\\n  showLink\\n}\\n\\nfragment VideoListEventData on AuthorizedEvent {\\n  id\\n  title\\n  created\\n  creators\\n  isLive\\n  description\\n  series {\\n    title\\n    id\\n  }\\n  syncedData {\\n    duration\\n    thumbnail\\n    startTime\\n    endTime\\n    tracks {\\n      resolution\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"d6f6afb59decc7e7e063842ee60a3b54\";\n\nexport default node;\n","/**\n * @generated SignedSource<<5fc09237531c59c2965740088b96111a>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nexport type VideoListLayout = \"GALLERY\" | \"LIST\" | \"SLIDER\" | \"%future added value\";\nexport type VideoListOrder = \"AZ\" | \"NEW_TO_OLD\" | \"OLD_TO_NEW\" | \"ORIGINAL\" | \"ZA\" | \"%future added value\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type SeriesEditModeBlockData$data = {\n  readonly layout: VideoListLayout;\n  readonly order: VideoListOrder;\n  readonly series: {\n    readonly id: string;\n    readonly opencastId: string;\n    readonly syncedData: {\n      readonly description: string | null | undefined;\n    } | null | undefined;\n    readonly title: string;\n  } | null | undefined;\n  readonly showMetadata: boolean;\n  readonly showTitle: boolean;\n  readonly \" $fragmentType\": \"SeriesEditModeBlockData\";\n};\nexport type SeriesEditModeBlockData$key = {\n  readonly \" $data\"?: SeriesEditModeBlockData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"SeriesEditModeBlockData\">;\n};\n\nconst node: ReaderFragment = {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"SeriesEditModeBlockData\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Series\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"series\",\n      \"plural\": false,\n      \"selections\": [\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"id\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"opencastId\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"title\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": \"SyncedSeriesData\",\n          \"kind\": \"LinkedField\",\n          \"name\": \"syncedData\",\n          \"plural\": false,\n          \"selections\": [\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"description\",\n              \"storageKey\": null\n            }\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"showTitle\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"showMetadata\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"order\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"layout\",\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"SeriesBlock\",\n  \"abstractKey\": null\n};\n\n(node as any).hash = \"4917ddf1f4366883075224393111c06d\";\n\nexport default node;\n","/**\n * @generated SignedSource<<96e54c5d6a666fdf76a01c331d82a23d>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type VideoListLayout = \"GALLERY\" | \"LIST\" | \"SLIDER\" | \"%future added value\";\nexport type VideoListOrder = \"AZ\" | \"NEW_TO_OLD\" | \"OLD_TO_NEW\" | \"ORIGINAL\" | \"ZA\" | \"%future added value\";\nexport type UpdateSeriesBlock = {\n  layout?: VideoListLayout | null | undefined;\n  order?: VideoListOrder | null | undefined;\n  series?: string | null | undefined;\n  showMetadata?: boolean | null | undefined;\n  showTitle?: boolean | null | undefined;\n};\nexport type SeriesEditSaveMutation$variables = {\n  id: string;\n  set: UpdateSeriesBlock;\n};\nexport type SeriesEditSaveMutation$data = {\n  readonly updateSeriesBlock: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"BlocksBlockData\" | \"EditBlockUpdateRealmNameData\">;\n  };\n};\nexport type SeriesEditSaveMutation = {\n  response: SeriesEditSaveMutation$data;\n  variables: SeriesEditSaveMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"id\"\n  },\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"set\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"id\"\n  },\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"set\",\n    \"variableName\": \"set\"\n  }\n],\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv3 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv4 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"content\",\n    \"storageKey\": null\n  }\n],\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv6 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n},\nv7 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"created\",\n  \"storageKey\": null\n},\nv8 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"creators\",\n  \"storageKey\": null\n},\nv9 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isLive\",\n  \"storageKey\": null\n},\nv10 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"duration\",\n  \"storageKey\": null\n},\nv11 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"thumbnail\",\n  \"storageKey\": null\n},\nv12 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"startTime\",\n  \"storageKey\": null\n},\nv13 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"endTime\",\n  \"storageKey\": null\n},\nv14 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"resolution\",\n  \"storageKey\": null\n},\nv15 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v3/*: any*/),\n    (v5/*: any*/),\n    (v7/*: any*/),\n    (v8/*: any*/),\n    (v9/*: any*/),\n    (v6/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Series\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"series\",\n      \"plural\": false,\n      \"selections\": [\n        (v5/*: any*/),\n        (v3/*: any*/)\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"SyncedEventData\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"syncedData\",\n      \"plural\": false,\n      \"selections\": [\n        (v10/*: any*/),\n        (v11/*: any*/),\n        (v12/*: any*/),\n        (v13/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": \"Track\",\n          \"kind\": \"LinkedField\",\n          \"name\": \"tracks\",\n          \"plural\": true,\n          \"selections\": [\n            (v14/*: any*/)\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"AuthorizedEvent\",\n  \"abstractKey\": null\n},\nv16 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"dummy\",\n    \"storageKey\": null\n  }\n],\nv17 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": (v16/*: any*/),\n  \"type\": \"NotAllowed\",\n  \"abstractKey\": null\n},\nv18 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v3/*: any*/)\n  ],\n  \"type\": \"Node\",\n  \"abstractKey\": \"__isNode\"\n},\nv19 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showTitle\",\n  \"storageKey\": null\n},\nv20 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showMetadata\",\n  \"storageKey\": null\n},\nv21 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"order\",\n  \"storageKey\": null\n},\nv22 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"layout\",\n  \"storageKey\": null\n},\nv23 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"opencastId\",\n  \"storageKey\": null\n},\nv24 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"uri\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"SeriesEditSaveMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"updateSeriesBlock\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"BlocksBlockData\"\n          },\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"EditBlockUpdateRealmNameData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Mutation\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"SeriesEditSaveMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"updateSeriesBlock\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/),\n          {\n            \"kind\": \"TypeDiscriminator\",\n            \"abstractKey\": \"__isBlock\"\n          },\n          (v3/*: any*/),\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": (v4/*: any*/),\n            \"type\": \"TitleBlock\",\n            \"abstractKey\": null\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": (v4/*: any*/),\n            \"type\": \"TextBlock\",\n            \"abstractKey\": null\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": \"Series\",\n                \"kind\": \"LinkedField\",\n                \"name\": \"series\",\n                \"plural\": false,\n                \"selections\": [\n                  (v5/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"SyncedSeriesData\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"syncedData\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v6/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"entries\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v2/*: any*/),\n                      (v15/*: any*/),\n                      (v17/*: any*/),\n                      (v18/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v3/*: any*/)\n                ],\n                \"storageKey\": null\n              },\n              (v19/*: any*/),\n              (v20/*: any*/),\n              (v21/*: any*/),\n              (v22/*: any*/)\n            ],\n            \"type\": \"SeriesBlock\",\n            \"abstractKey\": null\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": null,\n                \"kind\": \"LinkedField\",\n                \"name\": \"event\",\n                \"plural\": false,\n                \"selections\": [\n                  (v2/*: any*/),\n                  (v17/*: any*/),\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": [\n                      (v3/*: any*/),\n                      (v5/*: any*/),\n                      (v9/*: any*/),\n                      (v23/*: any*/),\n                      (v7/*: any*/),\n                      (v8/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"metadata\",\n                        \"storageKey\": null\n                      },\n                      (v6/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"Series\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"series\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v5/*: any*/),\n                          (v23/*: any*/),\n                          (v3/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"SyncedEventData\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"syncedData\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v10/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"kind\": \"ScalarField\",\n                            \"name\": \"updated\",\n                            \"storageKey\": null\n                          },\n                          (v12/*: any*/),\n                          (v13/*: any*/),\n                          (v11/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Track\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"tracks\",\n                            \"plural\": true,\n                            \"selections\": [\n                              (v24/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"flavor\",\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"mimetype\",\n                                \"storageKey\": null\n                              },\n                              (v14/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"isMaster\",\n                                \"storageKey\": null\n                              }\n                            ],\n                            \"storageKey\": null\n                          },\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Caption\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"captions\",\n                            \"plural\": true,\n                            \"selections\": [\n                              (v24/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"lang\",\n                                \"storageKey\": null\n                              }\n                            ],\n                            \"storageKey\": null\n                          },\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Segment\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"segments\",\n                            \"plural\": true,\n                            \"selections\": [\n                              (v24/*: any*/),\n                              (v12/*: any*/)\n                            ],\n                            \"storageKey\": null\n                          }\n                        ],\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"type\": \"AuthorizedEvent\",\n                    \"abstractKey\": null\n                  },\n                  (v18/*: any*/)\n                ],\n                \"storageKey\": null\n              },\n              (v19/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"showLink\",\n                \"storageKey\": null\n              }\n            ],\n            \"type\": \"VideoBlock\",\n            \"abstractKey\": null\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": null,\n                \"kind\": \"LinkedField\",\n                \"name\": \"playlist\",\n                \"plural\": false,\n                \"selections\": [\n                  (v2/*: any*/),\n                  {\n                    \"kind\": \"TypeDiscriminator\",\n                    \"abstractKey\": \"__isPlaylist\"\n                  },\n                  (v17/*: any*/),\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": [\n                      (v3/*: any*/),\n                      (v5/*: any*/),\n                      (v6/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": null,\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"entries\",\n                        \"plural\": true,\n                        \"selections\": [\n                          (v2/*: any*/),\n                          (v15/*: any*/),\n                          {\n                            \"kind\": \"InlineFragment\",\n                            \"selections\": (v16/*: any*/),\n                            \"type\": \"Missing\",\n                            \"abstractKey\": null\n                          },\n                          (v17/*: any*/),\n                          (v18/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"type\": \"AuthorizedPlaylist\",\n                    \"abstractKey\": null\n                  }\n                ],\n                \"storageKey\": null\n              },\n              (v19/*: any*/),\n              (v20/*: any*/),\n              (v21/*: any*/),\n              (v22/*: any*/)\n            ],\n            \"type\": \"PlaylistBlock\",\n            \"abstractKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"realm\",\n            \"plural\": false,\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"name\",\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": null,\n                \"kind\": \"LinkedField\",\n                \"name\": \"nameSource\",\n                \"plural\": false,\n                \"selections\": [\n                  (v2/*: any*/),\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": [\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": null,\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"block\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v2/*: any*/),\n                          (v3/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"type\": \"RealmNameFromBlock\",\n                    \"abstractKey\": null\n                  }\n                ],\n                \"storageKey\": null\n              },\n              (v3/*: any*/)\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"6ebff67706f517c037d75c086437dd10\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"SeriesEditSaveMutation\",\n    \"operationKind\": \"mutation\",\n    \"text\": \"mutation SeriesEditSaveMutation(\\n  $id: ID!\\n  $set: UpdateSeriesBlock!\\n) {\\n  updateSeriesBlock(id: $id, set: $set) {\\n    __typename\\n    ...BlocksBlockData\\n    ...EditBlockUpdateRealmNameData\\n    id\\n  }\\n}\\n\\nfragment BlocksBlockData on Block {\\n  __isBlock: __typename\\n  id\\n  __typename\\n  ... on TitleBlock {\\n    ...TitleBlockData\\n  }\\n  ... on TextBlock {\\n    ...TextBlockData\\n  }\\n  ... on SeriesBlock {\\n    ...SeriesBlockData\\n  }\\n  ... on VideoBlock {\\n    ...VideoBlockData\\n  }\\n  ... on PlaylistBlock {\\n    ...PlaylistBlockData\\n  }\\n}\\n\\nfragment EditBlockUpdateRealmNameData on Block {\\n  __isBlock: __typename\\n  realm {\\n    name\\n    nameSource {\\n      __typename\\n      ... on RealmNameFromBlock {\\n        block {\\n          __typename\\n          id\\n        }\\n      }\\n    }\\n    id\\n  }\\n}\\n\\nfragment PlaylistBlockData on PlaylistBlock {\\n  playlist {\\n    __typename\\n    ...PlaylistBlockPlaylistData\\n    ... on AuthorizedPlaylist {\\n      id\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment PlaylistBlockPlaylistData on Playlist {\\n  __isPlaylist: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedPlaylist {\\n    id\\n    title\\n    description\\n    entries {\\n      __typename\\n      ... on AuthorizedEvent {\\n        id\\n        ...VideoListEventData\\n      }\\n      ... on Missing {\\n        dummy\\n      }\\n      ... on NotAllowed {\\n        dummy\\n      }\\n      ... on Node {\\n        __isNode: __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment SeriesBlockData on SeriesBlock {\\n  series {\\n    ...SeriesBlockSeriesData\\n    id\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment SeriesBlockSeriesData on Series {\\n  title\\n  syncedData {\\n    description\\n  }\\n  entries {\\n    __typename\\n    ... on AuthorizedEvent {\\n      id\\n      ...VideoListEventData\\n    }\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n}\\n\\nfragment TextBlockData on TextBlock {\\n  content\\n}\\n\\nfragment TitleBlockData on TitleBlock {\\n  content\\n}\\n\\nfragment VideoBlockData on VideoBlock {\\n  event {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedEvent {\\n      id\\n      title\\n      isLive\\n      opencastId\\n      created\\n      creators\\n      metadata\\n      description\\n      series {\\n        title\\n        opencastId\\n        id\\n      }\\n      syncedData {\\n        duration\\n        updated\\n        startTime\\n        endTime\\n        thumbnail\\n        tracks {\\n          uri\\n          flavor\\n          mimetype\\n          resolution\\n          isMaster\\n        }\\n        captions {\\n          uri\\n          lang\\n        }\\n        segments {\\n          uri\\n          startTime\\n        }\\n      }\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  showTitle\\n  showLink\\n}\\n\\nfragment VideoListEventData on AuthorizedEvent {\\n  id\\n  title\\n  created\\n  creators\\n  isLive\\n  description\\n  series {\\n    title\\n    id\\n  }\\n  syncedData {\\n    duration\\n    thumbnail\\n    startTime\\n    endTime\\n    tracks {\\n      resolution\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"91bc7bc1a13130943f62b983c733f622\";\n\nexport default node;\n","/**\n * @generated SignedSource<<6177cdd9f7a34b693db1a3b82bc64d63>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type NewTextBlock = {\n  content: string;\n};\nexport type TextEditCreateMutation$variables = {\n  block: NewTextBlock;\n  index: number;\n  realm: string;\n};\nexport type TextEditCreateMutation$data = {\n  readonly addTextBlock: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"ContentManageRealmData\">;\n  };\n};\nexport type TextEditCreateMutation = {\n  response: TextEditCreateMutation$data;\n  variables: TextEditCreateMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"block\"\n},\nv1 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"index\"\n},\nv2 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"realm\"\n},\nv3 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"block\",\n    \"variableName\": \"block\"\n  },\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"index\",\n    \"variableName\": \"index\"\n  },\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"realm\",\n    \"variableName\": \"realm\"\n  }\n],\nv4 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n},\nv6 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv7 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv8 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"content\",\n    \"storageKey\": null\n  }\n],\nv9 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"opencastId\",\n  \"storageKey\": null\n},\nv10 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv11 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n},\nv12 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"created\",\n  \"storageKey\": null\n},\nv13 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"creators\",\n  \"storageKey\": null\n},\nv14 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isLive\",\n  \"storageKey\": null\n},\nv15 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"duration\",\n  \"storageKey\": null\n},\nv16 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"thumbnail\",\n  \"storageKey\": null\n},\nv17 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"startTime\",\n  \"storageKey\": null\n},\nv18 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"endTime\",\n  \"storageKey\": null\n},\nv19 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"resolution\",\n  \"storageKey\": null\n},\nv20 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v6/*: any*/),\n    (v10/*: any*/),\n    (v12/*: any*/),\n    (v13/*: any*/),\n    (v14/*: any*/),\n    (v11/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Series\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"series\",\n      \"plural\": false,\n      \"selections\": [\n        (v10/*: any*/),\n        (v6/*: any*/)\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"SyncedEventData\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"syncedData\",\n      \"plural\": false,\n      \"selections\": [\n        (v15/*: any*/),\n        (v16/*: any*/),\n        (v17/*: any*/),\n        (v18/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": \"Track\",\n          \"kind\": \"LinkedField\",\n          \"name\": \"tracks\",\n          \"plural\": true,\n          \"selections\": [\n            (v19/*: any*/)\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"AuthorizedEvent\",\n  \"abstractKey\": null\n},\nv21 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"dummy\",\n    \"storageKey\": null\n  }\n],\nv22 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": (v21/*: any*/),\n  \"type\": \"NotAllowed\",\n  \"abstractKey\": null\n},\nv23 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v6/*: any*/)\n  ],\n  \"type\": \"Node\",\n  \"abstractKey\": \"__isNode\"\n},\nv24 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showTitle\",\n  \"storageKey\": null\n},\nv25 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showMetadata\",\n  \"storageKey\": null\n},\nv26 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"order\",\n  \"storageKey\": null\n},\nv27 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"layout\",\n  \"storageKey\": null\n},\nv28 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"uri\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": [\n      (v0/*: any*/),\n      (v1/*: any*/),\n      (v2/*: any*/)\n    ],\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"TextEditCreateMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v3/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"addTextBlock\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"ContentManageRealmData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Mutation\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": [\n      (v2/*: any*/),\n      (v1/*: any*/),\n      (v0/*: any*/)\n    ],\n    \"kind\": \"Operation\",\n    \"name\": \"TextEditCreateMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v3/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"addTextBlock\",\n        \"plural\": false,\n        \"selections\": [\n          (v4/*: any*/),\n          (v5/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"isMainRoot\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"ancestors\",\n            \"plural\": true,\n            \"selections\": [\n              (v4/*: any*/),\n              (v5/*: any*/),\n              (v6/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          (v6/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": null,\n            \"kind\": \"LinkedField\",\n            \"name\": \"blocks\",\n            \"plural\": true,\n            \"selections\": [\n              (v7/*: any*/),\n              (v6/*: any*/),\n              {\n                \"kind\": \"TypeDiscriminator\",\n                \"abstractKey\": \"__isBlock\"\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": (v8/*: any*/),\n                \"type\": \"TitleBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": (v8/*: any*/),\n                \"type\": \"TextBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Series\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"series\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v6/*: any*/),\n                      (v9/*: any*/),\n                      (v10/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"SyncedSeriesData\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"syncedData\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v11/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": null,\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"entries\",\n                        \"plural\": true,\n                        \"selections\": [\n                          (v7/*: any*/),\n                          (v20/*: any*/),\n                          (v22/*: any*/),\n                          (v23/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v24/*: any*/),\n                  (v25/*: any*/),\n                  (v26/*: any*/),\n                  (v27/*: any*/)\n                ],\n                \"type\": \"SeriesBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"event\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v7/*: any*/),\n                      (v22/*: any*/),\n                      {\n                        \"kind\": \"InlineFragment\",\n                        \"selections\": [\n                          (v6/*: any*/),\n                          (v10/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Series\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"series\",\n                            \"plural\": false,\n                            \"selections\": [\n                              (v10/*: any*/),\n                              (v6/*: any*/),\n                              (v9/*: any*/)\n                            ],\n                            \"storageKey\": null\n                          },\n                          (v12/*: any*/),\n                          (v14/*: any*/),\n                          (v13/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"SyncedEventData\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"syncedData\",\n                            \"plural\": false,\n                            \"selections\": [\n                              (v16/*: any*/),\n                              (v15/*: any*/),\n                              (v17/*: any*/),\n                              (v18/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"updated\",\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Track\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"tracks\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v28/*: any*/),\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"flavor\",\n                                    \"storageKey\": null\n                                  },\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"mimetype\",\n                                    \"storageKey\": null\n                                  },\n                                  (v19/*: any*/),\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"isMaster\",\n                                    \"storageKey\": null\n                                  }\n                                ],\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Caption\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"captions\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v28/*: any*/),\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"lang\",\n                                    \"storageKey\": null\n                                  }\n                                ],\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Segment\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"segments\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v28/*: any*/),\n                                  (v17/*: any*/)\n                                ],\n                                \"storageKey\": null\n                              }\n                            ],\n                            \"storageKey\": null\n                          },\n                          (v9/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"kind\": \"ScalarField\",\n                            \"name\": \"metadata\",\n                            \"storageKey\": null\n                          },\n                          (v11/*: any*/)\n                        ],\n                        \"type\": \"AuthorizedEvent\",\n                        \"abstractKey\": null\n                      },\n                      (v23/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v24/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"showLink\",\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"VideoBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"playlist\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v7/*: any*/),\n                      (v22/*: any*/),\n                      {\n                        \"kind\": \"InlineFragment\",\n                        \"selections\": [\n                          (v6/*: any*/),\n                          (v9/*: any*/),\n                          (v10/*: any*/),\n                          (v11/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": null,\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"entries\",\n                            \"plural\": true,\n                            \"selections\": [\n                              (v7/*: any*/),\n                              (v20/*: any*/),\n                              {\n                                \"kind\": \"InlineFragment\",\n                                \"selections\": (v21/*: any*/),\n                                \"type\": \"Missing\",\n                                \"abstractKey\": null\n                              },\n                              (v22/*: any*/),\n                              (v23/*: any*/)\n                            ],\n                            \"storageKey\": null\n                          }\n                        ],\n                        \"type\": \"AuthorizedPlaylist\",\n                        \"abstractKey\": null\n                      },\n                      {\n                        \"kind\": \"TypeDiscriminator\",\n                        \"abstractKey\": \"__isPlaylist\"\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v24/*: any*/),\n                  (v25/*: any*/),\n                  (v26/*: any*/),\n                  (v27/*: any*/)\n                ],\n                \"type\": \"PlaylistBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"ClientExtension\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"editMode\",\n                    \"storageKey\": null\n                  }\n                ]\n              }\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": null,\n            \"kind\": \"LinkedField\",\n            \"name\": \"nameSource\",\n            \"plural\": false,\n            \"selections\": [\n              (v7/*: any*/),\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"block\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v7/*: any*/),\n                      (v6/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"RealmNameFromBlock\",\n                \"abstractKey\": null\n              }\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"b1734880c9bc16bbbc03545e8bdaab33\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"TextEditCreateMutation\",\n    \"operationKind\": \"mutation\",\n    \"text\": \"mutation TextEditCreateMutation(\\n  $realm: ID!\\n  $index: Int!\\n  $block: NewTextBlock!\\n) {\\n  addTextBlock(realm: $realm, index: $index, block: $block) {\\n    ...ContentManageRealmData\\n    id\\n  }\\n}\\n\\nfragment AddButtonsRealmData on Realm {\\n  id\\n}\\n\\nfragment BlockRealmData on Realm {\\n  id\\n  ...BlocksRealmData\\n  ...EditButtonsRealmData\\n  ...EditModeRealmData\\n  blocks {\\n    __typename\\n    id\\n    ...BlocksBlockData\\n  }\\n}\\n\\nfragment BlocksBlockData on Block {\\n  __isBlock: __typename\\n  id\\n  __typename\\n  ... on TitleBlock {\\n    ...TitleBlockData\\n  }\\n  ... on TextBlock {\\n    ...TextBlockData\\n  }\\n  ... on SeriesBlock {\\n    ...SeriesBlockData\\n  }\\n  ... on VideoBlock {\\n    ...VideoBlockData\\n  }\\n  ... on PlaylistBlock {\\n    ...PlaylistBlockData\\n  }\\n}\\n\\nfragment BlocksRealmData on Realm {\\n  path\\n}\\n\\nfragment ContentManageRealmData on Realm {\\n  name\\n  path\\n  isMainRoot\\n  ancestors {\\n    name\\n    path\\n    id\\n  }\\n  ...BlockRealmData\\n  ...AddButtonsRealmData\\n  blocks {\\n    __typename\\n    id\\n  }\\n}\\n\\nfragment EditButtonsRealmData on Realm {\\n  ...MoveButtonsData\\n  blocks {\\n    __typename\\n    ...RemoveButtonData\\n    id\\n  }\\n  nameSource {\\n    __typename\\n    ... on RealmNameFromBlock {\\n      block {\\n        __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment EditModeFormRealmData on Realm {\\n  id\\n  blocks {\\n    __typename\\n    id\\n  }\\n}\\n\\nfragment EditModeRealmData on Realm {\\n  blocks {\\n    id\\n    __typename\\n    ... on TitleBlock {\\n      ...TitleEditModeBlockData\\n    }\\n    ... on TextBlock {\\n      ...TextEditModeBlockData\\n    }\\n    ... on SeriesBlock {\\n      ...SeriesEditModeBlockData\\n    }\\n    ... on VideoBlock {\\n      ...VideoEditModeBlockData\\n    }\\n    ... on PlaylistBlock {\\n      ...PlaylistEditModeBlockData\\n    }\\n  }\\n  ...EditModeFormRealmData\\n}\\n\\nfragment MoveButtonsData on Realm {\\n  id\\n  blocks {\\n    __typename\\n    id\\n  }\\n}\\n\\nfragment PlaylistBlockData on PlaylistBlock {\\n  playlist {\\n    __typename\\n    ...PlaylistBlockPlaylistData\\n    ... on AuthorizedPlaylist {\\n      id\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment PlaylistBlockPlaylistData on Playlist {\\n  __isPlaylist: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedPlaylist {\\n    id\\n    title\\n    description\\n    entries {\\n      __typename\\n      ... on AuthorizedEvent {\\n        id\\n        ...VideoListEventData\\n      }\\n      ... on Missing {\\n        dummy\\n      }\\n      ... on NotAllowed {\\n        dummy\\n      }\\n      ... on Node {\\n        __isNode: __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment PlaylistEditModeBlockData on PlaylistBlock {\\n  playlist {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedPlaylist {\\n      id\\n      opencastId\\n      title\\n      description\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment RemoveButtonData on Block {\\n  __isBlock: __typename\\n  id\\n}\\n\\nfragment SeriesBlockData on SeriesBlock {\\n  series {\\n    ...SeriesBlockSeriesData\\n    id\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment SeriesBlockSeriesData on Series {\\n  title\\n  syncedData {\\n    description\\n  }\\n  entries {\\n    __typename\\n    ... on AuthorizedEvent {\\n      id\\n      ...VideoListEventData\\n    }\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n}\\n\\nfragment SeriesEditModeBlockData on SeriesBlock {\\n  series {\\n    id\\n    opencastId\\n    title\\n    syncedData {\\n      description\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment TextBlockData on TextBlock {\\n  content\\n}\\n\\nfragment TextEditModeBlockData on TextBlock {\\n  content\\n}\\n\\nfragment TitleBlockData on TitleBlock {\\n  content\\n}\\n\\nfragment TitleEditModeBlockData on TitleBlock {\\n  content\\n}\\n\\nfragment VideoBlockData on VideoBlock {\\n  event {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedEvent {\\n      id\\n      title\\n      isLive\\n      opencastId\\n      created\\n      creators\\n      metadata\\n      description\\n      series {\\n        title\\n        opencastId\\n        id\\n      }\\n      syncedData {\\n        duration\\n        updated\\n        startTime\\n        endTime\\n        thumbnail\\n        tracks {\\n          uri\\n          flavor\\n          mimetype\\n          resolution\\n          isMaster\\n        }\\n        captions {\\n          uri\\n          lang\\n        }\\n        segments {\\n          uri\\n          startTime\\n        }\\n      }\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  showTitle\\n  showLink\\n}\\n\\nfragment VideoEditModeBlockData on VideoBlock {\\n  event {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedEvent {\\n      id\\n      title\\n      series {\\n        title\\n        id\\n      }\\n      created\\n      isLive\\n      creators\\n      syncedData {\\n        thumbnail\\n        duration\\n        startTime\\n        endTime\\n      }\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  showTitle\\n  showLink\\n}\\n\\nfragment VideoListEventData on AuthorizedEvent {\\n  id\\n  title\\n  created\\n  creators\\n  isLive\\n  description\\n  series {\\n    title\\n    id\\n  }\\n  syncedData {\\n    duration\\n    thumbnail\\n    startTime\\n    endTime\\n    tracks {\\n      resolution\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"7bf08c4a19c7bd289ed9b8788fd3dd3c\";\n\nexport default node;\n","/**\n * @generated SignedSource<<ef3a1fac61106a2e195713ad625c7a1d>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type TextEditModeBlockData$data = {\n  readonly content: string;\n  readonly \" $fragmentType\": \"TextEditModeBlockData\";\n};\nexport type TextEditModeBlockData$key = {\n  readonly \" $data\"?: TextEditModeBlockData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"TextEditModeBlockData\">;\n};\n\nconst node: ReaderFragment = {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"TextEditModeBlockData\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"content\",\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"TextBlock\",\n  \"abstractKey\": null\n};\n\n(node as any).hash = \"5ff141267d554888a1074790ab4db66d\";\n\nexport default node;\n","/**\n * @generated SignedSource<<79ccd0d9abd3ce3cd81d35645e4b9710>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type UpdateTextBlock = {\n  content?: string | null | undefined;\n};\nexport type TextEditSaveMutation$variables = {\n  id: string;\n  set: UpdateTextBlock;\n};\nexport type TextEditSaveMutation$data = {\n  readonly updateTextBlock: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"BlocksBlockData\">;\n  };\n};\nexport type TextEditSaveMutation = {\n  response: TextEditSaveMutation$data;\n  variables: TextEditSaveMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"id\"\n  },\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"set\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"id\"\n  },\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"set\",\n    \"variableName\": \"set\"\n  }\n],\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv3 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv4 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"content\",\n    \"storageKey\": null\n  }\n],\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv6 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n},\nv7 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"created\",\n  \"storageKey\": null\n},\nv8 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"creators\",\n  \"storageKey\": null\n},\nv9 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isLive\",\n  \"storageKey\": null\n},\nv10 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"duration\",\n  \"storageKey\": null\n},\nv11 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"thumbnail\",\n  \"storageKey\": null\n},\nv12 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"startTime\",\n  \"storageKey\": null\n},\nv13 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"endTime\",\n  \"storageKey\": null\n},\nv14 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"resolution\",\n  \"storageKey\": null\n},\nv15 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v3/*: any*/),\n    (v5/*: any*/),\n    (v7/*: any*/),\n    (v8/*: any*/),\n    (v9/*: any*/),\n    (v6/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Series\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"series\",\n      \"plural\": false,\n      \"selections\": [\n        (v5/*: any*/),\n        (v3/*: any*/)\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"SyncedEventData\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"syncedData\",\n      \"plural\": false,\n      \"selections\": [\n        (v10/*: any*/),\n        (v11/*: any*/),\n        (v12/*: any*/),\n        (v13/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": \"Track\",\n          \"kind\": \"LinkedField\",\n          \"name\": \"tracks\",\n          \"plural\": true,\n          \"selections\": [\n            (v14/*: any*/)\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"AuthorizedEvent\",\n  \"abstractKey\": null\n},\nv16 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"dummy\",\n    \"storageKey\": null\n  }\n],\nv17 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": (v16/*: any*/),\n  \"type\": \"NotAllowed\",\n  \"abstractKey\": null\n},\nv18 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v3/*: any*/)\n  ],\n  \"type\": \"Node\",\n  \"abstractKey\": \"__isNode\"\n},\nv19 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showTitle\",\n  \"storageKey\": null\n},\nv20 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showMetadata\",\n  \"storageKey\": null\n},\nv21 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"order\",\n  \"storageKey\": null\n},\nv22 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"layout\",\n  \"storageKey\": null\n},\nv23 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"opencastId\",\n  \"storageKey\": null\n},\nv24 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"uri\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"TextEditSaveMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"updateTextBlock\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"BlocksBlockData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Mutation\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"TextEditSaveMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"updateTextBlock\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/),\n          {\n            \"kind\": \"TypeDiscriminator\",\n            \"abstractKey\": \"__isBlock\"\n          },\n          (v3/*: any*/),\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": (v4/*: any*/),\n            \"type\": \"TitleBlock\",\n            \"abstractKey\": null\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": (v4/*: any*/),\n            \"type\": \"TextBlock\",\n            \"abstractKey\": null\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": \"Series\",\n                \"kind\": \"LinkedField\",\n                \"name\": \"series\",\n                \"plural\": false,\n                \"selections\": [\n                  (v5/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"SyncedSeriesData\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"syncedData\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v6/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"entries\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v2/*: any*/),\n                      (v15/*: any*/),\n                      (v17/*: any*/),\n                      (v18/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v3/*: any*/)\n                ],\n                \"storageKey\": null\n              },\n              (v19/*: any*/),\n              (v20/*: any*/),\n              (v21/*: any*/),\n              (v22/*: any*/)\n            ],\n            \"type\": \"SeriesBlock\",\n            \"abstractKey\": null\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": null,\n                \"kind\": \"LinkedField\",\n                \"name\": \"event\",\n                \"plural\": false,\n                \"selections\": [\n                  (v2/*: any*/),\n                  (v17/*: any*/),\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": [\n                      (v3/*: any*/),\n                      (v5/*: any*/),\n                      (v9/*: any*/),\n                      (v23/*: any*/),\n                      (v7/*: any*/),\n                      (v8/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"metadata\",\n                        \"storageKey\": null\n                      },\n                      (v6/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"Series\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"series\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v5/*: any*/),\n                          (v23/*: any*/),\n                          (v3/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"SyncedEventData\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"syncedData\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v10/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"kind\": \"ScalarField\",\n                            \"name\": \"updated\",\n                            \"storageKey\": null\n                          },\n                          (v12/*: any*/),\n                          (v13/*: any*/),\n                          (v11/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Track\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"tracks\",\n                            \"plural\": true,\n                            \"selections\": [\n                              (v24/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"flavor\",\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"mimetype\",\n                                \"storageKey\": null\n                              },\n                              (v14/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"isMaster\",\n                                \"storageKey\": null\n                              }\n                            ],\n                            \"storageKey\": null\n                          },\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Caption\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"captions\",\n                            \"plural\": true,\n                            \"selections\": [\n                              (v24/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"lang\",\n                                \"storageKey\": null\n                              }\n                            ],\n                            \"storageKey\": null\n                          },\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Segment\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"segments\",\n                            \"plural\": true,\n                            \"selections\": [\n                              (v24/*: any*/),\n                              (v12/*: any*/)\n                            ],\n                            \"storageKey\": null\n                          }\n                        ],\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"type\": \"AuthorizedEvent\",\n                    \"abstractKey\": null\n                  },\n                  (v18/*: any*/)\n                ],\n                \"storageKey\": null\n              },\n              (v19/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"showLink\",\n                \"storageKey\": null\n              }\n            ],\n            \"type\": \"VideoBlock\",\n            \"abstractKey\": null\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": null,\n                \"kind\": \"LinkedField\",\n                \"name\": \"playlist\",\n                \"plural\": false,\n                \"selections\": [\n                  (v2/*: any*/),\n                  {\n                    \"kind\": \"TypeDiscriminator\",\n                    \"abstractKey\": \"__isPlaylist\"\n                  },\n                  (v17/*: any*/),\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": [\n                      (v3/*: any*/),\n                      (v5/*: any*/),\n                      (v6/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": null,\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"entries\",\n                        \"plural\": true,\n                        \"selections\": [\n                          (v2/*: any*/),\n                          (v15/*: any*/),\n                          {\n                            \"kind\": \"InlineFragment\",\n                            \"selections\": (v16/*: any*/),\n                            \"type\": \"Missing\",\n                            \"abstractKey\": null\n                          },\n                          (v17/*: any*/),\n                          (v18/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"type\": \"AuthorizedPlaylist\",\n                    \"abstractKey\": null\n                  }\n                ],\n                \"storageKey\": null\n              },\n              (v19/*: any*/),\n              (v20/*: any*/),\n              (v21/*: any*/),\n              (v22/*: any*/)\n            ],\n            \"type\": \"PlaylistBlock\",\n            \"abstractKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"b424e831f385c4f6143d7a061efe11af\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"TextEditSaveMutation\",\n    \"operationKind\": \"mutation\",\n    \"text\": \"mutation TextEditSaveMutation(\\n  $id: ID!\\n  $set: UpdateTextBlock!\\n) {\\n  updateTextBlock(id: $id, set: $set) {\\n    __typename\\n    ...BlocksBlockData\\n    id\\n  }\\n}\\n\\nfragment BlocksBlockData on Block {\\n  __isBlock: __typename\\n  id\\n  __typename\\n  ... on TitleBlock {\\n    ...TitleBlockData\\n  }\\n  ... on TextBlock {\\n    ...TextBlockData\\n  }\\n  ... on SeriesBlock {\\n    ...SeriesBlockData\\n  }\\n  ... on VideoBlock {\\n    ...VideoBlockData\\n  }\\n  ... on PlaylistBlock {\\n    ...PlaylistBlockData\\n  }\\n}\\n\\nfragment PlaylistBlockData on PlaylistBlock {\\n  playlist {\\n    __typename\\n    ...PlaylistBlockPlaylistData\\n    ... on AuthorizedPlaylist {\\n      id\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment PlaylistBlockPlaylistData on Playlist {\\n  __isPlaylist: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedPlaylist {\\n    id\\n    title\\n    description\\n    entries {\\n      __typename\\n      ... on AuthorizedEvent {\\n        id\\n        ...VideoListEventData\\n      }\\n      ... on Missing {\\n        dummy\\n      }\\n      ... on NotAllowed {\\n        dummy\\n      }\\n      ... on Node {\\n        __isNode: __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment SeriesBlockData on SeriesBlock {\\n  series {\\n    ...SeriesBlockSeriesData\\n    id\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment SeriesBlockSeriesData on Series {\\n  title\\n  syncedData {\\n    description\\n  }\\n  entries {\\n    __typename\\n    ... on AuthorizedEvent {\\n      id\\n      ...VideoListEventData\\n    }\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n}\\n\\nfragment TextBlockData on TextBlock {\\n  content\\n}\\n\\nfragment TitleBlockData on TitleBlock {\\n  content\\n}\\n\\nfragment VideoBlockData on VideoBlock {\\n  event {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedEvent {\\n      id\\n      title\\n      isLive\\n      opencastId\\n      created\\n      creators\\n      metadata\\n      description\\n      series {\\n        title\\n        opencastId\\n        id\\n      }\\n      syncedData {\\n        duration\\n        updated\\n        startTime\\n        endTime\\n        thumbnail\\n        tracks {\\n          uri\\n          flavor\\n          mimetype\\n          resolution\\n          isMaster\\n        }\\n        captions {\\n          uri\\n          lang\\n        }\\n        segments {\\n          uri\\n          startTime\\n        }\\n      }\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  showTitle\\n  showLink\\n}\\n\\nfragment VideoListEventData on AuthorizedEvent {\\n  id\\n  title\\n  created\\n  creators\\n  isLive\\n  description\\n  series {\\n    title\\n    id\\n  }\\n  syncedData {\\n    duration\\n    thumbnail\\n    startTime\\n    endTime\\n    tracks {\\n      resolution\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"5d8c6a8b7b7c95d0cc2951827e50c26f\";\n\nexport default node;\n","/**\n * @generated SignedSource<<1a0a475550c4854c70565f859813fdce>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type NewTitleBlock = {\n  content: string;\n};\nexport type TitleEditCreateMutation$variables = {\n  block: NewTitleBlock;\n  index: number;\n  realm: string;\n};\nexport type TitleEditCreateMutation$data = {\n  readonly addTitleBlock: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"ContentManageRealmData\">;\n  };\n};\nexport type TitleEditCreateMutation = {\n  response: TitleEditCreateMutation$data;\n  variables: TitleEditCreateMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"block\"\n},\nv1 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"index\"\n},\nv2 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"realm\"\n},\nv3 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"block\",\n    \"variableName\": \"block\"\n  },\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"index\",\n    \"variableName\": \"index\"\n  },\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"realm\",\n    \"variableName\": \"realm\"\n  }\n],\nv4 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n},\nv6 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv7 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv8 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"content\",\n    \"storageKey\": null\n  }\n],\nv9 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"opencastId\",\n  \"storageKey\": null\n},\nv10 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv11 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n},\nv12 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"created\",\n  \"storageKey\": null\n},\nv13 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"creators\",\n  \"storageKey\": null\n},\nv14 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isLive\",\n  \"storageKey\": null\n},\nv15 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"duration\",\n  \"storageKey\": null\n},\nv16 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"thumbnail\",\n  \"storageKey\": null\n},\nv17 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"startTime\",\n  \"storageKey\": null\n},\nv18 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"endTime\",\n  \"storageKey\": null\n},\nv19 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"resolution\",\n  \"storageKey\": null\n},\nv20 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v6/*: any*/),\n    (v10/*: any*/),\n    (v12/*: any*/),\n    (v13/*: any*/),\n    (v14/*: any*/),\n    (v11/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Series\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"series\",\n      \"plural\": false,\n      \"selections\": [\n        (v10/*: any*/),\n        (v6/*: any*/)\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"SyncedEventData\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"syncedData\",\n      \"plural\": false,\n      \"selections\": [\n        (v15/*: any*/),\n        (v16/*: any*/),\n        (v17/*: any*/),\n        (v18/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": \"Track\",\n          \"kind\": \"LinkedField\",\n          \"name\": \"tracks\",\n          \"plural\": true,\n          \"selections\": [\n            (v19/*: any*/)\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"AuthorizedEvent\",\n  \"abstractKey\": null\n},\nv21 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"dummy\",\n    \"storageKey\": null\n  }\n],\nv22 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": (v21/*: any*/),\n  \"type\": \"NotAllowed\",\n  \"abstractKey\": null\n},\nv23 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v6/*: any*/)\n  ],\n  \"type\": \"Node\",\n  \"abstractKey\": \"__isNode\"\n},\nv24 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showTitle\",\n  \"storageKey\": null\n},\nv25 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showMetadata\",\n  \"storageKey\": null\n},\nv26 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"order\",\n  \"storageKey\": null\n},\nv27 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"layout\",\n  \"storageKey\": null\n},\nv28 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"uri\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": [\n      (v0/*: any*/),\n      (v1/*: any*/),\n      (v2/*: any*/)\n    ],\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"TitleEditCreateMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v3/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"addTitleBlock\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"ContentManageRealmData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Mutation\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": [\n      (v2/*: any*/),\n      (v1/*: any*/),\n      (v0/*: any*/)\n    ],\n    \"kind\": \"Operation\",\n    \"name\": \"TitleEditCreateMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v3/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"addTitleBlock\",\n        \"plural\": false,\n        \"selections\": [\n          (v4/*: any*/),\n          (v5/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"isMainRoot\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"ancestors\",\n            \"plural\": true,\n            \"selections\": [\n              (v4/*: any*/),\n              (v5/*: any*/),\n              (v6/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          (v6/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": null,\n            \"kind\": \"LinkedField\",\n            \"name\": \"blocks\",\n            \"plural\": true,\n            \"selections\": [\n              (v7/*: any*/),\n              (v6/*: any*/),\n              {\n                \"kind\": \"TypeDiscriminator\",\n                \"abstractKey\": \"__isBlock\"\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": (v8/*: any*/),\n                \"type\": \"TitleBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": (v8/*: any*/),\n                \"type\": \"TextBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Series\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"series\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v6/*: any*/),\n                      (v9/*: any*/),\n                      (v10/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"SyncedSeriesData\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"syncedData\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v11/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": null,\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"entries\",\n                        \"plural\": true,\n                        \"selections\": [\n                          (v7/*: any*/),\n                          (v20/*: any*/),\n                          (v22/*: any*/),\n                          (v23/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v24/*: any*/),\n                  (v25/*: any*/),\n                  (v26/*: any*/),\n                  (v27/*: any*/)\n                ],\n                \"type\": \"SeriesBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"event\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v7/*: any*/),\n                      (v22/*: any*/),\n                      {\n                        \"kind\": \"InlineFragment\",\n                        \"selections\": [\n                          (v6/*: any*/),\n                          (v10/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Series\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"series\",\n                            \"plural\": false,\n                            \"selections\": [\n                              (v10/*: any*/),\n                              (v6/*: any*/),\n                              (v9/*: any*/)\n                            ],\n                            \"storageKey\": null\n                          },\n                          (v12/*: any*/),\n                          (v14/*: any*/),\n                          (v13/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"SyncedEventData\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"syncedData\",\n                            \"plural\": false,\n                            \"selections\": [\n                              (v16/*: any*/),\n                              (v15/*: any*/),\n                              (v17/*: any*/),\n                              (v18/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"updated\",\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Track\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"tracks\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v28/*: any*/),\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"flavor\",\n                                    \"storageKey\": null\n                                  },\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"mimetype\",\n                                    \"storageKey\": null\n                                  },\n                                  (v19/*: any*/),\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"isMaster\",\n                                    \"storageKey\": null\n                                  }\n                                ],\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Caption\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"captions\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v28/*: any*/),\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"lang\",\n                                    \"storageKey\": null\n                                  }\n                                ],\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Segment\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"segments\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v28/*: any*/),\n                                  (v17/*: any*/)\n                                ],\n                                \"storageKey\": null\n                              }\n                            ],\n                            \"storageKey\": null\n                          },\n                          (v9/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"kind\": \"ScalarField\",\n                            \"name\": \"metadata\",\n                            \"storageKey\": null\n                          },\n                          (v11/*: any*/)\n                        ],\n                        \"type\": \"AuthorizedEvent\",\n                        \"abstractKey\": null\n                      },\n                      (v23/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v24/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"showLink\",\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"VideoBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"playlist\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v7/*: any*/),\n                      (v22/*: any*/),\n                      {\n                        \"kind\": \"InlineFragment\",\n                        \"selections\": [\n                          (v6/*: any*/),\n                          (v9/*: any*/),\n                          (v10/*: any*/),\n                          (v11/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": null,\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"entries\",\n                            \"plural\": true,\n                            \"selections\": [\n                              (v7/*: any*/),\n                              (v20/*: any*/),\n                              {\n                                \"kind\": \"InlineFragment\",\n                                \"selections\": (v21/*: any*/),\n                                \"type\": \"Missing\",\n                                \"abstractKey\": null\n                              },\n                              (v22/*: any*/),\n                              (v23/*: any*/)\n                            ],\n                            \"storageKey\": null\n                          }\n                        ],\n                        \"type\": \"AuthorizedPlaylist\",\n                        \"abstractKey\": null\n                      },\n                      {\n                        \"kind\": \"TypeDiscriminator\",\n                        \"abstractKey\": \"__isPlaylist\"\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v24/*: any*/),\n                  (v25/*: any*/),\n                  (v26/*: any*/),\n                  (v27/*: any*/)\n                ],\n                \"type\": \"PlaylistBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"ClientExtension\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"editMode\",\n                    \"storageKey\": null\n                  }\n                ]\n              }\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": null,\n            \"kind\": \"LinkedField\",\n            \"name\": \"nameSource\",\n            \"plural\": false,\n            \"selections\": [\n              (v7/*: any*/),\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"block\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v7/*: any*/),\n                      (v6/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"RealmNameFromBlock\",\n                \"abstractKey\": null\n              }\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"972039decb9c6897f9d2f9724226edc1\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"TitleEditCreateMutation\",\n    \"operationKind\": \"mutation\",\n    \"text\": \"mutation TitleEditCreateMutation(\\n  $realm: ID!\\n  $index: Int!\\n  $block: NewTitleBlock!\\n) {\\n  addTitleBlock(realm: $realm, index: $index, block: $block) {\\n    ...ContentManageRealmData\\n    id\\n  }\\n}\\n\\nfragment AddButtonsRealmData on Realm {\\n  id\\n}\\n\\nfragment BlockRealmData on Realm {\\n  id\\n  ...BlocksRealmData\\n  ...EditButtonsRealmData\\n  ...EditModeRealmData\\n  blocks {\\n    __typename\\n    id\\n    ...BlocksBlockData\\n  }\\n}\\n\\nfragment BlocksBlockData on Block {\\n  __isBlock: __typename\\n  id\\n  __typename\\n  ... on TitleBlock {\\n    ...TitleBlockData\\n  }\\n  ... on TextBlock {\\n    ...TextBlockData\\n  }\\n  ... on SeriesBlock {\\n    ...SeriesBlockData\\n  }\\n  ... on VideoBlock {\\n    ...VideoBlockData\\n  }\\n  ... on PlaylistBlock {\\n    ...PlaylistBlockData\\n  }\\n}\\n\\nfragment BlocksRealmData on Realm {\\n  path\\n}\\n\\nfragment ContentManageRealmData on Realm {\\n  name\\n  path\\n  isMainRoot\\n  ancestors {\\n    name\\n    path\\n    id\\n  }\\n  ...BlockRealmData\\n  ...AddButtonsRealmData\\n  blocks {\\n    __typename\\n    id\\n  }\\n}\\n\\nfragment EditButtonsRealmData on Realm {\\n  ...MoveButtonsData\\n  blocks {\\n    __typename\\n    ...RemoveButtonData\\n    id\\n  }\\n  nameSource {\\n    __typename\\n    ... on RealmNameFromBlock {\\n      block {\\n        __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment EditModeFormRealmData on Realm {\\n  id\\n  blocks {\\n    __typename\\n    id\\n  }\\n}\\n\\nfragment EditModeRealmData on Realm {\\n  blocks {\\n    id\\n    __typename\\n    ... on TitleBlock {\\n      ...TitleEditModeBlockData\\n    }\\n    ... on TextBlock {\\n      ...TextEditModeBlockData\\n    }\\n    ... on SeriesBlock {\\n      ...SeriesEditModeBlockData\\n    }\\n    ... on VideoBlock {\\n      ...VideoEditModeBlockData\\n    }\\n    ... on PlaylistBlock {\\n      ...PlaylistEditModeBlockData\\n    }\\n  }\\n  ...EditModeFormRealmData\\n}\\n\\nfragment MoveButtonsData on Realm {\\n  id\\n  blocks {\\n    __typename\\n    id\\n  }\\n}\\n\\nfragment PlaylistBlockData on PlaylistBlock {\\n  playlist {\\n    __typename\\n    ...PlaylistBlockPlaylistData\\n    ... on AuthorizedPlaylist {\\n      id\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment PlaylistBlockPlaylistData on Playlist {\\n  __isPlaylist: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedPlaylist {\\n    id\\n    title\\n    description\\n    entries {\\n      __typename\\n      ... on AuthorizedEvent {\\n        id\\n        ...VideoListEventData\\n      }\\n      ... on Missing {\\n        dummy\\n      }\\n      ... on NotAllowed {\\n        dummy\\n      }\\n      ... on Node {\\n        __isNode: __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment PlaylistEditModeBlockData on PlaylistBlock {\\n  playlist {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedPlaylist {\\n      id\\n      opencastId\\n      title\\n      description\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment RemoveButtonData on Block {\\n  __isBlock: __typename\\n  id\\n}\\n\\nfragment SeriesBlockData on SeriesBlock {\\n  series {\\n    ...SeriesBlockSeriesData\\n    id\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment SeriesBlockSeriesData on Series {\\n  title\\n  syncedData {\\n    description\\n  }\\n  entries {\\n    __typename\\n    ... on AuthorizedEvent {\\n      id\\n      ...VideoListEventData\\n    }\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n}\\n\\nfragment SeriesEditModeBlockData on SeriesBlock {\\n  series {\\n    id\\n    opencastId\\n    title\\n    syncedData {\\n      description\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment TextBlockData on TextBlock {\\n  content\\n}\\n\\nfragment TextEditModeBlockData on TextBlock {\\n  content\\n}\\n\\nfragment TitleBlockData on TitleBlock {\\n  content\\n}\\n\\nfragment TitleEditModeBlockData on TitleBlock {\\n  content\\n}\\n\\nfragment VideoBlockData on VideoBlock {\\n  event {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedEvent {\\n      id\\n      title\\n      isLive\\n      opencastId\\n      created\\n      creators\\n      metadata\\n      description\\n      series {\\n        title\\n        opencastId\\n        id\\n      }\\n      syncedData {\\n        duration\\n        updated\\n        startTime\\n        endTime\\n        thumbnail\\n        tracks {\\n          uri\\n          flavor\\n          mimetype\\n          resolution\\n          isMaster\\n        }\\n        captions {\\n          uri\\n          lang\\n        }\\n        segments {\\n          uri\\n          startTime\\n        }\\n      }\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  showTitle\\n  showLink\\n}\\n\\nfragment VideoEditModeBlockData on VideoBlock {\\n  event {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedEvent {\\n      id\\n      title\\n      series {\\n        title\\n        id\\n      }\\n      created\\n      isLive\\n      creators\\n      syncedData {\\n        thumbnail\\n        duration\\n        startTime\\n        endTime\\n      }\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  showTitle\\n  showLink\\n}\\n\\nfragment VideoListEventData on AuthorizedEvent {\\n  id\\n  title\\n  created\\n  creators\\n  isLive\\n  description\\n  series {\\n    title\\n    id\\n  }\\n  syncedData {\\n    duration\\n    thumbnail\\n    startTime\\n    endTime\\n    tracks {\\n      resolution\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"52a5a226671a5a8cfb14ca28b2870d3d\";\n\nexport default node;\n","/**\n * @generated SignedSource<<3948c33224a9098fdd903b43ebc0f554>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type TitleEditModeBlockData$data = {\n  readonly content: string;\n  readonly \" $fragmentType\": \"TitleEditModeBlockData\";\n};\nexport type TitleEditModeBlockData$key = {\n  readonly \" $data\"?: TitleEditModeBlockData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"TitleEditModeBlockData\">;\n};\n\nconst node: ReaderFragment = {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"TitleEditModeBlockData\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"content\",\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"TitleBlock\",\n  \"abstractKey\": null\n};\n\n(node as any).hash = \"6087da66441d6fe6f0132fa0593efe9a\";\n\nexport default node;\n","/**\n * @generated SignedSource<<f472548f3e6af3a4494b9b54db068bda>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type UpdateTitleBlock = {\n  content?: string | null | undefined;\n};\nexport type TitleEditSaveMutation$variables = {\n  id: string;\n  set: UpdateTitleBlock;\n};\nexport type TitleEditSaveMutation$data = {\n  readonly updateTitleBlock: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"BlocksBlockData\">;\n  };\n};\nexport type TitleEditSaveMutation = {\n  response: TitleEditSaveMutation$data;\n  variables: TitleEditSaveMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"id\"\n  },\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"set\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"id\"\n  },\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"set\",\n    \"variableName\": \"set\"\n  }\n],\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv3 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv4 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"content\",\n    \"storageKey\": null\n  }\n],\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv6 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n},\nv7 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"created\",\n  \"storageKey\": null\n},\nv8 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"creators\",\n  \"storageKey\": null\n},\nv9 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isLive\",\n  \"storageKey\": null\n},\nv10 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"duration\",\n  \"storageKey\": null\n},\nv11 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"thumbnail\",\n  \"storageKey\": null\n},\nv12 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"startTime\",\n  \"storageKey\": null\n},\nv13 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"endTime\",\n  \"storageKey\": null\n},\nv14 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"resolution\",\n  \"storageKey\": null\n},\nv15 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v3/*: any*/),\n    (v5/*: any*/),\n    (v7/*: any*/),\n    (v8/*: any*/),\n    (v9/*: any*/),\n    (v6/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Series\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"series\",\n      \"plural\": false,\n      \"selections\": [\n        (v5/*: any*/),\n        (v3/*: any*/)\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"SyncedEventData\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"syncedData\",\n      \"plural\": false,\n      \"selections\": [\n        (v10/*: any*/),\n        (v11/*: any*/),\n        (v12/*: any*/),\n        (v13/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": \"Track\",\n          \"kind\": \"LinkedField\",\n          \"name\": \"tracks\",\n          \"plural\": true,\n          \"selections\": [\n            (v14/*: any*/)\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"AuthorizedEvent\",\n  \"abstractKey\": null\n},\nv16 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"dummy\",\n    \"storageKey\": null\n  }\n],\nv17 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": (v16/*: any*/),\n  \"type\": \"NotAllowed\",\n  \"abstractKey\": null\n},\nv18 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v3/*: any*/)\n  ],\n  \"type\": \"Node\",\n  \"abstractKey\": \"__isNode\"\n},\nv19 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showTitle\",\n  \"storageKey\": null\n},\nv20 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showMetadata\",\n  \"storageKey\": null\n},\nv21 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"order\",\n  \"storageKey\": null\n},\nv22 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"layout\",\n  \"storageKey\": null\n},\nv23 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"opencastId\",\n  \"storageKey\": null\n},\nv24 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"uri\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"TitleEditSaveMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"updateTitleBlock\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"BlocksBlockData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Mutation\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"TitleEditSaveMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"updateTitleBlock\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/),\n          {\n            \"kind\": \"TypeDiscriminator\",\n            \"abstractKey\": \"__isBlock\"\n          },\n          (v3/*: any*/),\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": (v4/*: any*/),\n            \"type\": \"TitleBlock\",\n            \"abstractKey\": null\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": (v4/*: any*/),\n            \"type\": \"TextBlock\",\n            \"abstractKey\": null\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": \"Series\",\n                \"kind\": \"LinkedField\",\n                \"name\": \"series\",\n                \"plural\": false,\n                \"selections\": [\n                  (v5/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"SyncedSeriesData\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"syncedData\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v6/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"entries\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v2/*: any*/),\n                      (v15/*: any*/),\n                      (v17/*: any*/),\n                      (v18/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v3/*: any*/)\n                ],\n                \"storageKey\": null\n              },\n              (v19/*: any*/),\n              (v20/*: any*/),\n              (v21/*: any*/),\n              (v22/*: any*/)\n            ],\n            \"type\": \"SeriesBlock\",\n            \"abstractKey\": null\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": null,\n                \"kind\": \"LinkedField\",\n                \"name\": \"event\",\n                \"plural\": false,\n                \"selections\": [\n                  (v2/*: any*/),\n                  (v17/*: any*/),\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": [\n                      (v3/*: any*/),\n                      (v5/*: any*/),\n                      (v9/*: any*/),\n                      (v23/*: any*/),\n                      (v7/*: any*/),\n                      (v8/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"metadata\",\n                        \"storageKey\": null\n                      },\n                      (v6/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"Series\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"series\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v5/*: any*/),\n                          (v23/*: any*/),\n                          (v3/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"SyncedEventData\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"syncedData\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v10/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"kind\": \"ScalarField\",\n                            \"name\": \"updated\",\n                            \"storageKey\": null\n                          },\n                          (v12/*: any*/),\n                          (v13/*: any*/),\n                          (v11/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Track\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"tracks\",\n                            \"plural\": true,\n                            \"selections\": [\n                              (v24/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"flavor\",\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"mimetype\",\n                                \"storageKey\": null\n                              },\n                              (v14/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"isMaster\",\n                                \"storageKey\": null\n                              }\n                            ],\n                            \"storageKey\": null\n                          },\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Caption\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"captions\",\n                            \"plural\": true,\n                            \"selections\": [\n                              (v24/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"lang\",\n                                \"storageKey\": null\n                              }\n                            ],\n                            \"storageKey\": null\n                          },\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Segment\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"segments\",\n                            \"plural\": true,\n                            \"selections\": [\n                              (v24/*: any*/),\n                              (v12/*: any*/)\n                            ],\n                            \"storageKey\": null\n                          }\n                        ],\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"type\": \"AuthorizedEvent\",\n                    \"abstractKey\": null\n                  },\n                  (v18/*: any*/)\n                ],\n                \"storageKey\": null\n              },\n              (v19/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"showLink\",\n                \"storageKey\": null\n              }\n            ],\n            \"type\": \"VideoBlock\",\n            \"abstractKey\": null\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": null,\n                \"kind\": \"LinkedField\",\n                \"name\": \"playlist\",\n                \"plural\": false,\n                \"selections\": [\n                  (v2/*: any*/),\n                  {\n                    \"kind\": \"TypeDiscriminator\",\n                    \"abstractKey\": \"__isPlaylist\"\n                  },\n                  (v17/*: any*/),\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": [\n                      (v3/*: any*/),\n                      (v5/*: any*/),\n                      (v6/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": null,\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"entries\",\n                        \"plural\": true,\n                        \"selections\": [\n                          (v2/*: any*/),\n                          (v15/*: any*/),\n                          {\n                            \"kind\": \"InlineFragment\",\n                            \"selections\": (v16/*: any*/),\n                            \"type\": \"Missing\",\n                            \"abstractKey\": null\n                          },\n                          (v17/*: any*/),\n                          (v18/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"type\": \"AuthorizedPlaylist\",\n                    \"abstractKey\": null\n                  }\n                ],\n                \"storageKey\": null\n              },\n              (v19/*: any*/),\n              (v20/*: any*/),\n              (v21/*: any*/),\n              (v22/*: any*/)\n            ],\n            \"type\": \"PlaylistBlock\",\n            \"abstractKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"6ec0bedcb6957005a46d7c01913b3b9c\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"TitleEditSaveMutation\",\n    \"operationKind\": \"mutation\",\n    \"text\": \"mutation TitleEditSaveMutation(\\n  $id: ID!\\n  $set: UpdateTitleBlock!\\n) {\\n  updateTitleBlock(id: $id, set: $set) {\\n    __typename\\n    ...BlocksBlockData\\n    id\\n  }\\n}\\n\\nfragment BlocksBlockData on Block {\\n  __isBlock: __typename\\n  id\\n  __typename\\n  ... on TitleBlock {\\n    ...TitleBlockData\\n  }\\n  ... on TextBlock {\\n    ...TextBlockData\\n  }\\n  ... on SeriesBlock {\\n    ...SeriesBlockData\\n  }\\n  ... on VideoBlock {\\n    ...VideoBlockData\\n  }\\n  ... on PlaylistBlock {\\n    ...PlaylistBlockData\\n  }\\n}\\n\\nfragment PlaylistBlockData on PlaylistBlock {\\n  playlist {\\n    __typename\\n    ...PlaylistBlockPlaylistData\\n    ... on AuthorizedPlaylist {\\n      id\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment PlaylistBlockPlaylistData on Playlist {\\n  __isPlaylist: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedPlaylist {\\n    id\\n    title\\n    description\\n    entries {\\n      __typename\\n      ... on AuthorizedEvent {\\n        id\\n        ...VideoListEventData\\n      }\\n      ... on Missing {\\n        dummy\\n      }\\n      ... on NotAllowed {\\n        dummy\\n      }\\n      ... on Node {\\n        __isNode: __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment SeriesBlockData on SeriesBlock {\\n  series {\\n    ...SeriesBlockSeriesData\\n    id\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment SeriesBlockSeriesData on Series {\\n  title\\n  syncedData {\\n    description\\n  }\\n  entries {\\n    __typename\\n    ... on AuthorizedEvent {\\n      id\\n      ...VideoListEventData\\n    }\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n}\\n\\nfragment TextBlockData on TextBlock {\\n  content\\n}\\n\\nfragment TitleBlockData on TitleBlock {\\n  content\\n}\\n\\nfragment VideoBlockData on VideoBlock {\\n  event {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedEvent {\\n      id\\n      title\\n      isLive\\n      opencastId\\n      created\\n      creators\\n      metadata\\n      description\\n      series {\\n        title\\n        opencastId\\n        id\\n      }\\n      syncedData {\\n        duration\\n        updated\\n        startTime\\n        endTime\\n        thumbnail\\n        tracks {\\n          uri\\n          flavor\\n          mimetype\\n          resolution\\n          isMaster\\n        }\\n        captions {\\n          uri\\n          lang\\n        }\\n        segments {\\n          uri\\n          startTime\\n        }\\n      }\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  showTitle\\n  showLink\\n}\\n\\nfragment VideoListEventData on AuthorizedEvent {\\n  id\\n  title\\n  created\\n  creators\\n  isLive\\n  description\\n  series {\\n    title\\n    id\\n  }\\n  syncedData {\\n    duration\\n    thumbnail\\n    startTime\\n    endTime\\n    tracks {\\n      resolution\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"b20d08f2d0a5ecdf4749ec52acfbea86\";\n\nexport default node;\n","/**\n * @generated SignedSource<<1a1e85f5eca3bfbe650678a7145e9594>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type NewVideoBlock = {\n  event: string;\n  showLink: boolean;\n  showTitle: boolean;\n};\nexport type VideoEditCreateMutation$variables = {\n  block: NewVideoBlock;\n  index: number;\n  realm: string;\n};\nexport type VideoEditCreateMutation$data = {\n  readonly addVideoBlock: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"ContentManageRealmData\">;\n  };\n};\nexport type VideoEditCreateMutation = {\n  response: VideoEditCreateMutation$data;\n  variables: VideoEditCreateMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"block\"\n},\nv1 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"index\"\n},\nv2 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"realm\"\n},\nv3 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"block\",\n    \"variableName\": \"block\"\n  },\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"index\",\n    \"variableName\": \"index\"\n  },\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"realm\",\n    \"variableName\": \"realm\"\n  }\n],\nv4 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n},\nv6 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv7 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv8 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"content\",\n    \"storageKey\": null\n  }\n],\nv9 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"opencastId\",\n  \"storageKey\": null\n},\nv10 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv11 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n},\nv12 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"created\",\n  \"storageKey\": null\n},\nv13 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"creators\",\n  \"storageKey\": null\n},\nv14 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isLive\",\n  \"storageKey\": null\n},\nv15 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"duration\",\n  \"storageKey\": null\n},\nv16 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"thumbnail\",\n  \"storageKey\": null\n},\nv17 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"startTime\",\n  \"storageKey\": null\n},\nv18 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"endTime\",\n  \"storageKey\": null\n},\nv19 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"resolution\",\n  \"storageKey\": null\n},\nv20 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v6/*: any*/),\n    (v10/*: any*/),\n    (v12/*: any*/),\n    (v13/*: any*/),\n    (v14/*: any*/),\n    (v11/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Series\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"series\",\n      \"plural\": false,\n      \"selections\": [\n        (v10/*: any*/),\n        (v6/*: any*/)\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"SyncedEventData\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"syncedData\",\n      \"plural\": false,\n      \"selections\": [\n        (v15/*: any*/),\n        (v16/*: any*/),\n        (v17/*: any*/),\n        (v18/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": \"Track\",\n          \"kind\": \"LinkedField\",\n          \"name\": \"tracks\",\n          \"plural\": true,\n          \"selections\": [\n            (v19/*: any*/)\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"AuthorizedEvent\",\n  \"abstractKey\": null\n},\nv21 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"dummy\",\n    \"storageKey\": null\n  }\n],\nv22 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": (v21/*: any*/),\n  \"type\": \"NotAllowed\",\n  \"abstractKey\": null\n},\nv23 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v6/*: any*/)\n  ],\n  \"type\": \"Node\",\n  \"abstractKey\": \"__isNode\"\n},\nv24 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showTitle\",\n  \"storageKey\": null\n},\nv25 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showMetadata\",\n  \"storageKey\": null\n},\nv26 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"order\",\n  \"storageKey\": null\n},\nv27 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"layout\",\n  \"storageKey\": null\n},\nv28 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"uri\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": [\n      (v0/*: any*/),\n      (v1/*: any*/),\n      (v2/*: any*/)\n    ],\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"VideoEditCreateMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v3/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"addVideoBlock\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"ContentManageRealmData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Mutation\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": [\n      (v2/*: any*/),\n      (v1/*: any*/),\n      (v0/*: any*/)\n    ],\n    \"kind\": \"Operation\",\n    \"name\": \"VideoEditCreateMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v3/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"addVideoBlock\",\n        \"plural\": false,\n        \"selections\": [\n          (v4/*: any*/),\n          (v5/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"isMainRoot\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"ancestors\",\n            \"plural\": true,\n            \"selections\": [\n              (v4/*: any*/),\n              (v5/*: any*/),\n              (v6/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          (v6/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": null,\n            \"kind\": \"LinkedField\",\n            \"name\": \"blocks\",\n            \"plural\": true,\n            \"selections\": [\n              (v7/*: any*/),\n              (v6/*: any*/),\n              {\n                \"kind\": \"TypeDiscriminator\",\n                \"abstractKey\": \"__isBlock\"\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": (v8/*: any*/),\n                \"type\": \"TitleBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": (v8/*: any*/),\n                \"type\": \"TextBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Series\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"series\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v6/*: any*/),\n                      (v9/*: any*/),\n                      (v10/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"SyncedSeriesData\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"syncedData\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v11/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": null,\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"entries\",\n                        \"plural\": true,\n                        \"selections\": [\n                          (v7/*: any*/),\n                          (v20/*: any*/),\n                          (v22/*: any*/),\n                          (v23/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v24/*: any*/),\n                  (v25/*: any*/),\n                  (v26/*: any*/),\n                  (v27/*: any*/)\n                ],\n                \"type\": \"SeriesBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"event\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v7/*: any*/),\n                      (v22/*: any*/),\n                      {\n                        \"kind\": \"InlineFragment\",\n                        \"selections\": [\n                          (v6/*: any*/),\n                          (v10/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Series\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"series\",\n                            \"plural\": false,\n                            \"selections\": [\n                              (v10/*: any*/),\n                              (v6/*: any*/),\n                              (v9/*: any*/)\n                            ],\n                            \"storageKey\": null\n                          },\n                          (v12/*: any*/),\n                          (v14/*: any*/),\n                          (v13/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"SyncedEventData\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"syncedData\",\n                            \"plural\": false,\n                            \"selections\": [\n                              (v16/*: any*/),\n                              (v15/*: any*/),\n                              (v17/*: any*/),\n                              (v18/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"updated\",\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Track\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"tracks\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v28/*: any*/),\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"flavor\",\n                                    \"storageKey\": null\n                                  },\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"mimetype\",\n                                    \"storageKey\": null\n                                  },\n                                  (v19/*: any*/),\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"isMaster\",\n                                    \"storageKey\": null\n                                  }\n                                ],\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Caption\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"captions\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v28/*: any*/),\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"lang\",\n                                    \"storageKey\": null\n                                  }\n                                ],\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Segment\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"segments\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v28/*: any*/),\n                                  (v17/*: any*/)\n                                ],\n                                \"storageKey\": null\n                              }\n                            ],\n                            \"storageKey\": null\n                          },\n                          (v9/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"kind\": \"ScalarField\",\n                            \"name\": \"metadata\",\n                            \"storageKey\": null\n                          },\n                          (v11/*: any*/)\n                        ],\n                        \"type\": \"AuthorizedEvent\",\n                        \"abstractKey\": null\n                      },\n                      (v23/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v24/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"showLink\",\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"VideoBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"playlist\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v7/*: any*/),\n                      (v22/*: any*/),\n                      {\n                        \"kind\": \"InlineFragment\",\n                        \"selections\": [\n                          (v6/*: any*/),\n                          (v9/*: any*/),\n                          (v10/*: any*/),\n                          (v11/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": null,\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"entries\",\n                            \"plural\": true,\n                            \"selections\": [\n                              (v7/*: any*/),\n                              (v20/*: any*/),\n                              {\n                                \"kind\": \"InlineFragment\",\n                                \"selections\": (v21/*: any*/),\n                                \"type\": \"Missing\",\n                                \"abstractKey\": null\n                              },\n                              (v22/*: any*/),\n                              (v23/*: any*/)\n                            ],\n                            \"storageKey\": null\n                          }\n                        ],\n                        \"type\": \"AuthorizedPlaylist\",\n                        \"abstractKey\": null\n                      },\n                      {\n                        \"kind\": \"TypeDiscriminator\",\n                        \"abstractKey\": \"__isPlaylist\"\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v24/*: any*/),\n                  (v25/*: any*/),\n                  (v26/*: any*/),\n                  (v27/*: any*/)\n                ],\n                \"type\": \"PlaylistBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"ClientExtension\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"editMode\",\n                    \"storageKey\": null\n                  }\n                ]\n              }\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": null,\n            \"kind\": \"LinkedField\",\n            \"name\": \"nameSource\",\n            \"plural\": false,\n            \"selections\": [\n              (v7/*: any*/),\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"block\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v7/*: any*/),\n                      (v6/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"RealmNameFromBlock\",\n                \"abstractKey\": null\n              }\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"0b45188cba54e2211febbb247e5d57a5\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"VideoEditCreateMutation\",\n    \"operationKind\": \"mutation\",\n    \"text\": \"mutation VideoEditCreateMutation(\\n  $realm: ID!\\n  $index: Int!\\n  $block: NewVideoBlock!\\n) {\\n  addVideoBlock(realm: $realm, index: $index, block: $block) {\\n    ...ContentManageRealmData\\n    id\\n  }\\n}\\n\\nfragment AddButtonsRealmData on Realm {\\n  id\\n}\\n\\nfragment BlockRealmData on Realm {\\n  id\\n  ...BlocksRealmData\\n  ...EditButtonsRealmData\\n  ...EditModeRealmData\\n  blocks {\\n    __typename\\n    id\\n    ...BlocksBlockData\\n  }\\n}\\n\\nfragment BlocksBlockData on Block {\\n  __isBlock: __typename\\n  id\\n  __typename\\n  ... on TitleBlock {\\n    ...TitleBlockData\\n  }\\n  ... on TextBlock {\\n    ...TextBlockData\\n  }\\n  ... on SeriesBlock {\\n    ...SeriesBlockData\\n  }\\n  ... on VideoBlock {\\n    ...VideoBlockData\\n  }\\n  ... on PlaylistBlock {\\n    ...PlaylistBlockData\\n  }\\n}\\n\\nfragment BlocksRealmData on Realm {\\n  path\\n}\\n\\nfragment ContentManageRealmData on Realm {\\n  name\\n  path\\n  isMainRoot\\n  ancestors {\\n    name\\n    path\\n    id\\n  }\\n  ...BlockRealmData\\n  ...AddButtonsRealmData\\n  blocks {\\n    __typename\\n    id\\n  }\\n}\\n\\nfragment EditButtonsRealmData on Realm {\\n  ...MoveButtonsData\\n  blocks {\\n    __typename\\n    ...RemoveButtonData\\n    id\\n  }\\n  nameSource {\\n    __typename\\n    ... on RealmNameFromBlock {\\n      block {\\n        __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment EditModeFormRealmData on Realm {\\n  id\\n  blocks {\\n    __typename\\n    id\\n  }\\n}\\n\\nfragment EditModeRealmData on Realm {\\n  blocks {\\n    id\\n    __typename\\n    ... on TitleBlock {\\n      ...TitleEditModeBlockData\\n    }\\n    ... on TextBlock {\\n      ...TextEditModeBlockData\\n    }\\n    ... on SeriesBlock {\\n      ...SeriesEditModeBlockData\\n    }\\n    ... on VideoBlock {\\n      ...VideoEditModeBlockData\\n    }\\n    ... on PlaylistBlock {\\n      ...PlaylistEditModeBlockData\\n    }\\n  }\\n  ...EditModeFormRealmData\\n}\\n\\nfragment MoveButtonsData on Realm {\\n  id\\n  blocks {\\n    __typename\\n    id\\n  }\\n}\\n\\nfragment PlaylistBlockData on PlaylistBlock {\\n  playlist {\\n    __typename\\n    ...PlaylistBlockPlaylistData\\n    ... on AuthorizedPlaylist {\\n      id\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment PlaylistBlockPlaylistData on Playlist {\\n  __isPlaylist: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedPlaylist {\\n    id\\n    title\\n    description\\n    entries {\\n      __typename\\n      ... on AuthorizedEvent {\\n        id\\n        ...VideoListEventData\\n      }\\n      ... on Missing {\\n        dummy\\n      }\\n      ... on NotAllowed {\\n        dummy\\n      }\\n      ... on Node {\\n        __isNode: __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment PlaylistEditModeBlockData on PlaylistBlock {\\n  playlist {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedPlaylist {\\n      id\\n      opencastId\\n      title\\n      description\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment RemoveButtonData on Block {\\n  __isBlock: __typename\\n  id\\n}\\n\\nfragment SeriesBlockData on SeriesBlock {\\n  series {\\n    ...SeriesBlockSeriesData\\n    id\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment SeriesBlockSeriesData on Series {\\n  title\\n  syncedData {\\n    description\\n  }\\n  entries {\\n    __typename\\n    ... on AuthorizedEvent {\\n      id\\n      ...VideoListEventData\\n    }\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n}\\n\\nfragment SeriesEditModeBlockData on SeriesBlock {\\n  series {\\n    id\\n    opencastId\\n    title\\n    syncedData {\\n      description\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment TextBlockData on TextBlock {\\n  content\\n}\\n\\nfragment TextEditModeBlockData on TextBlock {\\n  content\\n}\\n\\nfragment TitleBlockData on TitleBlock {\\n  content\\n}\\n\\nfragment TitleEditModeBlockData on TitleBlock {\\n  content\\n}\\n\\nfragment VideoBlockData on VideoBlock {\\n  event {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedEvent {\\n      id\\n      title\\n      isLive\\n      opencastId\\n      created\\n      creators\\n      metadata\\n      description\\n      series {\\n        title\\n        opencastId\\n        id\\n      }\\n      syncedData {\\n        duration\\n        updated\\n        startTime\\n        endTime\\n        thumbnail\\n        tracks {\\n          uri\\n          flavor\\n          mimetype\\n          resolution\\n          isMaster\\n        }\\n        captions {\\n          uri\\n          lang\\n        }\\n        segments {\\n          uri\\n          startTime\\n        }\\n      }\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  showTitle\\n  showLink\\n}\\n\\nfragment VideoEditModeBlockData on VideoBlock {\\n  event {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedEvent {\\n      id\\n      title\\n      series {\\n        title\\n        id\\n      }\\n      created\\n      isLive\\n      creators\\n      syncedData {\\n        thumbnail\\n        duration\\n        startTime\\n        endTime\\n      }\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  showTitle\\n  showLink\\n}\\n\\nfragment VideoListEventData on AuthorizedEvent {\\n  id\\n  title\\n  created\\n  creators\\n  isLive\\n  description\\n  series {\\n    title\\n    id\\n  }\\n  syncedData {\\n    duration\\n    thumbnail\\n    startTime\\n    endTime\\n    tracks {\\n      resolution\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"e033efdaaa0837322fe4fe0abc7055a1\";\n\nexport default node;\n","/**\n * @generated SignedSource<<4b7ed9d9c6720f9877d7ef7fa1f9844a>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type VideoEditModeBlockData$data = {\n  readonly event: {\n    readonly __typename: \"AuthorizedEvent\";\n    readonly created: string;\n    readonly creators: ReadonlyArray<string>;\n    readonly id: string;\n    readonly isLive: boolean;\n    readonly series: {\n      readonly title: string;\n    } | null | undefined;\n    readonly syncedData: {\n      readonly duration: number;\n      readonly endTime: string | null | undefined;\n      readonly startTime: string | null | undefined;\n      readonly thumbnail: string | null | undefined;\n    } | null | undefined;\n    readonly title: string;\n  } | {\n    readonly __typename: \"NotAllowed\";\n    readonly dummy: boolean | null | undefined;\n  } | {\n    // This will never be '%other', but we need some\n    // value in case none of the concrete values match.\n    readonly __typename: \"%other\";\n  } | null | undefined;\n  readonly showLink: boolean;\n  readonly showTitle: boolean;\n  readonly \" $fragmentType\": \"VideoEditModeBlockData\";\n};\nexport type VideoEditModeBlockData$key = {\n  readonly \" $data\"?: VideoEditModeBlockData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"VideoEditModeBlockData\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n};\nreturn {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"VideoEditModeBlockData\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": null,\n      \"kind\": \"LinkedField\",\n      \"name\": \"event\",\n      \"plural\": false,\n      \"selections\": [\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"__typename\",\n          \"storageKey\": null\n        },\n        {\n          \"kind\": \"InlineFragment\",\n          \"selections\": [\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"dummy\",\n              \"storageKey\": null\n            }\n          ],\n          \"type\": \"NotAllowed\",\n          \"abstractKey\": null\n        },\n        {\n          \"kind\": \"InlineFragment\",\n          \"selections\": [\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"id\",\n              \"storageKey\": null\n            },\n            (v0/*: any*/),\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"concreteType\": \"Series\",\n              \"kind\": \"LinkedField\",\n              \"name\": \"series\",\n              \"plural\": false,\n              \"selections\": [\n                (v0/*: any*/)\n              ],\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"created\",\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"isLive\",\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"creators\",\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"concreteType\": \"SyncedEventData\",\n              \"kind\": \"LinkedField\",\n              \"name\": \"syncedData\",\n              \"plural\": false,\n              \"selections\": [\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"kind\": \"ScalarField\",\n                  \"name\": \"thumbnail\",\n                  \"storageKey\": null\n                },\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"kind\": \"ScalarField\",\n                  \"name\": \"duration\",\n                  \"storageKey\": null\n                },\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"kind\": \"ScalarField\",\n                  \"name\": \"startTime\",\n                  \"storageKey\": null\n                },\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"kind\": \"ScalarField\",\n                  \"name\": \"endTime\",\n                  \"storageKey\": null\n                }\n              ],\n              \"storageKey\": null\n            }\n          ],\n          \"type\": \"AuthorizedEvent\",\n          \"abstractKey\": null\n        }\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"showTitle\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"showLink\",\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"VideoBlock\",\n  \"abstractKey\": null\n};\n})();\n\n(node as any).hash = \"666a91c09e7e1600a652f3e7f448ec00\";\n\nexport default node;\n","/**\n * @generated SignedSource<<7dd91aa6beb15088f72ffa5df7131007>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nexport type VideoEditModeSearchQuery$variables = {\n  q: string;\n};\nexport type VideoEditModeSearchQuery$data = {\n  readonly events: {\n    readonly items?: ReadonlyArray<{\n      readonly created: string;\n      readonly creators: ReadonlyArray<string>;\n      readonly duration: number;\n      readonly endTime: string | null | undefined;\n      readonly id: string;\n      readonly isLive: boolean;\n      readonly seriesTitle: string | null | undefined;\n      readonly startTime: string | null | undefined;\n      readonly thumbnail: string | null | undefined;\n      readonly title: string;\n    }>;\n  };\n};\nexport type VideoEditModeSearchQuery = {\n  response: VideoEditModeSearchQuery$data;\n  variables: VideoEditModeSearchQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"q\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"query\",\n    \"variableName\": \"q\"\n  },\n  {\n    \"kind\": \"Literal\",\n    \"name\": \"writableOnly\",\n    \"value\": false\n  }\n],\nv2 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"SearchEvent\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"items\",\n      \"plural\": true,\n      \"selections\": [\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"id\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"title\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"seriesTitle\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"creators\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"thumbnail\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"isLive\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"created\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"duration\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"startTime\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"endTime\",\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"EventSearchResults\",\n  \"abstractKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"VideoEditModeSearchQuery\",\n    \"selections\": [\n      {\n        \"alias\": \"events\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"searchAllEvents\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/)\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"VideoEditModeSearchQuery\",\n    \"selections\": [\n      {\n        \"alias\": \"events\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"searchAllEvents\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"__typename\",\n            \"storageKey\": null\n          },\n          (v2/*: any*/)\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"9d99a1d40a32bde9dd0a788a1cb36d1f\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"VideoEditModeSearchQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query VideoEditModeSearchQuery(\\n  $q: String!\\n) {\\n  events: searchAllEvents(query: $q, writableOnly: false) {\\n    __typename\\n    ... on EventSearchResults {\\n      items {\\n        id\\n        title\\n        seriesTitle\\n        creators\\n        thumbnail\\n        isLive\\n        created\\n        duration\\n        startTime\\n        endTime\\n      }\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"d15b018f5ad47b546d44bfb093367688\";\n\nexport default node;\n","/**\n * @generated SignedSource<<5182c4b0641b68e65334b05cae68f721>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type UpdateVideoBlock = {\n  event?: string | null | undefined;\n  showLink?: boolean | null | undefined;\n  showTitle?: boolean | null | undefined;\n};\nexport type VideoEditSaveMutation$variables = {\n  id: string;\n  set: UpdateVideoBlock;\n};\nexport type VideoEditSaveMutation$data = {\n  readonly updateVideoBlock: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"BlocksBlockData\" | \"EditBlockUpdateRealmNameData\" | \"VideoEditModeBlockData\">;\n  };\n};\nexport type VideoEditSaveMutation = {\n  response: VideoEditSaveMutation$data;\n  variables: VideoEditSaveMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"id\"\n  },\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"set\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"id\"\n  },\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"set\",\n    \"variableName\": \"set\"\n  }\n],\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv3 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"dummy\",\n    \"storageKey\": null\n  }\n],\nv4 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": (v3/*: any*/),\n  \"type\": \"NotAllowed\",\n  \"abstractKey\": null\n},\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv6 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv7 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"opencastId\",\n  \"storageKey\": null\n},\nv8 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"created\",\n  \"storageKey\": null\n},\nv9 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isLive\",\n  \"storageKey\": null\n},\nv10 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"creators\",\n  \"storageKey\": null\n},\nv11 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"thumbnail\",\n  \"storageKey\": null\n},\nv12 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"duration\",\n  \"storageKey\": null\n},\nv13 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"startTime\",\n  \"storageKey\": null\n},\nv14 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"endTime\",\n  \"storageKey\": null\n},\nv15 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"uri\",\n  \"storageKey\": null\n},\nv16 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"resolution\",\n  \"storageKey\": null\n},\nv17 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n},\nv18 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v5/*: any*/)\n  ],\n  \"type\": \"Node\",\n  \"abstractKey\": \"__isNode\"\n},\nv19 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showTitle\",\n  \"storageKey\": null\n},\nv20 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"content\",\n    \"storageKey\": null\n  }\n],\nv21 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v5/*: any*/),\n    (v6/*: any*/),\n    (v8/*: any*/),\n    (v10/*: any*/),\n    (v9/*: any*/),\n    (v17/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Series\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"series\",\n      \"plural\": false,\n      \"selections\": [\n        (v6/*: any*/),\n        (v5/*: any*/)\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"SyncedEventData\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"syncedData\",\n      \"plural\": false,\n      \"selections\": [\n        (v12/*: any*/),\n        (v11/*: any*/),\n        (v13/*: any*/),\n        (v14/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": \"Track\",\n          \"kind\": \"LinkedField\",\n          \"name\": \"tracks\",\n          \"plural\": true,\n          \"selections\": [\n            (v16/*: any*/)\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"AuthorizedEvent\",\n  \"abstractKey\": null\n},\nv22 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showMetadata\",\n  \"storageKey\": null\n},\nv23 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"order\",\n  \"storageKey\": null\n},\nv24 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"layout\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"VideoEditSaveMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"updateVideoBlock\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"VideoEditModeBlockData\"\n          },\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"BlocksBlockData\"\n          },\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"EditBlockUpdateRealmNameData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Mutation\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"VideoEditSaveMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"updateVideoBlock\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/),\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": null,\n                \"kind\": \"LinkedField\",\n                \"name\": \"event\",\n                \"plural\": false,\n                \"selections\": [\n                  (v2/*: any*/),\n                  (v4/*: any*/),\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": [\n                      (v5/*: any*/),\n                      (v6/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"Series\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"series\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v6/*: any*/),\n                          (v5/*: any*/),\n                          (v7/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      },\n                      (v8/*: any*/),\n                      (v9/*: any*/),\n                      (v10/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"SyncedEventData\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"syncedData\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v11/*: any*/),\n                          (v12/*: any*/),\n                          (v13/*: any*/),\n                          (v14/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"kind\": \"ScalarField\",\n                            \"name\": \"updated\",\n                            \"storageKey\": null\n                          },\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Track\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"tracks\",\n                            \"plural\": true,\n                            \"selections\": [\n                              (v15/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"flavor\",\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"mimetype\",\n                                \"storageKey\": null\n                              },\n                              (v16/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"isMaster\",\n                                \"storageKey\": null\n                              }\n                            ],\n                            \"storageKey\": null\n                          },\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Caption\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"captions\",\n                            \"plural\": true,\n                            \"selections\": [\n                              (v15/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"lang\",\n                                \"storageKey\": null\n                              }\n                            ],\n                            \"storageKey\": null\n                          },\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Segment\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"segments\",\n                            \"plural\": true,\n                            \"selections\": [\n                              (v15/*: any*/),\n                              (v13/*: any*/)\n                            ],\n                            \"storageKey\": null\n                          }\n                        ],\n                        \"storageKey\": null\n                      },\n                      (v7/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"metadata\",\n                        \"storageKey\": null\n                      },\n                      (v17/*: any*/)\n                    ],\n                    \"type\": \"AuthorizedEvent\",\n                    \"abstractKey\": null\n                  },\n                  (v18/*: any*/)\n                ],\n                \"storageKey\": null\n              },\n              (v19/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"showLink\",\n                \"storageKey\": null\n              }\n            ],\n            \"type\": \"VideoBlock\",\n            \"abstractKey\": null\n          },\n          {\n            \"kind\": \"TypeDiscriminator\",\n            \"abstractKey\": \"__isBlock\"\n          },\n          (v5/*: any*/),\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": (v20/*: any*/),\n            \"type\": \"TitleBlock\",\n            \"abstractKey\": null\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": (v20/*: any*/),\n            \"type\": \"TextBlock\",\n            \"abstractKey\": null\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": \"Series\",\n                \"kind\": \"LinkedField\",\n                \"name\": \"series\",\n                \"plural\": false,\n                \"selections\": [\n                  (v6/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"SyncedSeriesData\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"syncedData\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v17/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"entries\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v2/*: any*/),\n                      (v21/*: any*/),\n                      (v4/*: any*/),\n                      (v18/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v5/*: any*/)\n                ],\n                \"storageKey\": null\n              },\n              (v19/*: any*/),\n              (v22/*: any*/),\n              (v23/*: any*/),\n              (v24/*: any*/)\n            ],\n            \"type\": \"SeriesBlock\",\n            \"abstractKey\": null\n          },\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": null,\n                \"kind\": \"LinkedField\",\n                \"name\": \"playlist\",\n                \"plural\": false,\n                \"selections\": [\n                  (v2/*: any*/),\n                  {\n                    \"kind\": \"TypeDiscriminator\",\n                    \"abstractKey\": \"__isPlaylist\"\n                  },\n                  (v4/*: any*/),\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": [\n                      (v5/*: any*/),\n                      (v6/*: any*/),\n                      (v17/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": null,\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"entries\",\n                        \"plural\": true,\n                        \"selections\": [\n                          (v2/*: any*/),\n                          (v21/*: any*/),\n                          {\n                            \"kind\": \"InlineFragment\",\n                            \"selections\": (v3/*: any*/),\n                            \"type\": \"Missing\",\n                            \"abstractKey\": null\n                          },\n                          (v4/*: any*/),\n                          (v18/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"type\": \"AuthorizedPlaylist\",\n                    \"abstractKey\": null\n                  }\n                ],\n                \"storageKey\": null\n              },\n              (v19/*: any*/),\n              (v22/*: any*/),\n              (v23/*: any*/),\n              (v24/*: any*/)\n            ],\n            \"type\": \"PlaylistBlock\",\n            \"abstractKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"realm\",\n            \"plural\": false,\n            \"selections\": [\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"name\",\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": null,\n                \"kind\": \"LinkedField\",\n                \"name\": \"nameSource\",\n                \"plural\": false,\n                \"selections\": [\n                  (v2/*: any*/),\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": [\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": null,\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"block\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v2/*: any*/),\n                          (v5/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"type\": \"RealmNameFromBlock\",\n                    \"abstractKey\": null\n                  }\n                ],\n                \"storageKey\": null\n              },\n              (v5/*: any*/)\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"0fa6f2cd907081717067f7d25bbfd4b5\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"VideoEditSaveMutation\",\n    \"operationKind\": \"mutation\",\n    \"text\": \"mutation VideoEditSaveMutation(\\n  $id: ID!\\n  $set: UpdateVideoBlock!\\n) {\\n  updateVideoBlock(id: $id, set: $set) {\\n    __typename\\n    ...VideoEditModeBlockData\\n    ...BlocksBlockData\\n    ...EditBlockUpdateRealmNameData\\n    id\\n  }\\n}\\n\\nfragment BlocksBlockData on Block {\\n  __isBlock: __typename\\n  id\\n  __typename\\n  ... on TitleBlock {\\n    ...TitleBlockData\\n  }\\n  ... on TextBlock {\\n    ...TextBlockData\\n  }\\n  ... on SeriesBlock {\\n    ...SeriesBlockData\\n  }\\n  ... on VideoBlock {\\n    ...VideoBlockData\\n  }\\n  ... on PlaylistBlock {\\n    ...PlaylistBlockData\\n  }\\n}\\n\\nfragment EditBlockUpdateRealmNameData on Block {\\n  __isBlock: __typename\\n  realm {\\n    name\\n    nameSource {\\n      __typename\\n      ... on RealmNameFromBlock {\\n        block {\\n          __typename\\n          id\\n        }\\n      }\\n    }\\n    id\\n  }\\n}\\n\\nfragment PlaylistBlockData on PlaylistBlock {\\n  playlist {\\n    __typename\\n    ...PlaylistBlockPlaylistData\\n    ... on AuthorizedPlaylist {\\n      id\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment PlaylistBlockPlaylistData on Playlist {\\n  __isPlaylist: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedPlaylist {\\n    id\\n    title\\n    description\\n    entries {\\n      __typename\\n      ... on AuthorizedEvent {\\n        id\\n        ...VideoListEventData\\n      }\\n      ... on Missing {\\n        dummy\\n      }\\n      ... on NotAllowed {\\n        dummy\\n      }\\n      ... on Node {\\n        __isNode: __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment SeriesBlockData on SeriesBlock {\\n  series {\\n    ...SeriesBlockSeriesData\\n    id\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment SeriesBlockSeriesData on Series {\\n  title\\n  syncedData {\\n    description\\n  }\\n  entries {\\n    __typename\\n    ... on AuthorizedEvent {\\n      id\\n      ...VideoListEventData\\n    }\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n}\\n\\nfragment TextBlockData on TextBlock {\\n  content\\n}\\n\\nfragment TitleBlockData on TitleBlock {\\n  content\\n}\\n\\nfragment VideoBlockData on VideoBlock {\\n  event {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedEvent {\\n      id\\n      title\\n      isLive\\n      opencastId\\n      created\\n      creators\\n      metadata\\n      description\\n      series {\\n        title\\n        opencastId\\n        id\\n      }\\n      syncedData {\\n        duration\\n        updated\\n        startTime\\n        endTime\\n        thumbnail\\n        tracks {\\n          uri\\n          flavor\\n          mimetype\\n          resolution\\n          isMaster\\n        }\\n        captions {\\n          uri\\n          lang\\n        }\\n        segments {\\n          uri\\n          startTime\\n        }\\n      }\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  showTitle\\n  showLink\\n}\\n\\nfragment VideoEditModeBlockData on VideoBlock {\\n  event {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedEvent {\\n      id\\n      title\\n      series {\\n        title\\n        id\\n      }\\n      created\\n      isLive\\n      creators\\n      syncedData {\\n        thumbnail\\n        duration\\n        startTime\\n        endTime\\n      }\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  showTitle\\n  showLink\\n}\\n\\nfragment VideoListEventData on AuthorizedEvent {\\n  id\\n  title\\n  created\\n  creators\\n  isLive\\n  description\\n  series {\\n    title\\n    id\\n  }\\n  syncedData {\\n    duration\\n    thumbnail\\n    startTime\\n    endTime\\n    tracks {\\n      resolution\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"f065328ec3b0821415425d70e8f751c3\";\n\nexport default node;\n","/**\n * @generated SignedSource<<35a852f64cd9c9c54413dfde4665156a>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type EditBlockUpdateRealmNameData$data = {\n  readonly realm: {\n    readonly name: string | null | undefined;\n    readonly nameSource: {\n      readonly block?: {\n        readonly id: string;\n      };\n    } | null | undefined;\n  };\n  readonly \" $fragmentType\": \"EditBlockUpdateRealmNameData\";\n};\nexport type EditBlockUpdateRealmNameData$key = {\n  readonly \" $data\"?: EditBlockUpdateRealmNameData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"EditBlockUpdateRealmNameData\">;\n};\n\nconst node: ReaderFragment = {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"EditBlockUpdateRealmNameData\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Realm\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"realm\",\n      \"plural\": false,\n      \"selections\": [\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"name\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": null,\n          \"kind\": \"LinkedField\",\n          \"name\": \"nameSource\",\n          \"plural\": false,\n          \"selections\": [\n            {\n              \"kind\": \"InlineFragment\",\n              \"selections\": [\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"concreteType\": null,\n                  \"kind\": \"LinkedField\",\n                  \"name\": \"block\",\n                  \"plural\": false,\n                  \"selections\": [\n                    {\n                      \"alias\": null,\n                      \"args\": null,\n                      \"kind\": \"ScalarField\",\n                      \"name\": \"id\",\n                      \"storageKey\": null\n                    }\n                  ],\n                  \"storageKey\": null\n                }\n              ],\n              \"type\": \"RealmNameFromBlock\",\n              \"abstractKey\": null\n            }\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"Block\",\n  \"abstractKey\": \"__isBlock\"\n};\n\n(node as any).hash = \"5a57c8f5f2f4a4491a2aa6b4f83bf48d\";\n\nexport default node;\n","/**\n * @generated SignedSource<<5c96e682bb231fc7a4363bbca9653d21>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type EditButtonsRealmData$data = {\n  readonly blocks: ReadonlyArray<{\n    readonly \" $fragmentSpreads\": FragmentRefs<\"RemoveButtonData\">;\n  }>;\n  readonly nameSource: {\n    readonly block?: {\n      readonly id: string;\n    };\n  } | null | undefined;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"MoveButtonsData\">;\n  readonly \" $fragmentType\": \"EditButtonsRealmData\";\n};\nexport type EditButtonsRealmData$key = {\n  readonly \" $data\"?: EditButtonsRealmData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"EditButtonsRealmData\">;\n};\n\nconst node: ReaderFragment = {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"EditButtonsRealmData\",\n  \"selections\": [\n    {\n      \"args\": null,\n      \"kind\": \"FragmentSpread\",\n      \"name\": \"MoveButtonsData\"\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": null,\n      \"kind\": \"LinkedField\",\n      \"name\": \"blocks\",\n      \"plural\": true,\n      \"selections\": [\n        {\n          \"args\": null,\n          \"kind\": \"FragmentSpread\",\n          \"name\": \"RemoveButtonData\"\n        }\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": null,\n      \"kind\": \"LinkedField\",\n      \"name\": \"nameSource\",\n      \"plural\": false,\n      \"selections\": [\n        {\n          \"kind\": \"InlineFragment\",\n          \"selections\": [\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"concreteType\": null,\n              \"kind\": \"LinkedField\",\n              \"name\": \"block\",\n              \"plural\": false,\n              \"selections\": [\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"kind\": \"ScalarField\",\n                  \"name\": \"id\",\n                  \"storageKey\": null\n                }\n              ],\n              \"storageKey\": null\n            }\n          ],\n          \"type\": \"RealmNameFromBlock\",\n          \"abstractKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"Realm\",\n  \"abstractKey\": null\n};\n\n(node as any).hash = \"0bfed75f2aff3dea5aada4b9e61ba001\";\n\nexport default node;\n","/**\n * @generated SignedSource<<50b9a72c5166784dabeb600a2442aab3>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type MoveButtonsData$data = {\n  readonly blocks: ReadonlyArray<{\n    readonly id: string;\n  }>;\n  readonly id: string;\n  readonly \" $fragmentType\": \"MoveButtonsData\";\n};\nexport type MoveButtonsData$key = {\n  readonly \" $data\"?: MoveButtonsData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"MoveButtonsData\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n};\nreturn {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"MoveButtonsData\",\n  \"selections\": [\n    (v0/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": null,\n      \"kind\": \"LinkedField\",\n      \"name\": \"blocks\",\n      \"plural\": true,\n      \"selections\": [\n        (v0/*: any*/)\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"Realm\",\n  \"abstractKey\": null\n};\n})();\n\n(node as any).hash = \"27f195db5591aa08c056bbc0f90d7052\";\n\nexport default node;\n","/**\n * @generated SignedSource<<483ca419f0366f3e7780af9602eb4002>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type MoveButtonsMutation$variables = {\n  indexA: number;\n  indexB: number;\n  realmId: string;\n};\nexport type MoveButtonsMutation$data = {\n  readonly swapBlocksByIndex: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"ContentManageRealmData\">;\n  };\n};\nexport type MoveButtonsMutation = {\n  response: MoveButtonsMutation$data;\n  variables: MoveButtonsMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"indexA\"\n},\nv1 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"indexB\"\n},\nv2 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"realmId\"\n},\nv3 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"indexA\",\n    \"variableName\": \"indexA\"\n  },\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"indexB\",\n    \"variableName\": \"indexB\"\n  },\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"realm\",\n    \"variableName\": \"realmId\"\n  }\n],\nv4 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n},\nv6 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv7 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv8 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"content\",\n    \"storageKey\": null\n  }\n],\nv9 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"opencastId\",\n  \"storageKey\": null\n},\nv10 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv11 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n},\nv12 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"created\",\n  \"storageKey\": null\n},\nv13 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"creators\",\n  \"storageKey\": null\n},\nv14 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isLive\",\n  \"storageKey\": null\n},\nv15 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"duration\",\n  \"storageKey\": null\n},\nv16 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"thumbnail\",\n  \"storageKey\": null\n},\nv17 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"startTime\",\n  \"storageKey\": null\n},\nv18 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"endTime\",\n  \"storageKey\": null\n},\nv19 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"resolution\",\n  \"storageKey\": null\n},\nv20 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v6/*: any*/),\n    (v10/*: any*/),\n    (v12/*: any*/),\n    (v13/*: any*/),\n    (v14/*: any*/),\n    (v11/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Series\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"series\",\n      \"plural\": false,\n      \"selections\": [\n        (v10/*: any*/),\n        (v6/*: any*/)\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"SyncedEventData\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"syncedData\",\n      \"plural\": false,\n      \"selections\": [\n        (v15/*: any*/),\n        (v16/*: any*/),\n        (v17/*: any*/),\n        (v18/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": \"Track\",\n          \"kind\": \"LinkedField\",\n          \"name\": \"tracks\",\n          \"plural\": true,\n          \"selections\": [\n            (v19/*: any*/)\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"AuthorizedEvent\",\n  \"abstractKey\": null\n},\nv21 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"dummy\",\n    \"storageKey\": null\n  }\n],\nv22 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": (v21/*: any*/),\n  \"type\": \"NotAllowed\",\n  \"abstractKey\": null\n},\nv23 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v6/*: any*/)\n  ],\n  \"type\": \"Node\",\n  \"abstractKey\": \"__isNode\"\n},\nv24 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showTitle\",\n  \"storageKey\": null\n},\nv25 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showMetadata\",\n  \"storageKey\": null\n},\nv26 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"order\",\n  \"storageKey\": null\n},\nv27 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"layout\",\n  \"storageKey\": null\n},\nv28 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"uri\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": [\n      (v0/*: any*/),\n      (v1/*: any*/),\n      (v2/*: any*/)\n    ],\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"MoveButtonsMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v3/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"swapBlocksByIndex\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"ContentManageRealmData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Mutation\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": [\n      (v2/*: any*/),\n      (v0/*: any*/),\n      (v1/*: any*/)\n    ],\n    \"kind\": \"Operation\",\n    \"name\": \"MoveButtonsMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v3/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"swapBlocksByIndex\",\n        \"plural\": false,\n        \"selections\": [\n          (v4/*: any*/),\n          (v5/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"isMainRoot\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"ancestors\",\n            \"plural\": true,\n            \"selections\": [\n              (v4/*: any*/),\n              (v5/*: any*/),\n              (v6/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          (v6/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": null,\n            \"kind\": \"LinkedField\",\n            \"name\": \"blocks\",\n            \"plural\": true,\n            \"selections\": [\n              (v7/*: any*/),\n              (v6/*: any*/),\n              {\n                \"kind\": \"TypeDiscriminator\",\n                \"abstractKey\": \"__isBlock\"\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": (v8/*: any*/),\n                \"type\": \"TitleBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": (v8/*: any*/),\n                \"type\": \"TextBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Series\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"series\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v6/*: any*/),\n                      (v9/*: any*/),\n                      (v10/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"SyncedSeriesData\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"syncedData\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v11/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": null,\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"entries\",\n                        \"plural\": true,\n                        \"selections\": [\n                          (v7/*: any*/),\n                          (v20/*: any*/),\n                          (v22/*: any*/),\n                          (v23/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v24/*: any*/),\n                  (v25/*: any*/),\n                  (v26/*: any*/),\n                  (v27/*: any*/)\n                ],\n                \"type\": \"SeriesBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"event\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v7/*: any*/),\n                      (v22/*: any*/),\n                      {\n                        \"kind\": \"InlineFragment\",\n                        \"selections\": [\n                          (v6/*: any*/),\n                          (v10/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Series\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"series\",\n                            \"plural\": false,\n                            \"selections\": [\n                              (v10/*: any*/),\n                              (v6/*: any*/),\n                              (v9/*: any*/)\n                            ],\n                            \"storageKey\": null\n                          },\n                          (v12/*: any*/),\n                          (v14/*: any*/),\n                          (v13/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"SyncedEventData\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"syncedData\",\n                            \"plural\": false,\n                            \"selections\": [\n                              (v16/*: any*/),\n                              (v15/*: any*/),\n                              (v17/*: any*/),\n                              (v18/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"updated\",\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Track\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"tracks\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v28/*: any*/),\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"flavor\",\n                                    \"storageKey\": null\n                                  },\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"mimetype\",\n                                    \"storageKey\": null\n                                  },\n                                  (v19/*: any*/),\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"isMaster\",\n                                    \"storageKey\": null\n                                  }\n                                ],\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Caption\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"captions\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v28/*: any*/),\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"lang\",\n                                    \"storageKey\": null\n                                  }\n                                ],\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Segment\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"segments\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v28/*: any*/),\n                                  (v17/*: any*/)\n                                ],\n                                \"storageKey\": null\n                              }\n                            ],\n                            \"storageKey\": null\n                          },\n                          (v9/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"kind\": \"ScalarField\",\n                            \"name\": \"metadata\",\n                            \"storageKey\": null\n                          },\n                          (v11/*: any*/)\n                        ],\n                        \"type\": \"AuthorizedEvent\",\n                        \"abstractKey\": null\n                      },\n                      (v23/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v24/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"showLink\",\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"VideoBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"playlist\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v7/*: any*/),\n                      (v22/*: any*/),\n                      {\n                        \"kind\": \"InlineFragment\",\n                        \"selections\": [\n                          (v6/*: any*/),\n                          (v9/*: any*/),\n                          (v10/*: any*/),\n                          (v11/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": null,\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"entries\",\n                            \"plural\": true,\n                            \"selections\": [\n                              (v7/*: any*/),\n                              (v20/*: any*/),\n                              {\n                                \"kind\": \"InlineFragment\",\n                                \"selections\": (v21/*: any*/),\n                                \"type\": \"Missing\",\n                                \"abstractKey\": null\n                              },\n                              (v22/*: any*/),\n                              (v23/*: any*/)\n                            ],\n                            \"storageKey\": null\n                          }\n                        ],\n                        \"type\": \"AuthorizedPlaylist\",\n                        \"abstractKey\": null\n                      },\n                      {\n                        \"kind\": \"TypeDiscriminator\",\n                        \"abstractKey\": \"__isPlaylist\"\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v24/*: any*/),\n                  (v25/*: any*/),\n                  (v26/*: any*/),\n                  (v27/*: any*/)\n                ],\n                \"type\": \"PlaylistBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"ClientExtension\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"editMode\",\n                    \"storageKey\": null\n                  }\n                ]\n              }\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": null,\n            \"kind\": \"LinkedField\",\n            \"name\": \"nameSource\",\n            \"plural\": false,\n            \"selections\": [\n              (v7/*: any*/),\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"block\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v7/*: any*/),\n                      (v6/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"RealmNameFromBlock\",\n                \"abstractKey\": null\n              }\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"42da3d23e1f516194cd4350621237842\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"MoveButtonsMutation\",\n    \"operationKind\": \"mutation\",\n    \"text\": \"mutation MoveButtonsMutation(\\n  $realmId: ID!\\n  $indexA: Int!\\n  $indexB: Int!\\n) {\\n  swapBlocksByIndex(realm: $realmId, indexA: $indexA, indexB: $indexB) {\\n    ...ContentManageRealmData\\n    id\\n  }\\n}\\n\\nfragment AddButtonsRealmData on Realm {\\n  id\\n}\\n\\nfragment BlockRealmData on Realm {\\n  id\\n  ...BlocksRealmData\\n  ...EditButtonsRealmData\\n  ...EditModeRealmData\\n  blocks {\\n    __typename\\n    id\\n    ...BlocksBlockData\\n  }\\n}\\n\\nfragment BlocksBlockData on Block {\\n  __isBlock: __typename\\n  id\\n  __typename\\n  ... on TitleBlock {\\n    ...TitleBlockData\\n  }\\n  ... on TextBlock {\\n    ...TextBlockData\\n  }\\n  ... on SeriesBlock {\\n    ...SeriesBlockData\\n  }\\n  ... on VideoBlock {\\n    ...VideoBlockData\\n  }\\n  ... on PlaylistBlock {\\n    ...PlaylistBlockData\\n  }\\n}\\n\\nfragment BlocksRealmData on Realm {\\n  path\\n}\\n\\nfragment ContentManageRealmData on Realm {\\n  name\\n  path\\n  isMainRoot\\n  ancestors {\\n    name\\n    path\\n    id\\n  }\\n  ...BlockRealmData\\n  ...AddButtonsRealmData\\n  blocks {\\n    __typename\\n    id\\n  }\\n}\\n\\nfragment EditButtonsRealmData on Realm {\\n  ...MoveButtonsData\\n  blocks {\\n    __typename\\n    ...RemoveButtonData\\n    id\\n  }\\n  nameSource {\\n    __typename\\n    ... on RealmNameFromBlock {\\n      block {\\n        __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment EditModeFormRealmData on Realm {\\n  id\\n  blocks {\\n    __typename\\n    id\\n  }\\n}\\n\\nfragment EditModeRealmData on Realm {\\n  blocks {\\n    id\\n    __typename\\n    ... on TitleBlock {\\n      ...TitleEditModeBlockData\\n    }\\n    ... on TextBlock {\\n      ...TextEditModeBlockData\\n    }\\n    ... on SeriesBlock {\\n      ...SeriesEditModeBlockData\\n    }\\n    ... on VideoBlock {\\n      ...VideoEditModeBlockData\\n    }\\n    ... on PlaylistBlock {\\n      ...PlaylistEditModeBlockData\\n    }\\n  }\\n  ...EditModeFormRealmData\\n}\\n\\nfragment MoveButtonsData on Realm {\\n  id\\n  blocks {\\n    __typename\\n    id\\n  }\\n}\\n\\nfragment PlaylistBlockData on PlaylistBlock {\\n  playlist {\\n    __typename\\n    ...PlaylistBlockPlaylistData\\n    ... on AuthorizedPlaylist {\\n      id\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment PlaylistBlockPlaylistData on Playlist {\\n  __isPlaylist: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedPlaylist {\\n    id\\n    title\\n    description\\n    entries {\\n      __typename\\n      ... on AuthorizedEvent {\\n        id\\n        ...VideoListEventData\\n      }\\n      ... on Missing {\\n        dummy\\n      }\\n      ... on NotAllowed {\\n        dummy\\n      }\\n      ... on Node {\\n        __isNode: __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment PlaylistEditModeBlockData on PlaylistBlock {\\n  playlist {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedPlaylist {\\n      id\\n      opencastId\\n      title\\n      description\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment RemoveButtonData on Block {\\n  __isBlock: __typename\\n  id\\n}\\n\\nfragment SeriesBlockData on SeriesBlock {\\n  series {\\n    ...SeriesBlockSeriesData\\n    id\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment SeriesBlockSeriesData on Series {\\n  title\\n  syncedData {\\n    description\\n  }\\n  entries {\\n    __typename\\n    ... on AuthorizedEvent {\\n      id\\n      ...VideoListEventData\\n    }\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n}\\n\\nfragment SeriesEditModeBlockData on SeriesBlock {\\n  series {\\n    id\\n    opencastId\\n    title\\n    syncedData {\\n      description\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment TextBlockData on TextBlock {\\n  content\\n}\\n\\nfragment TextEditModeBlockData on TextBlock {\\n  content\\n}\\n\\nfragment TitleBlockData on TitleBlock {\\n  content\\n}\\n\\nfragment TitleEditModeBlockData on TitleBlock {\\n  content\\n}\\n\\nfragment VideoBlockData on VideoBlock {\\n  event {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedEvent {\\n      id\\n      title\\n      isLive\\n      opencastId\\n      created\\n      creators\\n      metadata\\n      description\\n      series {\\n        title\\n        opencastId\\n        id\\n      }\\n      syncedData {\\n        duration\\n        updated\\n        startTime\\n        endTime\\n        thumbnail\\n        tracks {\\n          uri\\n          flavor\\n          mimetype\\n          resolution\\n          isMaster\\n        }\\n        captions {\\n          uri\\n          lang\\n        }\\n        segments {\\n          uri\\n          startTime\\n        }\\n      }\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  showTitle\\n  showLink\\n}\\n\\nfragment VideoEditModeBlockData on VideoBlock {\\n  event {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedEvent {\\n      id\\n      title\\n      series {\\n        title\\n        id\\n      }\\n      created\\n      isLive\\n      creators\\n      syncedData {\\n        thumbnail\\n        duration\\n        startTime\\n        endTime\\n      }\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  showTitle\\n  showLink\\n}\\n\\nfragment VideoListEventData on AuthorizedEvent {\\n  id\\n  title\\n  created\\n  creators\\n  isLive\\n  description\\n  series {\\n    title\\n    id\\n  }\\n  syncedData {\\n    duration\\n    thumbnail\\n    startTime\\n    endTime\\n    tracks {\\n      resolution\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"efe0761662025795f096be17accffc3c\";\n\nexport default node;\n","/**\n * @generated SignedSource<<3182bb0adc4e3d5e7d5f8ecfc5496a3a>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type RemoveButtonData$data = {\n  readonly id: string;\n  readonly \" $fragmentType\": \"RemoveButtonData\";\n};\nexport type RemoveButtonData$key = {\n  readonly \" $data\"?: RemoveButtonData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"RemoveButtonData\">;\n};\n\nconst node: ReaderFragment = {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"RemoveButtonData\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"id\",\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"Block\",\n  \"abstractKey\": \"__isBlock\"\n};\n\n(node as any).hash = \"cfffa7c33d9f702943ca017319eabb55\";\n\nexport default node;\n","/**\n * @generated SignedSource<<73027f7d89b5eab5f108cc58424cdf9b>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type RemoveButtonMutation$variables = {\n  id: string;\n};\nexport type RemoveButtonMutation$data = {\n  readonly removeBlock: {\n    readonly id: string;\n    readonly realm: {\n      readonly \" $fragmentSpreads\": FragmentRefs<\"ContentManageRealmData\">;\n    };\n  };\n};\nexport type RemoveButtonMutation = {\n  response: RemoveButtonMutation$data;\n  variables: RemoveButtonMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"id\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"id\"\n  }\n],\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv3 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv4 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n},\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv6 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"content\",\n    \"storageKey\": null\n  }\n],\nv7 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"opencastId\",\n  \"storageKey\": null\n},\nv8 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv9 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n},\nv10 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"created\",\n  \"storageKey\": null\n},\nv11 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"creators\",\n  \"storageKey\": null\n},\nv12 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isLive\",\n  \"storageKey\": null\n},\nv13 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"duration\",\n  \"storageKey\": null\n},\nv14 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"thumbnail\",\n  \"storageKey\": null\n},\nv15 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"startTime\",\n  \"storageKey\": null\n},\nv16 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"endTime\",\n  \"storageKey\": null\n},\nv17 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"resolution\",\n  \"storageKey\": null\n},\nv18 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v2/*: any*/),\n    (v8/*: any*/),\n    (v10/*: any*/),\n    (v11/*: any*/),\n    (v12/*: any*/),\n    (v9/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Series\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"series\",\n      \"plural\": false,\n      \"selections\": [\n        (v8/*: any*/),\n        (v2/*: any*/)\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"SyncedEventData\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"syncedData\",\n      \"plural\": false,\n      \"selections\": [\n        (v13/*: any*/),\n        (v14/*: any*/),\n        (v15/*: any*/),\n        (v16/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": \"Track\",\n          \"kind\": \"LinkedField\",\n          \"name\": \"tracks\",\n          \"plural\": true,\n          \"selections\": [\n            (v17/*: any*/)\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"AuthorizedEvent\",\n  \"abstractKey\": null\n},\nv19 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"dummy\",\n    \"storageKey\": null\n  }\n],\nv20 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": (v19/*: any*/),\n  \"type\": \"NotAllowed\",\n  \"abstractKey\": null\n},\nv21 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v2/*: any*/)\n  ],\n  \"type\": \"Node\",\n  \"abstractKey\": \"__isNode\"\n},\nv22 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showTitle\",\n  \"storageKey\": null\n},\nv23 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showMetadata\",\n  \"storageKey\": null\n},\nv24 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"order\",\n  \"storageKey\": null\n},\nv25 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"layout\",\n  \"storageKey\": null\n},\nv26 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"uri\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"RemoveButtonMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v1/*: any*/),\n        \"concreteType\": \"RemovedBlock\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"removeBlock\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"realm\",\n            \"plural\": false,\n            \"selections\": [\n              {\n                \"args\": null,\n                \"kind\": \"FragmentSpread\",\n                \"name\": \"ContentManageRealmData\"\n              }\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Mutation\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"RemoveButtonMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v1/*: any*/),\n        \"concreteType\": \"RemovedBlock\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"removeBlock\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"filters\": null,\n            \"handle\": \"deleteRecord\",\n            \"key\": \"\",\n            \"kind\": \"ScalarHandle\",\n            \"name\": \"id\"\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"realm\",\n            \"plural\": false,\n            \"selections\": [\n              (v3/*: any*/),\n              (v4/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"isMainRoot\",\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": \"Realm\",\n                \"kind\": \"LinkedField\",\n                \"name\": \"ancestors\",\n                \"plural\": true,\n                \"selections\": [\n                  (v3/*: any*/),\n                  (v4/*: any*/),\n                  (v2/*: any*/)\n                ],\n                \"storageKey\": null\n              },\n              (v2/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": null,\n                \"kind\": \"LinkedField\",\n                \"name\": \"blocks\",\n                \"plural\": true,\n                \"selections\": [\n                  (v5/*: any*/),\n                  (v2/*: any*/),\n                  {\n                    \"kind\": \"TypeDiscriminator\",\n                    \"abstractKey\": \"__isBlock\"\n                  },\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": (v6/*: any*/),\n                    \"type\": \"TitleBlock\",\n                    \"abstractKey\": null\n                  },\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": (v6/*: any*/),\n                    \"type\": \"TextBlock\",\n                    \"abstractKey\": null\n                  },\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": [\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"Series\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"series\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v2/*: any*/),\n                          (v7/*: any*/),\n                          (v8/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"SyncedSeriesData\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"syncedData\",\n                            \"plural\": false,\n                            \"selections\": [\n                              (v9/*: any*/)\n                            ],\n                            \"storageKey\": null\n                          },\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": null,\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"entries\",\n                            \"plural\": true,\n                            \"selections\": [\n                              (v5/*: any*/),\n                              (v18/*: any*/),\n                              (v20/*: any*/),\n                              (v21/*: any*/)\n                            ],\n                            \"storageKey\": null\n                          }\n                        ],\n                        \"storageKey\": null\n                      },\n                      (v22/*: any*/),\n                      (v23/*: any*/),\n                      (v24/*: any*/),\n                      (v25/*: any*/)\n                    ],\n                    \"type\": \"SeriesBlock\",\n                    \"abstractKey\": null\n                  },\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": [\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": null,\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"event\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v5/*: any*/),\n                          (v20/*: any*/),\n                          {\n                            \"kind\": \"InlineFragment\",\n                            \"selections\": [\n                              (v2/*: any*/),\n                              (v8/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Series\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"series\",\n                                \"plural\": false,\n                                \"selections\": [\n                                  (v8/*: any*/),\n                                  (v2/*: any*/),\n                                  (v7/*: any*/)\n                                ],\n                                \"storageKey\": null\n                              },\n                              (v10/*: any*/),\n                              (v12/*: any*/),\n                              (v11/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"SyncedEventData\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"syncedData\",\n                                \"plural\": false,\n                                \"selections\": [\n                                  (v14/*: any*/),\n                                  (v13/*: any*/),\n                                  (v15/*: any*/),\n                                  (v16/*: any*/),\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"updated\",\n                                    \"storageKey\": null\n                                  },\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"concreteType\": \"Track\",\n                                    \"kind\": \"LinkedField\",\n                                    \"name\": \"tracks\",\n                                    \"plural\": true,\n                                    \"selections\": [\n                                      (v26/*: any*/),\n                                      {\n                                        \"alias\": null,\n                                        \"args\": null,\n                                        \"kind\": \"ScalarField\",\n                                        \"name\": \"flavor\",\n                                        \"storageKey\": null\n                                      },\n                                      {\n                                        \"alias\": null,\n                                        \"args\": null,\n                                        \"kind\": \"ScalarField\",\n                                        \"name\": \"mimetype\",\n                                        \"storageKey\": null\n                                      },\n                                      (v17/*: any*/),\n                                      {\n                                        \"alias\": null,\n                                        \"args\": null,\n                                        \"kind\": \"ScalarField\",\n                                        \"name\": \"isMaster\",\n                                        \"storageKey\": null\n                                      }\n                                    ],\n                                    \"storageKey\": null\n                                  },\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"concreteType\": \"Caption\",\n                                    \"kind\": \"LinkedField\",\n                                    \"name\": \"captions\",\n                                    \"plural\": true,\n                                    \"selections\": [\n                                      (v26/*: any*/),\n                                      {\n                                        \"alias\": null,\n                                        \"args\": null,\n                                        \"kind\": \"ScalarField\",\n                                        \"name\": \"lang\",\n                                        \"storageKey\": null\n                                      }\n                                    ],\n                                    \"storageKey\": null\n                                  },\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"concreteType\": \"Segment\",\n                                    \"kind\": \"LinkedField\",\n                                    \"name\": \"segments\",\n                                    \"plural\": true,\n                                    \"selections\": [\n                                      (v26/*: any*/),\n                                      (v15/*: any*/)\n                                    ],\n                                    \"storageKey\": null\n                                  }\n                                ],\n                                \"storageKey\": null\n                              },\n                              (v7/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"metadata\",\n                                \"storageKey\": null\n                              },\n                              (v9/*: any*/)\n                            ],\n                            \"type\": \"AuthorizedEvent\",\n                            \"abstractKey\": null\n                          },\n                          (v21/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      },\n                      (v22/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"showLink\",\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"type\": \"VideoBlock\",\n                    \"abstractKey\": null\n                  },\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": [\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": null,\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"playlist\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v5/*: any*/),\n                          (v20/*: any*/),\n                          {\n                            \"kind\": \"InlineFragment\",\n                            \"selections\": [\n                              (v2/*: any*/),\n                              (v7/*: any*/),\n                              (v8/*: any*/),\n                              (v9/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": null,\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"entries\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v5/*: any*/),\n                                  (v18/*: any*/),\n                                  {\n                                    \"kind\": \"InlineFragment\",\n                                    \"selections\": (v19/*: any*/),\n                                    \"type\": \"Missing\",\n                                    \"abstractKey\": null\n                                  },\n                                  (v20/*: any*/),\n                                  (v21/*: any*/)\n                                ],\n                                \"storageKey\": null\n                              }\n                            ],\n                            \"type\": \"AuthorizedPlaylist\",\n                            \"abstractKey\": null\n                          },\n                          {\n                            \"kind\": \"TypeDiscriminator\",\n                            \"abstractKey\": \"__isPlaylist\"\n                          }\n                        ],\n                        \"storageKey\": null\n                      },\n                      (v22/*: any*/),\n                      (v23/*: any*/),\n                      (v24/*: any*/),\n                      (v25/*: any*/)\n                    ],\n                    \"type\": \"PlaylistBlock\",\n                    \"abstractKey\": null\n                  },\n                  {\n                    \"kind\": \"ClientExtension\",\n                    \"selections\": [\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"kind\": \"ScalarField\",\n                        \"name\": \"editMode\",\n                        \"storageKey\": null\n                      }\n                    ]\n                  }\n                ],\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": null,\n                \"kind\": \"LinkedField\",\n                \"name\": \"nameSource\",\n                \"plural\": false,\n                \"selections\": [\n                  (v5/*: any*/),\n                  {\n                    \"kind\": \"InlineFragment\",\n                    \"selections\": [\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": null,\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"block\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v5/*: any*/),\n                          (v2/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"type\": \"RealmNameFromBlock\",\n                    \"abstractKey\": null\n                  }\n                ],\n                \"storageKey\": null\n              }\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"25b2bb2c0991bf3a303c79efa524d8b9\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"RemoveButtonMutation\",\n    \"operationKind\": \"mutation\",\n    \"text\": \"mutation RemoveButtonMutation(\\n  $id: ID!\\n) {\\n  removeBlock(id: $id) {\\n    id\\n    realm {\\n      ...ContentManageRealmData\\n      id\\n    }\\n  }\\n}\\n\\nfragment AddButtonsRealmData on Realm {\\n  id\\n}\\n\\nfragment BlockRealmData on Realm {\\n  id\\n  ...BlocksRealmData\\n  ...EditButtonsRealmData\\n  ...EditModeRealmData\\n  blocks {\\n    __typename\\n    id\\n    ...BlocksBlockData\\n  }\\n}\\n\\nfragment BlocksBlockData on Block {\\n  __isBlock: __typename\\n  id\\n  __typename\\n  ... on TitleBlock {\\n    ...TitleBlockData\\n  }\\n  ... on TextBlock {\\n    ...TextBlockData\\n  }\\n  ... on SeriesBlock {\\n    ...SeriesBlockData\\n  }\\n  ... on VideoBlock {\\n    ...VideoBlockData\\n  }\\n  ... on PlaylistBlock {\\n    ...PlaylistBlockData\\n  }\\n}\\n\\nfragment BlocksRealmData on Realm {\\n  path\\n}\\n\\nfragment ContentManageRealmData on Realm {\\n  name\\n  path\\n  isMainRoot\\n  ancestors {\\n    name\\n    path\\n    id\\n  }\\n  ...BlockRealmData\\n  ...AddButtonsRealmData\\n  blocks {\\n    __typename\\n    id\\n  }\\n}\\n\\nfragment EditButtonsRealmData on Realm {\\n  ...MoveButtonsData\\n  blocks {\\n    __typename\\n    ...RemoveButtonData\\n    id\\n  }\\n  nameSource {\\n    __typename\\n    ... on RealmNameFromBlock {\\n      block {\\n        __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment EditModeFormRealmData on Realm {\\n  id\\n  blocks {\\n    __typename\\n    id\\n  }\\n}\\n\\nfragment EditModeRealmData on Realm {\\n  blocks {\\n    id\\n    __typename\\n    ... on TitleBlock {\\n      ...TitleEditModeBlockData\\n    }\\n    ... on TextBlock {\\n      ...TextEditModeBlockData\\n    }\\n    ... on SeriesBlock {\\n      ...SeriesEditModeBlockData\\n    }\\n    ... on VideoBlock {\\n      ...VideoEditModeBlockData\\n    }\\n    ... on PlaylistBlock {\\n      ...PlaylistEditModeBlockData\\n    }\\n  }\\n  ...EditModeFormRealmData\\n}\\n\\nfragment MoveButtonsData on Realm {\\n  id\\n  blocks {\\n    __typename\\n    id\\n  }\\n}\\n\\nfragment PlaylistBlockData on PlaylistBlock {\\n  playlist {\\n    __typename\\n    ...PlaylistBlockPlaylistData\\n    ... on AuthorizedPlaylist {\\n      id\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment PlaylistBlockPlaylistData on Playlist {\\n  __isPlaylist: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedPlaylist {\\n    id\\n    title\\n    description\\n    entries {\\n      __typename\\n      ... on AuthorizedEvent {\\n        id\\n        ...VideoListEventData\\n      }\\n      ... on Missing {\\n        dummy\\n      }\\n      ... on NotAllowed {\\n        dummy\\n      }\\n      ... on Node {\\n        __isNode: __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment PlaylistEditModeBlockData on PlaylistBlock {\\n  playlist {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedPlaylist {\\n      id\\n      opencastId\\n      title\\n      description\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment RemoveButtonData on Block {\\n  __isBlock: __typename\\n  id\\n}\\n\\nfragment SeriesBlockData on SeriesBlock {\\n  series {\\n    ...SeriesBlockSeriesData\\n    id\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment SeriesBlockSeriesData on Series {\\n  title\\n  syncedData {\\n    description\\n  }\\n  entries {\\n    __typename\\n    ... on AuthorizedEvent {\\n      id\\n      ...VideoListEventData\\n    }\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n}\\n\\nfragment SeriesEditModeBlockData on SeriesBlock {\\n  series {\\n    id\\n    opencastId\\n    title\\n    syncedData {\\n      description\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment TextBlockData on TextBlock {\\n  content\\n}\\n\\nfragment TextEditModeBlockData on TextBlock {\\n  content\\n}\\n\\nfragment TitleBlockData on TitleBlock {\\n  content\\n}\\n\\nfragment TitleEditModeBlockData on TitleBlock {\\n  content\\n}\\n\\nfragment VideoBlockData on VideoBlock {\\n  event {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedEvent {\\n      id\\n      title\\n      isLive\\n      opencastId\\n      created\\n      creators\\n      metadata\\n      description\\n      series {\\n        title\\n        opencastId\\n        id\\n      }\\n      syncedData {\\n        duration\\n        updated\\n        startTime\\n        endTime\\n        thumbnail\\n        tracks {\\n          uri\\n          flavor\\n          mimetype\\n          resolution\\n          isMaster\\n        }\\n        captions {\\n          uri\\n          lang\\n        }\\n        segments {\\n          uri\\n          startTime\\n        }\\n      }\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  showTitle\\n  showLink\\n}\\n\\nfragment VideoEditModeBlockData on VideoBlock {\\n  event {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedEvent {\\n      id\\n      title\\n      series {\\n        title\\n        id\\n      }\\n      created\\n      isLive\\n      creators\\n      syncedData {\\n        thumbnail\\n        duration\\n        startTime\\n        endTime\\n      }\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  showTitle\\n  showLink\\n}\\n\\nfragment VideoListEventData on AuthorizedEvent {\\n  id\\n  title\\n  created\\n  creators\\n  isLive\\n  description\\n  series {\\n    title\\n    id\\n  }\\n  syncedData {\\n    duration\\n    thumbnail\\n    startTime\\n    endTime\\n    tracks {\\n      resolution\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"985b3d0858cf69493bbc0836d828d722\";\n\nexport default node;\n","/**\n * @generated SignedSource<<894a6c8c1047b96283f724f7b89ffb04>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type AddButtonsRealmData$data = {\n  readonly id: string;\n  readonly \" $fragmentType\": \"AddButtonsRealmData\";\n};\nexport type AddButtonsRealmData$key = {\n  readonly \" $data\"?: AddButtonsRealmData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"AddButtonsRealmData\">;\n};\n\nconst node: ReaderFragment = {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"AddButtonsRealmData\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"id\",\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"Realm\",\n  \"abstractKey\": null\n};\n\n(node as any).hash = \"6abb70708a90fbf7e549c55135206fed\";\n\nexport default node;\n","/**\n * @generated SignedSource<<d2577eb2026b619b2dad127baed9f412>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type BlockRealmData$data = {\n  readonly blocks: ReadonlyArray<{\n    readonly editMode: boolean | null | undefined;\n    readonly id: string;\n    readonly \" $fragmentSpreads\": FragmentRefs<\"BlocksBlockData\">;\n  }>;\n  readonly id: string;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"BlocksRealmData\" | \"EditButtonsRealmData\" | \"EditModeRealmData\">;\n  readonly \" $fragmentType\": \"BlockRealmData\";\n};\nexport type BlockRealmData$key = {\n  readonly \" $data\"?: BlockRealmData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"BlockRealmData\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n};\nreturn {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"BlockRealmData\",\n  \"selections\": [\n    (v0/*: any*/),\n    {\n      \"args\": null,\n      \"kind\": \"FragmentSpread\",\n      \"name\": \"BlocksRealmData\"\n    },\n    {\n      \"args\": null,\n      \"kind\": \"FragmentSpread\",\n      \"name\": \"EditButtonsRealmData\"\n    },\n    {\n      \"args\": null,\n      \"kind\": \"FragmentSpread\",\n      \"name\": \"EditModeRealmData\"\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": null,\n      \"kind\": \"LinkedField\",\n      \"name\": \"blocks\",\n      \"plural\": true,\n      \"selections\": [\n        (v0/*: any*/),\n        {\n          \"args\": null,\n          \"kind\": \"FragmentSpread\",\n          \"name\": \"BlocksBlockData\"\n        },\n        {\n          \"kind\": \"ClientExtension\",\n          \"selections\": [\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"editMode\",\n              \"storageKey\": null\n            }\n          ]\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"Realm\",\n  \"abstractKey\": null\n};\n})();\n\n(node as any).hash = \"5260559326539fcc2b551167a096cf6e\";\n\nexport default node;\n","/**\n * @generated SignedSource<<9b8417e091b3f89bd75851dc3f09bef0>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type ContentManageQuery$variables = {\n  path: string;\n};\nexport type ContentManageQuery$data = {\n  readonly realm: {\n    readonly canCurrentUserModerate: boolean;\n    readonly \" $fragmentSpreads\": FragmentRefs<\"ContentManageRealmData\" | \"NavigationData\">;\n  } | null | undefined;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"UserData\">;\n};\nexport type ContentManageQuery = {\n  response: ContentManageQuery$data;\n  variables: ContentManageQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"path\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"path\",\n    \"variableName\": \"path\"\n  }\n],\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"canCurrentUserModerate\",\n  \"storageKey\": null\n},\nv3 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv4 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n},\nv6 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isMainRoot\",\n  \"storageKey\": null\n},\nv7 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv8 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"content\",\n    \"storageKey\": null\n  }\n],\nv9 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"opencastId\",\n  \"storageKey\": null\n},\nv10 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv11 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n},\nv12 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"created\",\n  \"storageKey\": null\n},\nv13 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"creators\",\n  \"storageKey\": null\n},\nv14 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isLive\",\n  \"storageKey\": null\n},\nv15 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"duration\",\n  \"storageKey\": null\n},\nv16 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"thumbnail\",\n  \"storageKey\": null\n},\nv17 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"startTime\",\n  \"storageKey\": null\n},\nv18 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"endTime\",\n  \"storageKey\": null\n},\nv19 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"resolution\",\n  \"storageKey\": null\n},\nv20 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v3/*: any*/),\n    (v10/*: any*/),\n    (v12/*: any*/),\n    (v13/*: any*/),\n    (v14/*: any*/),\n    (v11/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Series\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"series\",\n      \"plural\": false,\n      \"selections\": [\n        (v10/*: any*/),\n        (v3/*: any*/)\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"SyncedEventData\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"syncedData\",\n      \"plural\": false,\n      \"selections\": [\n        (v15/*: any*/),\n        (v16/*: any*/),\n        (v17/*: any*/),\n        (v18/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": \"Track\",\n          \"kind\": \"LinkedField\",\n          \"name\": \"tracks\",\n          \"plural\": true,\n          \"selections\": [\n            (v19/*: any*/)\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"AuthorizedEvent\",\n  \"abstractKey\": null\n},\nv21 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"dummy\",\n    \"storageKey\": null\n  }\n],\nv22 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": (v21/*: any*/),\n  \"type\": \"NotAllowed\",\n  \"abstractKey\": null\n},\nv23 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v3/*: any*/)\n  ],\n  \"type\": \"Node\",\n  \"abstractKey\": \"__isNode\"\n},\nv24 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showTitle\",\n  \"storageKey\": null\n},\nv25 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"showMetadata\",\n  \"storageKey\": null\n},\nv26 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"order\",\n  \"storageKey\": null\n},\nv27 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"layout\",\n  \"storageKey\": null\n},\nv28 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"uri\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"ContentManageQuery\",\n    \"selections\": [\n      {\n        \"args\": null,\n        \"kind\": \"FragmentSpread\",\n        \"name\": \"UserData\"\n      },\n      {\n        \"alias\": \"realm\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"realmByPath\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/),\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"NavigationData\"\n          },\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"ContentManageRealmData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"ContentManageQuery\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"User\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"currentUser\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"username\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"displayName\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUpload\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseStudio\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseEditor\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canCreateUserRealm\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canFindUnlisted\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"roles\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"userRole\",\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"realm\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"realmByPath\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/),\n          (v3/*: any*/),\n          (v4/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"childOrder\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"isUserRoot\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"children\",\n            \"plural\": true,\n            \"selections\": [\n              (v3/*: any*/),\n              (v4/*: any*/),\n              (v5/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"parent\",\n            \"plural\": false,\n            \"selections\": [\n              (v6/*: any*/),\n              (v4/*: any*/),\n              (v5/*: any*/),\n              (v3/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          (v5/*: any*/),\n          (v6/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"ancestors\",\n            \"plural\": true,\n            \"selections\": [\n              (v4/*: any*/),\n              (v5/*: any*/),\n              (v3/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": null,\n            \"kind\": \"LinkedField\",\n            \"name\": \"blocks\",\n            \"plural\": true,\n            \"selections\": [\n              (v7/*: any*/),\n              (v3/*: any*/),\n              {\n                \"kind\": \"TypeDiscriminator\",\n                \"abstractKey\": \"__isBlock\"\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": (v8/*: any*/),\n                \"type\": \"TitleBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": (v8/*: any*/),\n                \"type\": \"TextBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Series\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"series\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v3/*: any*/),\n                      (v9/*: any*/),\n                      (v10/*: any*/),\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": \"SyncedSeriesData\",\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"syncedData\",\n                        \"plural\": false,\n                        \"selections\": [\n                          (v11/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      },\n                      {\n                        \"alias\": null,\n                        \"args\": null,\n                        \"concreteType\": null,\n                        \"kind\": \"LinkedField\",\n                        \"name\": \"entries\",\n                        \"plural\": true,\n                        \"selections\": [\n                          (v7/*: any*/),\n                          (v20/*: any*/),\n                          (v22/*: any*/),\n                          (v23/*: any*/)\n                        ],\n                        \"storageKey\": null\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v24/*: any*/),\n                  (v25/*: any*/),\n                  (v26/*: any*/),\n                  (v27/*: any*/)\n                ],\n                \"type\": \"SeriesBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"event\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v7/*: any*/),\n                      (v22/*: any*/),\n                      {\n                        \"kind\": \"InlineFragment\",\n                        \"selections\": [\n                          (v3/*: any*/),\n                          (v10/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Series\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"series\",\n                            \"plural\": false,\n                            \"selections\": [\n                              (v10/*: any*/),\n                              (v3/*: any*/),\n                              (v9/*: any*/)\n                            ],\n                            \"storageKey\": null\n                          },\n                          (v12/*: any*/),\n                          (v14/*: any*/),\n                          (v13/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"SyncedEventData\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"syncedData\",\n                            \"plural\": false,\n                            \"selections\": [\n                              (v16/*: any*/),\n                              (v15/*: any*/),\n                              (v17/*: any*/),\n                              (v18/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"kind\": \"ScalarField\",\n                                \"name\": \"updated\",\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Track\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"tracks\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v28/*: any*/),\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"flavor\",\n                                    \"storageKey\": null\n                                  },\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"mimetype\",\n                                    \"storageKey\": null\n                                  },\n                                  (v19/*: any*/),\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"isMaster\",\n                                    \"storageKey\": null\n                                  }\n                                ],\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Caption\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"captions\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v28/*: any*/),\n                                  {\n                                    \"alias\": null,\n                                    \"args\": null,\n                                    \"kind\": \"ScalarField\",\n                                    \"name\": \"lang\",\n                                    \"storageKey\": null\n                                  }\n                                ],\n                                \"storageKey\": null\n                              },\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Segment\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"segments\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v28/*: any*/),\n                                  (v17/*: any*/)\n                                ],\n                                \"storageKey\": null\n                              }\n                            ],\n                            \"storageKey\": null\n                          },\n                          (v9/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"kind\": \"ScalarField\",\n                            \"name\": \"metadata\",\n                            \"storageKey\": null\n                          },\n                          (v11/*: any*/)\n                        ],\n                        \"type\": \"AuthorizedEvent\",\n                        \"abstractKey\": null\n                      },\n                      (v23/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v24/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"showLink\",\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"VideoBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"playlist\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v7/*: any*/),\n                      (v22/*: any*/),\n                      {\n                        \"kind\": \"InlineFragment\",\n                        \"selections\": [\n                          (v3/*: any*/),\n                          (v9/*: any*/),\n                          (v10/*: any*/),\n                          (v11/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": null,\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"entries\",\n                            \"plural\": true,\n                            \"selections\": [\n                              (v7/*: any*/),\n                              (v20/*: any*/),\n                              {\n                                \"kind\": \"InlineFragment\",\n                                \"selections\": (v21/*: any*/),\n                                \"type\": \"Missing\",\n                                \"abstractKey\": null\n                              },\n                              (v22/*: any*/),\n                              (v23/*: any*/)\n                            ],\n                            \"storageKey\": null\n                          }\n                        ],\n                        \"type\": \"AuthorizedPlaylist\",\n                        \"abstractKey\": null\n                      },\n                      {\n                        \"kind\": \"TypeDiscriminator\",\n                        \"abstractKey\": \"__isPlaylist\"\n                      }\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v24/*: any*/),\n                  (v25/*: any*/),\n                  (v26/*: any*/),\n                  (v27/*: any*/)\n                ],\n                \"type\": \"PlaylistBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"ClientExtension\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"editMode\",\n                    \"storageKey\": null\n                  }\n                ]\n              }\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": null,\n            \"kind\": \"LinkedField\",\n            \"name\": \"nameSource\",\n            \"plural\": false,\n            \"selections\": [\n              (v7/*: any*/),\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"block\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v7/*: any*/),\n                      (v3/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"RealmNameFromBlock\",\n                \"abstractKey\": null\n              }\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"5233899464d2852909d22a751ff085d4\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"ContentManageQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query ContentManageQuery(\\n  $path: String!\\n) {\\n  ...UserData\\n  realm: realmByPath(path: $path) {\\n    canCurrentUserModerate\\n    ...NavigationData\\n    ...ContentManageRealmData\\n    id\\n  }\\n}\\n\\nfragment AddButtonsRealmData on Realm {\\n  id\\n}\\n\\nfragment BlockRealmData on Realm {\\n  id\\n  ...BlocksRealmData\\n  ...EditButtonsRealmData\\n  ...EditModeRealmData\\n  blocks {\\n    __typename\\n    id\\n    ...BlocksBlockData\\n  }\\n}\\n\\nfragment BlocksBlockData on Block {\\n  __isBlock: __typename\\n  id\\n  __typename\\n  ... on TitleBlock {\\n    ...TitleBlockData\\n  }\\n  ... on TextBlock {\\n    ...TextBlockData\\n  }\\n  ... on SeriesBlock {\\n    ...SeriesBlockData\\n  }\\n  ... on VideoBlock {\\n    ...VideoBlockData\\n  }\\n  ... on PlaylistBlock {\\n    ...PlaylistBlockData\\n  }\\n}\\n\\nfragment BlocksRealmData on Realm {\\n  path\\n}\\n\\nfragment ContentManageRealmData on Realm {\\n  name\\n  path\\n  isMainRoot\\n  ancestors {\\n    name\\n    path\\n    id\\n  }\\n  ...BlockRealmData\\n  ...AddButtonsRealmData\\n  blocks {\\n    __typename\\n    id\\n  }\\n}\\n\\nfragment EditButtonsRealmData on Realm {\\n  ...MoveButtonsData\\n  blocks {\\n    __typename\\n    ...RemoveButtonData\\n    id\\n  }\\n  nameSource {\\n    __typename\\n    ... on RealmNameFromBlock {\\n      block {\\n        __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment EditModeFormRealmData on Realm {\\n  id\\n  blocks {\\n    __typename\\n    id\\n  }\\n}\\n\\nfragment EditModeRealmData on Realm {\\n  blocks {\\n    id\\n    __typename\\n    ... on TitleBlock {\\n      ...TitleEditModeBlockData\\n    }\\n    ... on TextBlock {\\n      ...TextEditModeBlockData\\n    }\\n    ... on SeriesBlock {\\n      ...SeriesEditModeBlockData\\n    }\\n    ... on VideoBlock {\\n      ...VideoEditModeBlockData\\n    }\\n    ... on PlaylistBlock {\\n      ...PlaylistEditModeBlockData\\n    }\\n  }\\n  ...EditModeFormRealmData\\n}\\n\\nfragment MoveButtonsData on Realm {\\n  id\\n  blocks {\\n    __typename\\n    id\\n  }\\n}\\n\\nfragment NavigationData on Realm {\\n  id\\n  name\\n  childOrder\\n  isUserRoot\\n  children {\\n    id\\n    name\\n    path\\n  }\\n  parent {\\n    isMainRoot\\n    name\\n    path\\n    id\\n  }\\n}\\n\\nfragment PlaylistBlockData on PlaylistBlock {\\n  playlist {\\n    __typename\\n    ...PlaylistBlockPlaylistData\\n    ... on AuthorizedPlaylist {\\n      id\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment PlaylistBlockPlaylistData on Playlist {\\n  __isPlaylist: __typename\\n  __typename\\n  ... on NotAllowed {\\n    dummy\\n  }\\n  ... on AuthorizedPlaylist {\\n    id\\n    title\\n    description\\n    entries {\\n      __typename\\n      ... on AuthorizedEvent {\\n        id\\n        ...VideoListEventData\\n      }\\n      ... on Missing {\\n        dummy\\n      }\\n      ... on NotAllowed {\\n        dummy\\n      }\\n      ... on Node {\\n        __isNode: __typename\\n        id\\n      }\\n    }\\n  }\\n}\\n\\nfragment PlaylistEditModeBlockData on PlaylistBlock {\\n  playlist {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedPlaylist {\\n      id\\n      opencastId\\n      title\\n      description\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment RemoveButtonData on Block {\\n  __isBlock: __typename\\n  id\\n}\\n\\nfragment SeriesBlockData on SeriesBlock {\\n  series {\\n    ...SeriesBlockSeriesData\\n    id\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment SeriesBlockSeriesData on Series {\\n  title\\n  syncedData {\\n    description\\n  }\\n  entries {\\n    __typename\\n    ... on AuthorizedEvent {\\n      id\\n      ...VideoListEventData\\n    }\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n}\\n\\nfragment SeriesEditModeBlockData on SeriesBlock {\\n  series {\\n    id\\n    opencastId\\n    title\\n    syncedData {\\n      description\\n    }\\n  }\\n  showTitle\\n  showMetadata\\n  order\\n  layout\\n}\\n\\nfragment TextBlockData on TextBlock {\\n  content\\n}\\n\\nfragment TextEditModeBlockData on TextBlock {\\n  content\\n}\\n\\nfragment TitleBlockData on TitleBlock {\\n  content\\n}\\n\\nfragment TitleEditModeBlockData on TitleBlock {\\n  content\\n}\\n\\nfragment UserData on Query {\\n  currentUser {\\n    username\\n    displayName\\n    canUpload\\n    canUseStudio\\n    canUseEditor\\n    canCreateUserRealm\\n    canFindUnlisted\\n    roles\\n    userRole\\n  }\\n}\\n\\nfragment VideoBlockData on VideoBlock {\\n  event {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedEvent {\\n      id\\n      title\\n      isLive\\n      opencastId\\n      created\\n      creators\\n      metadata\\n      description\\n      series {\\n        title\\n        opencastId\\n        id\\n      }\\n      syncedData {\\n        duration\\n        updated\\n        startTime\\n        endTime\\n        thumbnail\\n        tracks {\\n          uri\\n          flavor\\n          mimetype\\n          resolution\\n          isMaster\\n        }\\n        captions {\\n          uri\\n          lang\\n        }\\n        segments {\\n          uri\\n          startTime\\n        }\\n      }\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  showTitle\\n  showLink\\n}\\n\\nfragment VideoEditModeBlockData on VideoBlock {\\n  event {\\n    __typename\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on AuthorizedEvent {\\n      id\\n      title\\n      series {\\n        title\\n        id\\n      }\\n      created\\n      isLive\\n      creators\\n      syncedData {\\n        thumbnail\\n        duration\\n        startTime\\n        endTime\\n      }\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n  showTitle\\n  showLink\\n}\\n\\nfragment VideoListEventData on AuthorizedEvent {\\n  id\\n  title\\n  created\\n  creators\\n  isLive\\n  description\\n  series {\\n    title\\n    id\\n  }\\n  syncedData {\\n    duration\\n    thumbnail\\n    startTime\\n    endTime\\n    tracks {\\n      resolution\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"48e9ce7af636286cafb857d5b90bea4b\";\n\nexport default node;\n","/**\n * @generated SignedSource<<f45b0c2d0a291f8b20888a38ea5566d6>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type ContentManageRealmData$data = {\n  readonly ancestors: ReadonlyArray<{\n    readonly name: string | null | undefined;\n    readonly path: string;\n  }>;\n  readonly blocks: ReadonlyArray<{\n    readonly editMode: boolean | null | undefined;\n    readonly id: string;\n  }>;\n  readonly isMainRoot: boolean;\n  readonly name: string | null | undefined;\n  readonly path: string;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"AddButtonsRealmData\" | \"BlockRealmData\">;\n  readonly \" $fragmentType\": \"ContentManageRealmData\";\n};\nexport type ContentManageRealmData$key = {\n  readonly \" $data\"?: ContentManageRealmData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"ContentManageRealmData\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv1 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n};\nreturn {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"ContentManageRealmData\",\n  \"selections\": [\n    (v0/*: any*/),\n    (v1/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"isMainRoot\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Realm\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"ancestors\",\n      \"plural\": true,\n      \"selections\": [\n        (v0/*: any*/),\n        (v1/*: any*/)\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"args\": null,\n      \"kind\": \"FragmentSpread\",\n      \"name\": \"BlockRealmData\"\n    },\n    {\n      \"args\": null,\n      \"kind\": \"FragmentSpread\",\n      \"name\": \"AddButtonsRealmData\"\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": null,\n      \"kind\": \"LinkedField\",\n      \"name\": \"blocks\",\n      \"plural\": true,\n      \"selections\": [\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"id\",\n          \"storageKey\": null\n        },\n        {\n          \"kind\": \"ClientExtension\",\n          \"selections\": [\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"editMode\",\n              \"storageKey\": null\n            }\n          ]\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"Realm\",\n  \"abstractKey\": null\n};\n})();\n\n(node as any).hash = \"0b2fb682d33c5ff0288941184e54f1cf\";\n\nexport default node;\n","/**\n * @generated SignedSource<<d141ca60ea7f5dd018c0d27b21d31523>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type NewRealm = {\n  name: string;\n  parent: string;\n  pathSegment: string;\n};\nexport type AddChildMutation$variables = {\n  realm: NewRealm;\n};\nexport type AddChildMutation$data = {\n  readonly addRealm: {\n    readonly parent: {\n      readonly \" $fragmentSpreads\": FragmentRefs<\"NavigationData\">;\n    } | null | undefined;\n    readonly path: string;\n  };\n};\nexport type AddChildMutation = {\n  response: AddChildMutation$data;\n  variables: AddChildMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"realm\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"realm\",\n    \"variableName\": \"realm\"\n  }\n],\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n},\nv3 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv4 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"AddChildMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v1/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"addRealm\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"parent\",\n            \"plural\": false,\n            \"selections\": [\n              {\n                \"args\": null,\n                \"kind\": \"FragmentSpread\",\n                \"name\": \"NavigationData\"\n              }\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Mutation\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"AddChildMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v1/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"addRealm\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"parent\",\n            \"plural\": false,\n            \"selections\": [\n              (v3/*: any*/),\n              (v4/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"childOrder\",\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"isUserRoot\",\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": \"Realm\",\n                \"kind\": \"LinkedField\",\n                \"name\": \"children\",\n                \"plural\": true,\n                \"selections\": [\n                  (v3/*: any*/),\n                  (v4/*: any*/),\n                  (v2/*: any*/)\n                ],\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": \"Realm\",\n                \"kind\": \"LinkedField\",\n                \"name\": \"parent\",\n                \"plural\": false,\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"isMainRoot\",\n                    \"storageKey\": null\n                  },\n                  (v4/*: any*/),\n                  (v2/*: any*/),\n                  (v3/*: any*/)\n                ],\n                \"storageKey\": null\n              }\n            ],\n            \"storageKey\": null\n          },\n          (v3/*: any*/)\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"573d76aeae26055a265f86be53b447c5\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"AddChildMutation\",\n    \"operationKind\": \"mutation\",\n    \"text\": \"mutation AddChildMutation(\\n  $realm: NewRealm!\\n) {\\n  addRealm(realm: $realm) {\\n    path\\n    parent {\\n      ...NavigationData\\n      id\\n    }\\n    id\\n  }\\n}\\n\\nfragment NavigationData on Realm {\\n  id\\n  name\\n  childOrder\\n  isUserRoot\\n  children {\\n    id\\n    name\\n    path\\n  }\\n  parent {\\n    isMainRoot\\n    name\\n    path\\n    id\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"88d9985567332167b0886ea0e6a7dcd5\";\n\nexport default node;\n","/**\n * @generated SignedSource<<a0f5045cd53de44c7be2a6969d0b69b0>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type AddChildQuery$variables = {\n  parent: string;\n};\nexport type AddChildQuery$data = {\n  readonly parent: {\n    readonly ancestors: ReadonlyArray<{\n      readonly name: string | null | undefined;\n      readonly path: string;\n    }>;\n    readonly canCurrentUserModerate: boolean;\n    readonly children: ReadonlyArray<{\n      readonly path: string;\n    }>;\n    readonly id: string;\n    readonly isMainRoot: boolean;\n    readonly name: string | null | undefined;\n    readonly path: string;\n    readonly \" $fragmentSpreads\": FragmentRefs<\"NavigationData\">;\n  } | null | undefined;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"UserData\">;\n};\nexport type AddChildQuery = {\n  response: AddChildQuery$data;\n  variables: AddChildQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"parent\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"path\",\n    \"variableName\": \"parent\"\n  }\n],\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv3 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv4 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isMainRoot\",\n  \"storageKey\": null\n},\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n},\nv6 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"canCurrentUserModerate\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"AddChildQuery\",\n    \"selections\": [\n      {\n        \"args\": null,\n        \"kind\": \"FragmentSpread\",\n        \"name\": \"UserData\"\n      },\n      {\n        \"alias\": \"parent\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"realmByPath\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/),\n          (v3/*: any*/),\n          (v4/*: any*/),\n          (v5/*: any*/),\n          (v6/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"ancestors\",\n            \"plural\": true,\n            \"selections\": [\n              (v3/*: any*/),\n              (v5/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"children\",\n            \"plural\": true,\n            \"selections\": [\n              (v5/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"NavigationData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"AddChildQuery\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"User\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"currentUser\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"username\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"displayName\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUpload\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseStudio\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseEditor\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canCreateUserRealm\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canFindUnlisted\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"roles\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"userRole\",\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"parent\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"realmByPath\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/),\n          (v3/*: any*/),\n          (v4/*: any*/),\n          (v5/*: any*/),\n          (v6/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"ancestors\",\n            \"plural\": true,\n            \"selections\": [\n              (v3/*: any*/),\n              (v5/*: any*/),\n              (v2/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"children\",\n            \"plural\": true,\n            \"selections\": [\n              (v5/*: any*/),\n              (v2/*: any*/),\n              (v3/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"childOrder\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"isUserRoot\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"parent\",\n            \"plural\": false,\n            \"selections\": [\n              (v4/*: any*/),\n              (v3/*: any*/),\n              (v5/*: any*/),\n              (v2/*: any*/)\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"b54ace30d2d0ca25f1f1e5ce6e3d4d0e\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"AddChildQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query AddChildQuery(\\n  $parent: String!\\n) {\\n  ...UserData\\n  parent: realmByPath(path: $parent) {\\n    id\\n    name\\n    isMainRoot\\n    path\\n    canCurrentUserModerate\\n    ancestors {\\n      name\\n      path\\n      id\\n    }\\n    children {\\n      path\\n      id\\n    }\\n    ...NavigationData\\n  }\\n}\\n\\nfragment NavigationData on Realm {\\n  id\\n  name\\n  childOrder\\n  isUserRoot\\n  children {\\n    id\\n    name\\n    path\\n  }\\n  parent {\\n    isMainRoot\\n    name\\n    path\\n    id\\n  }\\n}\\n\\nfragment UserData on Query {\\n  currentUser {\\n    username\\n    displayName\\n    canUpload\\n    canUseStudio\\n    canUseEditor\\n    canCreateUserRealm\\n    canFindUnlisted\\n    roles\\n    userRole\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"751e79ca13236a2a1049772e1f089ef9\";\n\nexport default node;\n","/**\n * @generated SignedSource<<0b74743e339117004085ea0ba9f7c2cf>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nexport type RealmOrder = \"ALPHABETIC_ASC\" | \"ALPHABETIC_DESC\" | \"BY_INDEX\" | \"%future added value\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type ChildOrderEditData$data = {\n  readonly childOrder: RealmOrder;\n  readonly children: ReadonlyArray<{\n    readonly id: string;\n    readonly index: number;\n    readonly name: string | null | undefined;\n  }>;\n  readonly id: string;\n  readonly name: string | null | undefined;\n  readonly \" $fragmentType\": \"ChildOrderEditData\";\n};\nexport type ChildOrderEditData$key = {\n  readonly \" $data\"?: ChildOrderEditData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"ChildOrderEditData\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv1 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n};\nreturn {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"ChildOrderEditData\",\n  \"selections\": [\n    (v0/*: any*/),\n    (v1/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"childOrder\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Realm\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"children\",\n      \"plural\": true,\n      \"selections\": [\n        (v0/*: any*/),\n        (v1/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"index\",\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"Realm\",\n  \"abstractKey\": null\n};\n})();\n\n(node as any).hash = \"6a0ed2b7617b57263e8e1845cae91bfe\";\n\nexport default node;\n","/**\n * @generated SignedSource<<8e7382335fa47321358b9a6e78b1563d>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type RealmOrder = \"ALPHABETIC_ASC\" | \"ALPHABETIC_DESC\" | \"BY_INDEX\" | \"%future added value\";\nexport type ChildIndex = {\n  id: string;\n  index: number;\n};\nexport type ChildOrderMutation$variables = {\n  indices?: ReadonlyArray<ChildIndex> | null | undefined;\n  order: RealmOrder;\n  parent: string;\n};\nexport type ChildOrderMutation$data = {\n  readonly setChildOrder: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"ChildOrderEditData\">;\n  };\n};\nexport type ChildOrderMutation = {\n  response: ChildOrderMutation$data;\n  variables: ChildOrderMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"indices\"\n},\nv1 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"order\"\n},\nv2 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"parent\"\n},\nv3 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"childIndices\",\n    \"variableName\": \"indices\"\n  },\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"childOrder\",\n    \"variableName\": \"order\"\n  },\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"parent\",\n    \"variableName\": \"parent\"\n  }\n],\nv4 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": [\n      (v0/*: any*/),\n      (v1/*: any*/),\n      (v2/*: any*/)\n    ],\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"ChildOrderMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v3/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"setChildOrder\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"ChildOrderEditData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Mutation\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": [\n      (v2/*: any*/),\n      (v1/*: any*/),\n      (v0/*: any*/)\n    ],\n    \"kind\": \"Operation\",\n    \"name\": \"ChildOrderMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v3/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"setChildOrder\",\n        \"plural\": false,\n        \"selections\": [\n          (v4/*: any*/),\n          (v5/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"childOrder\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"children\",\n            \"plural\": true,\n            \"selections\": [\n              (v4/*: any*/),\n              (v5/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"index\",\n                \"storageKey\": null\n              }\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"dab5a0ec102dab904826f26e10f7d8f6\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"ChildOrderMutation\",\n    \"operationKind\": \"mutation\",\n    \"text\": \"mutation ChildOrderMutation(\\n  $parent: ID!\\n  $order: RealmOrder!\\n  $indices: [ChildIndex!]\\n) {\\n  setChildOrder(parent: $parent, childOrder: $order, childIndices: $indices) {\\n    ...ChildOrderEditData\\n    id\\n  }\\n}\\n\\nfragment ChildOrderEditData on Realm {\\n  id\\n  name\\n  childOrder\\n  children {\\n    id\\n    name\\n    index\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"2dec8d2535b85aec06f79a69a6434d7f\";\n\nexport default node;\n","/**\n * @generated SignedSource<<3924fdb18e6b00a61d200a055618e1d8>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type UpdateRealm = {\n  parent?: string | null | undefined;\n  pathSegment?: string | null | undefined;\n};\nexport type DangerZoneChangePathMutation$variables = {\n  id: string;\n  set: UpdateRealm;\n};\nexport type DangerZoneChangePathMutation$data = {\n  readonly updateRealm: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"DangerZoneRealmData\">;\n  };\n};\nexport type DangerZoneChangePathMutation = {\n  response: DangerZoneChangePathMutation$data;\n  variables: DangerZoneChangePathMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"id\"\n  },\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"set\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"id\"\n  },\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"set\",\n    \"variableName\": \"set\"\n  }\n];\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"DangerZoneChangePathMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v1/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"updateRealm\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"DangerZoneRealmData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Mutation\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"DangerZoneChangePathMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v1/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"updateRealm\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"id\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"name\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"isMainRoot\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"isUserRoot\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"path\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"numberOfDescendants\",\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"c1cd0c644b0850fe117f305e80884bd8\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"DangerZoneChangePathMutation\",\n    \"operationKind\": \"mutation\",\n    \"text\": \"mutation DangerZoneChangePathMutation(\\n  $id: ID!\\n  $set: UpdateRealm!\\n) {\\n  updateRealm(id: $id, set: $set) {\\n    ...DangerZoneRealmData\\n    id\\n  }\\n}\\n\\nfragment DangerZoneRealmData on Realm {\\n  id\\n  name\\n  isMainRoot\\n  isUserRoot\\n  path\\n  numberOfDescendants\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"e507aaa70b778bdf9716834384c2ce0d\";\n\nexport default node;\n","/**\n * @generated SignedSource<<9adad27d521280bea5d4c44a376a35a2>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type DangerZoneRealmData$data = {\n  readonly id: string;\n  readonly isMainRoot: boolean;\n  readonly isUserRoot: boolean;\n  readonly name: string | null | undefined;\n  readonly numberOfDescendants: number;\n  readonly path: string;\n  readonly \" $fragmentType\": \"DangerZoneRealmData\";\n};\nexport type DangerZoneRealmData$key = {\n  readonly \" $data\"?: DangerZoneRealmData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"DangerZoneRealmData\">;\n};\n\nconst node: ReaderFragment = {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"DangerZoneRealmData\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"id\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"name\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"isMainRoot\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"isUserRoot\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"path\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"numberOfDescendants\",\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"Realm\",\n  \"abstractKey\": null\n};\n\n(node as any).hash = \"ff66bf13fe7d58c04ac60600203f01dd\";\n\nexport default node;\n","/**\n * @generated SignedSource<<eedaf7355283f1494255338ad52dde90>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type DangerZoneRemoveRealmMutation$variables = {\n  id: string;\n};\nexport type DangerZoneRemoveRealmMutation$data = {\n  readonly removeRealm: {\n    readonly parent: {\n      readonly path: string;\n      readonly \" $fragmentSpreads\": FragmentRefs<\"NavigationData\">;\n    } | null | undefined;\n  };\n};\nexport type DangerZoneRemoveRealmMutation = {\n  response: DangerZoneRemoveRealmMutation$data;\n  variables: DangerZoneRemoveRealmMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"id\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"id\"\n  }\n],\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n},\nv3 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv4 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"DangerZoneRemoveRealmMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v1/*: any*/),\n        \"concreteType\": \"RemovedRealm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"removeRealm\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"parent\",\n            \"plural\": false,\n            \"selections\": [\n              (v2/*: any*/),\n              {\n                \"args\": null,\n                \"kind\": \"FragmentSpread\",\n                \"name\": \"NavigationData\"\n              }\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Mutation\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"DangerZoneRemoveRealmMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v1/*: any*/),\n        \"concreteType\": \"RemovedRealm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"removeRealm\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"parent\",\n            \"plural\": false,\n            \"selections\": [\n              (v2/*: any*/),\n              (v3/*: any*/),\n              (v4/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"childOrder\",\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"isUserRoot\",\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": \"Realm\",\n                \"kind\": \"LinkedField\",\n                \"name\": \"children\",\n                \"plural\": true,\n                \"selections\": [\n                  (v3/*: any*/),\n                  (v4/*: any*/),\n                  (v2/*: any*/)\n                ],\n                \"storageKey\": null\n              },\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": \"Realm\",\n                \"kind\": \"LinkedField\",\n                \"name\": \"parent\",\n                \"plural\": false,\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"kind\": \"ScalarField\",\n                    \"name\": \"isMainRoot\",\n                    \"storageKey\": null\n                  },\n                  (v4/*: any*/),\n                  (v2/*: any*/),\n                  (v3/*: any*/)\n                ],\n                \"storageKey\": null\n              }\n            ],\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"3c794b7036e06e0ff58ba159ffa6801e\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"DangerZoneRemoveRealmMutation\",\n    \"operationKind\": \"mutation\",\n    \"text\": \"mutation DangerZoneRemoveRealmMutation(\\n  $id: ID!\\n) {\\n  removeRealm(id: $id) {\\n    parent {\\n      path\\n      ...NavigationData\\n      id\\n    }\\n  }\\n}\\n\\nfragment NavigationData on Realm {\\n  id\\n  name\\n  childOrder\\n  isUserRoot\\n  children {\\n    id\\n    name\\n    path\\n  }\\n  parent {\\n    isMainRoot\\n    name\\n    path\\n    id\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"a1ca21e795e3a25f77ac3436bea9b359\";\n\nexport default node;\n","/**\n * @generated SignedSource<<e36260ef61161e2374ca92297c519e7f>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type GeneralRealmData$data = {\n  readonly blocks: ReadonlyArray<{\n    readonly event?: {\n      readonly title?: string;\n    } | null | undefined;\n    readonly id: string;\n    readonly series?: {\n      readonly title: string;\n    } | null | undefined;\n  }>;\n  readonly id: string;\n  readonly isMainRoot: boolean;\n  readonly name: string | null | undefined;\n  readonly nameSource: {\n    readonly __typename: \"PlainRealmName\";\n    readonly name: string;\n  } | {\n    readonly __typename: \"RealmNameFromBlock\";\n    readonly block: {\n      readonly id: string;\n    };\n  } | {\n    // This will never be '%other', but we need some\n    // value in case none of the concrete values match.\n    readonly __typename: \"%other\";\n  } | null | undefined;\n  readonly \" $fragmentType\": \"GeneralRealmData\";\n};\nexport type GeneralRealmData$key = {\n  readonly \" $data\"?: GeneralRealmData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"GeneralRealmData\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv1 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv2 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"title\",\n    \"storageKey\": null\n  }\n];\nreturn {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"GeneralRealmData\",\n  \"selections\": [\n    (v0/*: any*/),\n    (v1/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": null,\n      \"kind\": \"LinkedField\",\n      \"name\": \"nameSource\",\n      \"plural\": false,\n      \"selections\": [\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"__typename\",\n          \"storageKey\": null\n        },\n        {\n          \"kind\": \"InlineFragment\",\n          \"selections\": [\n            (v1/*: any*/)\n          ],\n          \"type\": \"PlainRealmName\",\n          \"abstractKey\": null\n        },\n        {\n          \"kind\": \"InlineFragment\",\n          \"selections\": [\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"concreteType\": null,\n              \"kind\": \"LinkedField\",\n              \"name\": \"block\",\n              \"plural\": false,\n              \"selections\": [\n                (v0/*: any*/)\n              ],\n              \"storageKey\": null\n            }\n          ],\n          \"type\": \"RealmNameFromBlock\",\n          \"abstractKey\": null\n        }\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": null,\n      \"kind\": \"LinkedField\",\n      \"name\": \"blocks\",\n      \"plural\": true,\n      \"selections\": [\n        (v0/*: any*/),\n        {\n          \"kind\": \"InlineFragment\",\n          \"selections\": [\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"concreteType\": null,\n              \"kind\": \"LinkedField\",\n              \"name\": \"event\",\n              \"plural\": false,\n              \"selections\": [\n                {\n                  \"kind\": \"InlineFragment\",\n                  \"selections\": (v2/*: any*/),\n                  \"type\": \"AuthorizedEvent\",\n                  \"abstractKey\": null\n                }\n              ],\n              \"storageKey\": null\n            }\n          ],\n          \"type\": \"VideoBlock\",\n          \"abstractKey\": null\n        },\n        {\n          \"kind\": \"InlineFragment\",\n          \"selections\": [\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"concreteType\": \"Series\",\n              \"kind\": \"LinkedField\",\n              \"name\": \"series\",\n              \"plural\": false,\n              \"selections\": (v2/*: any*/),\n              \"storageKey\": null\n            }\n          ],\n          \"type\": \"SeriesBlock\",\n          \"abstractKey\": null\n        }\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"isMainRoot\",\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"Realm\",\n  \"abstractKey\": null\n};\n})();\n\n(node as any).hash = \"e1102b3a8d10b506063fd1d67efc3cb3\";\n\nexport default node;\n","/**\n * @generated SignedSource<<3028980b429d02ceacf9f8fe3c767f24>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type UpdatedRealmName = {\n  block?: string | null | undefined;\n  plain?: string | null | undefined;\n};\nexport type GeneralRealmRenameMutation$variables = {\n  id: string;\n  name: UpdatedRealmName;\n};\nexport type GeneralRealmRenameMutation$data = {\n  readonly renameRealm: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"GeneralRealmData\">;\n  };\n};\nexport type GeneralRealmRenameMutation = {\n  response: GeneralRealmRenameMutation$data;\n  variables: GeneralRealmRenameMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"id\"\n  },\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"name\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"id\"\n  },\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"name\",\n    \"variableName\": \"name\"\n  }\n],\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv3 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv4 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"GeneralRealmRenameMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v1/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"renameRealm\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"GeneralRealmData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Mutation\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"GeneralRealmRenameMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v1/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"renameRealm\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/),\n          (v3/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": null,\n            \"kind\": \"LinkedField\",\n            \"name\": \"nameSource\",\n            \"plural\": false,\n            \"selections\": [\n              (v4/*: any*/),\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  (v3/*: any*/)\n                ],\n                \"type\": \"PlainRealmName\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"block\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v4/*: any*/),\n                      (v2/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"RealmNameFromBlock\",\n                \"abstractKey\": null\n              }\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": null,\n            \"kind\": \"LinkedField\",\n            \"name\": \"blocks\",\n            \"plural\": true,\n            \"selections\": [\n              (v4/*: any*/),\n              (v2/*: any*/),\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"event\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v4/*: any*/),\n                      {\n                        \"kind\": \"InlineFragment\",\n                        \"selections\": [\n                          (v5/*: any*/)\n                        ],\n                        \"type\": \"AuthorizedEvent\",\n                        \"abstractKey\": null\n                      },\n                      {\n                        \"kind\": \"InlineFragment\",\n                        \"selections\": [\n                          (v2/*: any*/)\n                        ],\n                        \"type\": \"Node\",\n                        \"abstractKey\": \"__isNode\"\n                      }\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"VideoBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Series\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"series\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v5/*: any*/),\n                      (v2/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"SeriesBlock\",\n                \"abstractKey\": null\n              }\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"isMainRoot\",\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"c2fc1ff8145c9ad65b8746e96a571371\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"GeneralRealmRenameMutation\",\n    \"operationKind\": \"mutation\",\n    \"text\": \"mutation GeneralRealmRenameMutation(\\n  $id: ID!\\n  $name: UpdatedRealmName!\\n) {\\n  renameRealm(id: $id, name: $name) {\\n    ...GeneralRealmData\\n    id\\n  }\\n}\\n\\nfragment GeneralRealmData on Realm {\\n  id\\n  name\\n  nameSource {\\n    __typename\\n    ... on PlainRealmName {\\n      name\\n    }\\n    ... on RealmNameFromBlock {\\n      block {\\n        __typename\\n        id\\n      }\\n    }\\n  }\\n  blocks {\\n    __typename\\n    id\\n    ... on VideoBlock {\\n      event {\\n        __typename\\n        ... on AuthorizedEvent {\\n          title\\n        }\\n        ... on Node {\\n          __isNode: __typename\\n          id\\n        }\\n      }\\n    }\\n    ... on SeriesBlock {\\n      series {\\n        title\\n        id\\n      }\\n    }\\n  }\\n  isMainRoot\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"096f7cbc9a24d3f13454969033d66869\";\n\nexport default node;\n","/**\n * @generated SignedSource<<bc9c09c20e2811d11c1c0cf35cbe388b>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type RealmManageQuery$variables = {\n  path: string;\n};\nexport type RealmManageQuery$data = {\n  readonly realm: {\n    readonly ancestors: ReadonlyArray<{\n      readonly name: string | null | undefined;\n      readonly path: string;\n    }>;\n    readonly canCurrentUserModerate: boolean;\n    readonly isCurrentUserPageAdmin: boolean;\n    readonly isMainRoot: boolean;\n    readonly name: string | null | undefined;\n    readonly numberOfDescendants: number;\n    readonly path: string;\n    readonly \" $fragmentSpreads\": FragmentRefs<\"ChildOrderEditData\" | \"DangerZoneRealmData\" | \"GeneralRealmData\" | \"NavigationData\" | \"RealmPermissionsData\">;\n  } | null | undefined;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"AccessKnownRolesData\" | \"UserData\">;\n};\nexport type RealmManageQuery = {\n  response: RealmManageQuery$data;\n  variables: RealmManageQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"path\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"path\",\n    \"variableName\": \"path\"\n  }\n],\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv3 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isMainRoot\",\n  \"storageKey\": null\n},\nv4 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"path\",\n  \"storageKey\": null\n},\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isCurrentUserPageAdmin\",\n  \"storageKey\": null\n},\nv6 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"canCurrentUserModerate\",\n  \"storageKey\": null\n},\nv7 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"numberOfDescendants\",\n  \"storageKey\": null\n},\nv8 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"role\",\n  \"storageKey\": null\n},\nv9 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"label\",\n  \"storageKey\": null\n},\nv10 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"implies\",\n  \"storageKey\": null\n},\nv11 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"large\",\n  \"storageKey\": null\n},\nv12 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv13 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"ownerDisplayName\",\n  \"storageKey\": null\n},\nv14 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv15 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv16 = [\n  (v8/*: any*/),\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"actions\",\n    \"storageKey\": null\n  },\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"concreteType\": \"RoleInfo\",\n    \"kind\": \"LinkedField\",\n    \"name\": \"info\",\n    \"plural\": false,\n    \"selections\": [\n      (v9/*: any*/),\n      (v10/*: any*/),\n      (v11/*: any*/)\n    ],\n    \"storageKey\": null\n  }\n];\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"RealmManageQuery\",\n    \"selections\": [\n      {\n        \"args\": null,\n        \"kind\": \"FragmentSpread\",\n        \"name\": \"UserData\"\n      },\n      {\n        \"args\": null,\n        \"kind\": \"FragmentSpread\",\n        \"name\": \"AccessKnownRolesData\"\n      },\n      {\n        \"alias\": \"realm\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"realmByPath\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/),\n          (v3/*: any*/),\n          (v4/*: any*/),\n          (v5/*: any*/),\n          (v6/*: any*/),\n          (v7/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"ancestors\",\n            \"plural\": true,\n            \"selections\": [\n              (v2/*: any*/),\n              (v4/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"GeneralRealmData\"\n          },\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"ChildOrderEditData\"\n          },\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"DangerZoneRealmData\"\n          },\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"NavigationData\"\n          },\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"RealmPermissionsData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"RealmManageQuery\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"User\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"currentUser\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"username\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"displayName\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUpload\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseStudio\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseEditor\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canCreateUserRealm\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canFindUnlisted\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"roles\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"userRole\",\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"KnownGroup\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"knownGroups\",\n        \"plural\": true,\n        \"selections\": [\n          (v8/*: any*/),\n          (v9/*: any*/),\n          (v10/*: any*/),\n          (v11/*: any*/)\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"realm\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"realmByPath\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/),\n          (v3/*: any*/),\n          (v4/*: any*/),\n          (v5/*: any*/),\n          (v6/*: any*/),\n          (v7/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"ancestors\",\n            \"plural\": true,\n            \"selections\": [\n              (v2/*: any*/),\n              (v4/*: any*/),\n              (v12/*: any*/),\n              (v13/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          (v12/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": null,\n            \"kind\": \"LinkedField\",\n            \"name\": \"nameSource\",\n            \"plural\": false,\n            \"selections\": [\n              (v14/*: any*/),\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  (v2/*: any*/)\n                ],\n                \"type\": \"PlainRealmName\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"block\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v14/*: any*/),\n                      (v12/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"RealmNameFromBlock\",\n                \"abstractKey\": null\n              }\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": null,\n            \"kind\": \"LinkedField\",\n            \"name\": \"blocks\",\n            \"plural\": true,\n            \"selections\": [\n              (v14/*: any*/),\n              (v12/*: any*/),\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"event\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v14/*: any*/),\n                      {\n                        \"kind\": \"InlineFragment\",\n                        \"selections\": [\n                          (v15/*: any*/)\n                        ],\n                        \"type\": \"AuthorizedEvent\",\n                        \"abstractKey\": null\n                      },\n                      {\n                        \"kind\": \"InlineFragment\",\n                        \"selections\": [\n                          (v12/*: any*/)\n                        ],\n                        \"type\": \"Node\",\n                        \"abstractKey\": \"__isNode\"\n                      }\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"VideoBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Series\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"series\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v15/*: any*/),\n                      (v12/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"SeriesBlock\",\n                \"abstractKey\": null\n              }\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"childOrder\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"children\",\n            \"plural\": true,\n            \"selections\": [\n              (v12/*: any*/),\n              (v2/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"kind\": \"ScalarField\",\n                \"name\": \"index\",\n                \"storageKey\": null\n              },\n              (v4/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"isUserRoot\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"Realm\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"parent\",\n            \"plural\": false,\n            \"selections\": [\n              (v3/*: any*/),\n              (v2/*: any*/),\n              (v4/*: any*/),\n              (v12/*: any*/)\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"AclItem\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"ownAcl\",\n            \"plural\": true,\n            \"selections\": (v16/*: any*/),\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": \"AclItem\",\n            \"kind\": \"LinkedField\",\n            \"name\": \"inheritedAcl\",\n            \"plural\": true,\n            \"selections\": (v16/*: any*/),\n            \"storageKey\": null\n          },\n          (v13/*: any*/)\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"2d901016b1c7f63a40db27ff9f72562b\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"RealmManageQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query RealmManageQuery(\\n  $path: String!\\n) {\\n  ...UserData\\n  ...AccessKnownRolesData\\n  realm: realmByPath(path: $path) {\\n    name\\n    isMainRoot\\n    path\\n    isCurrentUserPageAdmin\\n    canCurrentUserModerate\\n    numberOfDescendants\\n    ancestors {\\n      name\\n      path\\n      id\\n    }\\n    ...GeneralRealmData\\n    ...ChildOrderEditData\\n    ...DangerZoneRealmData\\n    ...NavigationData\\n    ...RealmPermissionsData\\n    id\\n  }\\n}\\n\\nfragment AccessKnownRolesData on Query {\\n  knownGroups {\\n    role\\n    label\\n    implies\\n    large\\n  }\\n}\\n\\nfragment ChildOrderEditData on Realm {\\n  id\\n  name\\n  childOrder\\n  children {\\n    id\\n    name\\n    index\\n  }\\n}\\n\\nfragment DangerZoneRealmData on Realm {\\n  id\\n  name\\n  isMainRoot\\n  isUserRoot\\n  path\\n  numberOfDescendants\\n}\\n\\nfragment GeneralRealmData on Realm {\\n  id\\n  name\\n  nameSource {\\n    __typename\\n    ... on PlainRealmName {\\n      name\\n    }\\n    ... on RealmNameFromBlock {\\n      block {\\n        __typename\\n        id\\n      }\\n    }\\n  }\\n  blocks {\\n    __typename\\n    id\\n    ... on VideoBlock {\\n      event {\\n        __typename\\n        ... on AuthorizedEvent {\\n          title\\n        }\\n        ... on Node {\\n          __isNode: __typename\\n          id\\n        }\\n      }\\n    }\\n    ... on SeriesBlock {\\n      series {\\n        title\\n        id\\n      }\\n    }\\n  }\\n  isMainRoot\\n}\\n\\nfragment NavigationData on Realm {\\n  id\\n  name\\n  childOrder\\n  isUserRoot\\n  children {\\n    id\\n    name\\n    path\\n  }\\n  parent {\\n    isMainRoot\\n    name\\n    path\\n    id\\n  }\\n}\\n\\nfragment RealmPermissionsData on Realm {\\n  id\\n  ownAcl {\\n    role\\n    actions\\n    info {\\n      label\\n      implies\\n      large\\n    }\\n  }\\n  inheritedAcl {\\n    role\\n    actions\\n    info {\\n      label\\n      implies\\n      large\\n    }\\n  }\\n  ownerDisplayName\\n  ancestors {\\n    ownerDisplayName\\n    id\\n  }\\n}\\n\\nfragment UserData on Query {\\n  currentUser {\\n    username\\n    displayName\\n    canUpload\\n    canUseStudio\\n    canUseEditor\\n    canCreateUserRealm\\n    canFindUnlisted\\n    roles\\n    userRole\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"da31a747c121037b55414c12b6b3efd5\";\n\nexport default node;\n","/**\n * @generated SignedSource<<ef1e1fdc2cff27f1970dc8dc8c0cb218>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type RealmPermissionsData$data = {\n  readonly ancestors: ReadonlyArray<{\n    readonly ownerDisplayName: string | null | undefined;\n  }>;\n  readonly id: string;\n  readonly inheritedAcl: ReadonlyArray<{\n    readonly actions: ReadonlyArray<string>;\n    readonly info: {\n      readonly implies: ReadonlyArray<string> | null | undefined;\n      readonly label: Record<string, string>;\n      readonly large: boolean;\n    } | null | undefined;\n    readonly role: string;\n  }>;\n  readonly ownAcl: ReadonlyArray<{\n    readonly actions: ReadonlyArray<string>;\n    readonly info: {\n      readonly implies: ReadonlyArray<string> | null | undefined;\n      readonly label: Record<string, string>;\n      readonly large: boolean;\n    } | null | undefined;\n    readonly role: string;\n  }>;\n  readonly ownerDisplayName: string | null | undefined;\n  readonly \" $fragmentType\": \"RealmPermissionsData\";\n};\nexport type RealmPermissionsData$key = {\n  readonly \" $data\"?: RealmPermissionsData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"RealmPermissionsData\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"role\",\n    \"storageKey\": null\n  },\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"actions\",\n    \"storageKey\": null\n  },\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"concreteType\": \"RoleInfo\",\n    \"kind\": \"LinkedField\",\n    \"name\": \"info\",\n    \"plural\": false,\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"kind\": \"ScalarField\",\n        \"name\": \"label\",\n        \"storageKey\": null\n      },\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"kind\": \"ScalarField\",\n        \"name\": \"implies\",\n        \"storageKey\": null\n      },\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"kind\": \"ScalarField\",\n        \"name\": \"large\",\n        \"storageKey\": null\n      }\n    ],\n    \"storageKey\": null\n  }\n],\nv1 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"ownerDisplayName\",\n  \"storageKey\": null\n};\nreturn {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"RealmPermissionsData\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"id\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"AclItem\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"ownAcl\",\n      \"plural\": true,\n      \"selections\": (v0/*: any*/),\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"AclItem\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"inheritedAcl\",\n      \"plural\": true,\n      \"selections\": (v0/*: any*/),\n      \"storageKey\": null\n    },\n    (v1/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Realm\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"ancestors\",\n      \"plural\": true,\n      \"selections\": [\n        (v1/*: any*/)\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"Realm\",\n  \"abstractKey\": null\n};\n})();\n\n(node as any).hash = \"fa086ae8febb95394306718b4ac2fbdd\";\n\nexport default node;\n","/**\n * @generated SignedSource<<15885989568ebd8c3b787be73c343032>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type UpdatedPermissions = {\n  adminRoles?: ReadonlyArray<string> | null | undefined;\n  moderatorRoles?: ReadonlyArray<string> | null | undefined;\n};\nexport type RealmPermissionsMutation$variables = {\n  id: string;\n  permissions: UpdatedPermissions;\n};\nexport type RealmPermissionsMutation$data = {\n  readonly updatePermissions: {\n    readonly canCurrentUserModerate: boolean;\n    readonly isCurrentUserPageAdmin: boolean;\n    readonly ownAcl: ReadonlyArray<{\n      readonly actions: ReadonlyArray<string>;\n      readonly info: {\n        readonly implies: ReadonlyArray<string> | null | undefined;\n        readonly label: Record<string, string>;\n        readonly large: boolean;\n      } | null | undefined;\n      readonly role: string;\n    }>;\n    readonly \" $fragmentSpreads\": FragmentRefs<\"GeneralRealmData\">;\n  };\n};\nexport type RealmPermissionsMutation = {\n  response: RealmPermissionsMutation$data;\n  variables: RealmPermissionsMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"id\"\n  },\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"permissions\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"id\"\n  },\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"permissions\",\n    \"variableName\": \"permissions\"\n  }\n],\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"concreteType\": \"AclItem\",\n  \"kind\": \"LinkedField\",\n  \"name\": \"ownAcl\",\n  \"plural\": true,\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"role\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"actions\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"RoleInfo\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"info\",\n      \"plural\": false,\n      \"selections\": [\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"label\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"implies\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"large\",\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"storageKey\": null\n},\nv3 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isCurrentUserPageAdmin\",\n  \"storageKey\": null\n},\nv4 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"canCurrentUserModerate\",\n  \"storageKey\": null\n},\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv6 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"name\",\n  \"storageKey\": null\n},\nv7 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv8 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"RealmPermissionsMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v1/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"updatePermissions\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/),\n          (v3/*: any*/),\n          (v4/*: any*/),\n          {\n            \"args\": null,\n            \"kind\": \"FragmentSpread\",\n            \"name\": \"GeneralRealmData\"\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Mutation\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"RealmPermissionsMutation\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": (v1/*: any*/),\n        \"concreteType\": \"Realm\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"updatePermissions\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/),\n          (v3/*: any*/),\n          (v4/*: any*/),\n          (v5/*: any*/),\n          (v6/*: any*/),\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": null,\n            \"kind\": \"LinkedField\",\n            \"name\": \"nameSource\",\n            \"plural\": false,\n            \"selections\": [\n              (v7/*: any*/),\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  (v6/*: any*/)\n                ],\n                \"type\": \"PlainRealmName\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"block\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v7/*: any*/),\n                      (v5/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"RealmNameFromBlock\",\n                \"abstractKey\": null\n              }\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"concreteType\": null,\n            \"kind\": \"LinkedField\",\n            \"name\": \"blocks\",\n            \"plural\": true,\n            \"selections\": [\n              (v7/*: any*/),\n              (v5/*: any*/),\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"event\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v7/*: any*/),\n                      {\n                        \"kind\": \"InlineFragment\",\n                        \"selections\": [\n                          (v8/*: any*/)\n                        ],\n                        \"type\": \"AuthorizedEvent\",\n                        \"abstractKey\": null\n                      },\n                      {\n                        \"kind\": \"InlineFragment\",\n                        \"selections\": [\n                          (v5/*: any*/)\n                        ],\n                        \"type\": \"Node\",\n                        \"abstractKey\": \"__isNode\"\n                      }\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"VideoBlock\",\n                \"abstractKey\": null\n              },\n              {\n                \"kind\": \"InlineFragment\",\n                \"selections\": [\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"Series\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"series\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v8/*: any*/),\n                      (v5/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  }\n                ],\n                \"type\": \"SeriesBlock\",\n                \"abstractKey\": null\n              }\n            ],\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"isMainRoot\",\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"60b4c1b8d962f8f783f53c427051c08e\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"RealmPermissionsMutation\",\n    \"operationKind\": \"mutation\",\n    \"text\": \"mutation RealmPermissionsMutation(\\n  $id: ID!\\n  $permissions: UpdatedPermissions!\\n) {\\n  updatePermissions(id: $id, permissions: $permissions) {\\n    ownAcl {\\n      role\\n      actions\\n      info {\\n        label\\n        implies\\n        large\\n      }\\n    }\\n    isCurrentUserPageAdmin\\n    canCurrentUserModerate\\n    ...GeneralRealmData\\n    id\\n  }\\n}\\n\\nfragment GeneralRealmData on Realm {\\n  id\\n  name\\n  nameSource {\\n    __typename\\n    ... on PlainRealmName {\\n      name\\n    }\\n    ... on RealmNameFromBlock {\\n      block {\\n        __typename\\n        id\\n      }\\n    }\\n  }\\n  blocks {\\n    __typename\\n    id\\n    ... on VideoBlock {\\n      event {\\n        __typename\\n        ... on AuthorizedEvent {\\n          title\\n        }\\n        ... on Node {\\n          __isNode: __typename\\n          id\\n        }\\n      }\\n    }\\n    ... on SeriesBlock {\\n      series {\\n        title\\n        id\\n      }\\n    }\\n  }\\n  isMainRoot\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"eab0a482dfa347939ef61f5669fcfaa6\";\n\nexport default node;\n","import { TFunction } from \"i18next\";\nimport { match } from \"@opencast/appkit\";\n\nimport { ErrorDisplay } from \"../../../util/err\";\nimport { checkPathSegment, ILLEGAL_CHARS, RESERVED_CHARS } from \"../../Realm\";\n\n\nexport const realmValidations = (t: TFunction) => ({\n    name: {\n        required: t(\"manage.realm.name-must-not-be-empty\"),\n    },\n    path: {\n        required: t(\"manage.realm.path-must-not-be-empty\"),\n        // See the comment about path segments in the realm migration\n        // for an explanation of these validations.\n        // Note that these two places should be kept in sync!\n        validate: (pathSegment: string) => match(checkPathSegment(pathSegment), {\n            \"valid\": () => true as true | string,\n            \"too-short\": () => t(\"manage.realm.path-too-short\"),\n            \"control-char\": () => t(\"manage.realm.no-control-in-path\"),\n            \"whitespace\": () => t(\"manage.realm.no-space-in-path\"),\n            \"illegal-chars\": () => t(\"manage.realm.illegal-chars-in-path\",\n                { illegalChars: ILLEGAL_CHARS }),\n            \"reserved-chars-at-beginning\": () => t(\"manage.realm.reserved-char-in-path\",\n                { reservedChars: RESERVED_CHARS }),\n        }),\n        // TODO: check if path already exists\n    },\n});\n\ntype RealmSettingsContainerProps = JSX.IntrinsicElements[\"div\"];\n\nexport const RealmSettingsContainer: React.FC<RealmSettingsContainerProps> = ({\n    children,\n    ...rest\n}) => (\n    <div\n        css={{\n            // Without this, some \"on focus\" box shadows are clipped as the parent\n            // element has \"overflow: hidden\".\n            marginLeft: 2,\n            \"& > section\": {\n                marginBottom: 64,\n                \"& > h2\": { marginBottom: 16 },\n            },\n        }}\n        {...rest}\n    >{children}</div>\n);\n\n/** Returns an element that displays the given mutation error as best as possible. */\nexport const displayCommitError = (error: Error, failedAction?: string): JSX.Element => {\n    // eslint-disable-next-line no-console\n    console.error(\"Error when committing GraphQL mutation:\", error);\n    return <ErrorDisplay error={error} failedAction={failedAction} />;\n};\n","import { Trans, useTranslation } from \"react-i18next\";\n\nimport { useId, useRef, useState } from \"react\";\nimport { Link, useRouter } from \"../../../router\";\nimport { NotAuthorized } from \"../../../ui/error\";\nimport { Form } from \"../../../ui/Form\";\nimport { CopyableInput, Input, InputWithCheckbox, TextArea, TimeInput } from \"../../../ui/Input\";\nimport { InputContainer, TitleLabel } from \"../../../ui/metadata\";\nimport { isRealUser, useUser } from \"../../../User\";\nimport { Breadcrumbs } from \"../../../ui/Breadcrumbs\";\nimport { PageTitle } from \"../../../layout/header/ui\";\nimport { AuthorizedEvent, makeManageVideoRoute, PAGE_WIDTH } from \"./Shared\";\nimport { ExternalLink } from \"../../../relay/auth\";\nimport { Button, buttonStyle, useAppkitConfig, useColorScheme } from \"@opencast/appkit\";\nimport { COLORS } from \"../../../color\";\nimport { currentRef, secondsToTimeString, translatedConfig } from \"../../../util\";\nimport { DirectVideoRoute, VideoRoute } from \"../../Video\";\nimport { ManageRoute } from \"..\";\nimport { ManageVideosRoute } from \".\";\nimport CONFIG from \"../../../config\";\nimport { graphql, useMutation } from \"react-relay\";\nimport { displayCommitError } from \"../Realm/util\";\nimport { ConfirmationModal, ConfirmationModalHandle } from \"../../../ui/Modal\";\n\n\nexport const ManageVideoDetailsRoute = makeManageVideoRoute(\n    \"details\",\n    \"\",\n    event => <Page event={event} />,\n);\n\nconst deleteVideoMutation = graphql`\n    mutation DetailsDeleteVideoMutation($id: ID!) {\n        deleteVideo(id: $id) { id }\n    }\n`;\n\ntype Props = {\n    event: AuthorizedEvent;\n};\n\nconst Page: React.FC<Props> = ({ event }) => {\n    const { t, i18n } = useTranslation();\n    const { isHighContrast } = useColorScheme();\n    const config = useAppkitConfig();\n\n    const breadcrumbs = [\n        { label: t(\"user.manage-content\"), link: ManageRoute.url },\n        { label: t(\"manage.my-videos.title\"), link: ManageVideosRoute.url },\n    ];\n\n    const user = useUser();\n    if (!isRealUser(user)) {\n        return <NotAuthorized />;\n    }\n\n    return <>\n        <Breadcrumbs path={breadcrumbs} tail={event.title} />\n        <PageTitle title={t(\"manage.my-videos.details.title\")} />\n        <section css={{\n            width: PAGE_WIDTH,\n            maxWidth: \"100%\",\n            marginBottom: 32,\n        }}>\n            <UpdatedCreatedInfo event={event} />\n            <div css={{ margin: \"8px 2px\", flex: \"1 0 auto\" }}>\n                <div css={{ display: \"flex\", gap: 12, marginBottom: 16 }}>\n                    {user.canUseEditor && !event.isLive && event.canWrite && (\n                        <ExternalLink\n                            service=\"EDITOR\"\n                            params={{\n                                id: event.opencastId,\n                                callbackUrl: document.location.href,\n                                callbackSystem: translatedConfig(CONFIG.siteTitle, i18n),\n                            }}\n                            fallback=\"button\"\n                            css={buttonStyle(config, \"normal\", isHighContrast)}\n                        >\n                            {t(\"manage.my-videos.details.open-in-editor\")}\n                        </ExternalLink>\n                    )}\n                    <DeleteButton {...{ event }} />\n                </div>\n                <DirectLink {...{ event }} />\n                <MetadataSection {...{ event }} />\n            </div>\n        </section>\n        <section css={{ marginBottom: 32 }}>\n            <HostRealms {...{ event }} />\n        </section>\n    </>;\n};\n\nconst DeleteButton: React.FC<Props> = ({ event }) => {\n    const { t } = useTranslation();\n    const router = useRouter();\n    const [commit] = useMutation(deleteVideoMutation);\n    const modalRef = useRef<ConfirmationModalHandle>(null);\n\n\n    const deleteVideo = () => {\n        commit({\n            variables: {\n                id: event.id,\n            },\n            updater: store => store.invalidateStore(),\n            onCompleted: () => {\n                currentRef(modalRef).done();\n                router.goto(\"/~manage/videos\");\n            },\n            onError: error => {\n                const failedAction = t(\"manage.my-videos.details.delete.failed\");\n                currentRef(modalRef).reportError(displayCommitError(error, failedAction));\n            },\n        });\n    };\n\n    return <>\n        <Button kind=\"danger\" onClick={() => currentRef(modalRef).open()}>\n            <span css={{ whiteSpace: \"normal\", textWrap: \"balance\" }}>\n                {t(\"manage.my-videos.details.delete.title\")}\n            </span>\n        </Button>\n        <ConfirmationModal\n            title={t(\"manage.my-videos.details.delete.confirm\")}\n            buttonContent={t(\"manage.my-videos.details.delete.title\")}\n            onSubmit={deleteVideo}\n            ref={modalRef}\n        >\n            <p>\n                <Trans i18nKey=\"manage.my-videos.details.delete.cannot-be-undone\" />\n            </p>\n        </ConfirmationModal>\n    </>;\n};\n\nconst DirectLink: React.FC<Props> = ({ event }) => {\n    const { t } = useTranslation();\n    const [timestamp, setTimestamp] = useState(0);\n    const [checkboxChecked, setCheckboxChecked] = useState(false);\n\n    let url = new URL(DirectVideoRoute.url({ videoId: event.id }), document.baseURI);\n    if (timestamp && checkboxChecked) {\n        url = new URL(url + `?t=${secondsToTimeString(timestamp)}`);\n    }\n\n    return (\n        <div css={{ marginBottom: 40 }}>\n            <div css={{ marginBottom: 4 }}>\n                {t(\"manage.my-videos.details.share-direct-link\") + \":\"}\n            </div>\n            <CopyableInput\n                label={t(\"manage.my-videos.details.copy-direct-link-to-clipboard\")}\n                value={url.href}\n                css={{ width: \"100%\", fontSize: 14, marginBottom: 6 }}\n            />\n            <InputWithCheckbox\n                {...{ checkboxChecked, setCheckboxChecked }}\n                label={t(\"manage.my-videos.details.set-time\")}\n                input={<TimeInput {...{ timestamp, setTimestamp }} disabled={!checkboxChecked} />}\n            />\n        </div>\n    );\n};\n\n/** Shows the `created` and `updated` timestamps. */\nconst UpdatedCreatedInfo: React.FC<Props> = ({ event }) => {\n    const { t, i18n } = useTranslation();\n    const created = new Date(event.created).toLocaleString(i18n.language);\n    const updated = event.syncedData?.updated == null\n        ? null\n        : new Date(event.syncedData.updated).toLocaleString(i18n.language);\n\n    return (\n        <div css={{ marginBottom: 16, fontSize: 14 }}>\n            <DateValue label={t(\"video.created\")} value={created} />\n            {updated && <DateValue label={t(\"video.updated\")} value={updated} />}\n        </div>\n    );\n};\n\ntype DateValueProps = {\n    label: string;\n    value: string;\n};\n\nconst DateValue: React.FC<DateValueProps> = ({ label, value }) => (\n    <span css={{ \"&:not(:last-child):after\": { content: \"'•'\", margin: \"0 12px\" } }}>\n        <span css={{ color: COLORS.neutral60, lineHeight: 1 }}>{label + \":\"}</span>\n        <span css={{ marginLeft: 6, marginTop: 4 }}>{value}</span>\n    </span>\n);\n\nconst MetadataSection: React.FC<Props> = ({ event }) => {\n    const { t } = useTranslation();\n    const titleFieldId = useId();\n    const descriptionFieldId = useId();\n\n    return (\n        <Form noValidate>\n            <InputContainer>\n                <TitleLabel htmlFor={titleFieldId} />\n                <Input\n                    id={titleFieldId}\n                    value={event.title}\n                    disabled\n                    css={{ width: \"100%\" }}\n                />\n            </InputContainer>\n\n            <InputContainer>\n                <label htmlFor={descriptionFieldId}>\n                    {t(\"upload.metadata.description\")}\n                </label>\n                <TextArea id={descriptionFieldId} disabled value={event.description ?? \"\"} />\n            </InputContainer>\n        </Form>\n    );\n};\n\nconst HostRealms: React.FC<Props> = ({ event }) => {\n    const { t } = useTranslation();\n\n    return <>\n        <h2 css={{ fontSize: 20, marginBottom: 8 }}>\n            {t(\"manage.my-videos.details.referencing-pages\")}\n        </h2>\n        {event.hostRealms.length === 0\n            ? <i>{t(\"manage.my-videos.details.no-referencing-pages\")}</i>\n            : <>\n                <p>{t(\"manage.my-videos.details.referencing-pages-explanation\")}</p>\n                <ul>{event.hostRealms.map(realm => <li key={realm.id}>\n                    {realm.isMainRoot ? <i>{t(\"general.homepage\")}</i> : realm.name}\n                    &nbsp;\n                    (<Link to={realm.path}>{t(\"general.page\")}</Link>,\n                    &nbsp;\n                    <Link to={VideoRoute.url({ realmPath: realm.path, videoID: event.id })}>\n                        {t(\"video.video\")}\n                    </Link>)\n                </li>)}</ul>\n            </>}\n    </>;\n};\n","import { useTranslation } from \"react-i18next\";\nimport { LuCornerLeftUp, LuInfo, LuShield, LuPlay, LuPenLine } from \"react-icons/lu\";\nimport { graphql } from \"react-relay\";\n\nimport { RootLoader } from \"../../../layout/Root\";\nimport { makeRoute, Route } from \"../../../rauta\";\nimport { loadQuery } from \"../../../relay\";\nimport { ellipsisOverflowCss, LinkList, LinkWithIcon } from \"../../../ui\";\nimport { NotAuthorized } from \"../../../ui/error\";\nimport { NotFound } from \"../../NotFound\";\nimport { b64regex } from \"../../util\";\nimport { Thumbnail } from \"../../../ui/Video\";\nimport { SharedVideoManageQuery } from \"./__generated__/SharedVideoManageQuery.graphql\";\nimport { Link } from \"../../../router\";\nimport { eventId, isExperimentalFlagSet, keyOfId } from \"../../../util\";\nimport { DirectVideoRoute, VideoRoute } from \"../../Video\";\nimport { ManageVideosRoute } from \".\";\n\n\nexport const PAGE_WIDTH = 1100;\n\nexport type QueryResponse = SharedVideoManageQuery[\"response\"];\nexport type Event = QueryResponse[\"event\"];\nexport type AuthorizedEvent = Extract<Event, { __typename: \"AuthorizedEvent\" }>;\n\ntype ManageVideoSubPageType = \"details\" | \"technical-details\" | \"acl\";\n\n/** Helper around `makeRoute` for manage single video subpages. */\nexport const makeManageVideoRoute = (\n    page: ManageVideoSubPageType,\n    path: string,\n    render: (event: AuthorizedEvent, data: QueryResponse) => JSX.Element,\n): Route & { url: (args: { videoId: string }) => string } => (\n    makeRoute({\n        url: ({ videoId }: { videoId: string }) => `/~manage/videos/${keyOfId(videoId)}/${path}`,\n        match: url => {\n            const regex = new RegExp(`^/~manage/videos/(${b64regex}+)${path}/?$`, \"u\");\n            const params = regex.exec(url.pathname);\n            if (params === null) {\n                return null;\n            }\n\n            const videoId = decodeURIComponent(params[1]);\n            const queryRef = loadQuery<SharedVideoManageQuery>(query, { id: eventId(videoId) });\n\n            return {\n                render: () => <RootLoader\n                    {...{ query, queryRef }}\n                    noindex\n                    nav={data => [\n                        <BackLink key={1} />,\n                        <ManageVideoNav key={2} event={data.event} active={page} />,\n                    ]}\n                    render={data => {\n                        if (data.event == null) {\n                            return <NotFound kind=\"video\" />;\n                        }\n                        if (data.event.__typename !== \"AuthorizedEvent\" || !data.event.canWrite) {\n                            return <NotAuthorized />;\n                        }\n\n                        return render(data.event, data);\n                    }}\n                />,\n                dispose: () => queryRef.dispose(),\n            };\n        },\n    })\n);\n\n\n// We have one query for all \"manage video\" pages as there is a huge overlap in\n// what they request. It just simplifies our code a lot and we only pay by\n// overfetching a bit.\nconst query = graphql`\n    query SharedVideoManageQuery($id: ID!) {\n        ...UserData\n        ...AccessKnownRolesData\n        event: eventById(id: $id) {\n            __typename\n            ... on AuthorizedEvent {\n                id\n                title\n                description\n                opencastId\n                created\n                canWrite\n                isLive\n                acl { role actions info { label implies large } }\n                syncedData {\n                    duration\n                    thumbnail\n                    updated\n                    startTime\n                    endTime\n                    tracks { flavor resolution mimetype uri }\n                }\n                series {\n                    title\n                    opencastId\n                    ...SeriesBlockSeriesData\n                }\n                hostRealms { id isMainRoot name path }\n            }\n        }\n    }\n`;\n\n\n/** Simple nav element linking back to \"my videos\" overview page. */\nconst BackLink: React.FC = () => {\n    const { t } = useTranslation();\n    const items = [\n        <LinkWithIcon key={ManageVideosRoute.url} to={ManageVideosRoute.url} iconPos=\"left\">\n            <LuCornerLeftUp />\n            {t(\"manage.my-videos.title\")}\n        </LinkWithIcon>,\n    ];\n\n    return <LinkList items={items} />;\n};\n\n\ntype ManageVideoNavProps = {\n    event: Event;\n    active: ManageVideoSubPageType;\n};\n\nconst ManageVideoNav: React.FC<ManageVideoNavProps> = ({ event, active }) => {\n    const { t } = useTranslation();\n\n    if (event == null) {\n        return null;\n    }\n    if (event.__typename !== \"AuthorizedEvent\" || !event.canWrite) {\n        return null;\n    }\n\n    const id = keyOfId(event.id);\n\n    const entries = [\n        {\n            url: `/~manage/videos/${id}`,\n            page: \"details\",\n            body: <><LuPenLine />{t(\"manage.my-videos.details.title\")}</>,\n        },\n        {\n            url: `/~manage/videos/${id}/technical-details`,\n            page: \"technical-details\",\n            body: <><LuInfo />{t(\"manage.my-videos.technical-details.title\")}</>,\n        },\n    ];\n\n    if (isExperimentalFlagSet()) {\n        entries.splice(1, 0, {\n            url: `/~manage/videos/${id}/access`,\n            page: \"acl\",\n            body: <><LuShield />{t(\"manage.my-videos.acl.title\")}</>,\n        });\n    }\n\n    const items = entries.map(({ url, page, body }, i) => (\n        <LinkWithIcon key={i} to={url} iconPos=\"left\" active={page === active}>\n            {body}\n        </LinkWithIcon>\n    ));\n\n    const videoLink = event.hostRealms.length === 1\n        ? VideoRoute.url({ realmPath: event.hostRealms[0].path, videoID: id })\n        : DirectVideoRoute.url({ videoId: id });\n\n    const header = (\n        <div css={{ display: \"flex\", flexDirection: \"column\" }}>\n            <Link aria-label={t(\"video.video-page\", { video: event.title })} to={videoLink} css={{\n                display: \"block\",\n                position: \"relative\",\n                width: \"100%\",\n                maxWidth: \"calc(40vh * 16 / 9)\",\n                alignSelf: \"center\",\n                \"& > svg\": {\n                    position: \"absolute\",\n                    top: \"50%\",\n                    left: \"50%\",\n                    zIndex: 5,\n                    fontSize: 64,\n                    color: \"white\",\n                    transform: \"translate(-50%, -50%)\",\n                },\n                \"&:not(:hover, :focus) > svg\": {\n                    display: \"none\",\n                },\n                \"&:hover > div, &:focus > div\": {\n                    opacity: 0.7,\n                },\n                backgroundColor: \"black\",\n                borderRadius: 8,\n            }}>\n                <LuPlay />\n                <Thumbnail event={event} />\n            </Link>\n            <div css={{\n                textAlign: \"center\",\n                fontWeight: \"bold\",\n                marginTop: 4,\n                marginBottom: 8,\n                ...ellipsisOverflowCss(2),\n            }}>{event.title}</div>\n        </div>\n    );\n\n    return <LinkList items={[header, ...items]} />;\n};\n","import { useTranslation } from \"react-i18next\";\n\nimport { NotAuthorized } from \"../../../ui/error\";\nimport { useUser } from \"../../../User\";\nimport { Breadcrumbs } from \"../../../ui/Breadcrumbs\";\nimport { PageTitle } from \"../../../layout/header/ui\";\nimport { AuthorizedEvent, makeManageVideoRoute, PAGE_WIDTH } from \"./Shared\";\nimport { CopyableInput } from \"../../../ui/Input\";\nimport { COLORS } from \"../../../color\";\nimport { ManageRoute } from \"..\";\nimport { ManageVideosRoute } from \".\";\nimport { ManageVideoDetailsRoute } from \"./Details\";\n\n\nexport const ManageVideoTechnicalDetailsRoute = makeManageVideoRoute(\n    \"technical-details\",\n    \"/technical-details\",\n    event => <Page event={event} />,\n);\n\ntype Props = {\n    event: AuthorizedEvent;\n};\n\ntype TrackInfoProps = {\n    event: {\n        syncedData?: null | {\n            tracks: NonNullable<AuthorizedEvent[\"syncedData\"]>[\"tracks\"];\n        };\n    };\n    className?: string;\n    translateFlavors?: boolean;\n};\n\nconst Page: React.FC<Props> = ({ event }) => {\n    const { t } = useTranslation();\n\n    const breadcrumbs = [\n        { label: t(\"user.manage-content\"), link: ManageRoute.url },\n        { label: t(\"manage.my-videos.title\"), link: ManageVideosRoute.url },\n        { label: event.title, link: ManageVideoDetailsRoute.url({ videoId: event.id }) },\n    ];\n\n    const user = useUser();\n    if (user === \"none\" || user === \"unknown\") {\n        return <NotAuthorized />;\n    }\n\n    return <>\n        <Breadcrumbs path={breadcrumbs} tail={t(\"manage.my-videos.technical-details.title\")} />\n        <PageTitle title={t(\"manage.my-videos.technical-details.title\")} />\n        <div css={{\n            maxWidth: PAGE_WIDTH,\n            \"& > section:not(:last-child)\": {\n                marginBottom: 32,\n            },\n            \"& > section > h2\": {\n                fontSize: 18,\n                marginBottom: 4,\n            },\n        }}>\n            <OpencastId event={event} />\n            <TrackInfo event={event} />\n            <FurtherInfo event={event} />\n        </div>\n    </>;\n};\n\nconst OpencastId: React.FC<Props> = ({ event }) => {\n    const { t } = useTranslation();\n\n    return <section>\n        <h2>{t(\"manage.my-videos.technical-details.opencast-id\")}</h2>\n        <CopyableInput\n            label={t(\"manage.my-videos.technical-details.copy-oc-id-to-clipboard\")}\n            value={event.opencastId}\n            css={{ width: 400, fontSize: 14 }}\n        />\n    </section>;\n};\n\ntype SingleTrackInfo = {\n    resolution?: readonly number[] | null;\n    mimetype?: string | null;\n    uri: string;\n};\n\nexport const TrackInfo: React.FC<TrackInfoProps> = (\n    { event, className, translateFlavors = false },\n) => {\n    const { t } = useTranslation();\n\n    if (event.syncedData == null) {\n        return null;\n    }\n\n\n    const flavorTranslation = (flavor: string) => {\n        if (flavor.startsWith(\"presenter\")) {\n            return t(\"video.download.presenter\");\n        }\n        if (flavor.startsWith(\"presentation\")) {\n            return t(\"video.download.slides\");\n        }\n        return flavor;\n    };\n\n    const flavors: Map<string, SingleTrackInfo[]> = new Map();\n    for (const { flavor, resolution, mimetype, uri } of event.syncedData.tracks) {\n        let tracks = flavors.get(flavor);\n        if (tracks === undefined) {\n            tracks = [];\n            flavors.set(flavor, tracks);\n        }\n\n        tracks.push({ resolution, mimetype, uri });\n    }\n\n    const isSingleFlavor = flavors.size === 1;\n\n    return <section css={className}>\n        <h2>{t(\"manage.my-videos.technical-details.tracks\")}</h2>\n        <ul css={{ fontSize: 15, marginTop: 8, paddingLeft: 24 }}>\n            {Array.from(flavors, ([flavor, tracks]) => {\n                const trackItems = tracks\n                    .sort((a, b) => (a.resolution?.[0] ?? 0) - (b.resolution?.[0] ?? 0))\n                    .map((track, i) => <TrackItem key={i} {...track} />);\n                const flavorLabel = translateFlavors\n                    ? flavorTranslation(flavor)\n                    : <code>{flavor}</code>;\n                const flat = isSingleFlavor && translateFlavors;\n\n                return <li key={flavor}>\n                    {flat ? trackItems : <>{flavorLabel}<ul>{trackItems}</ul></>}\n                </li>;\n            })}\n        </ul>\n    </section>;\n};\n\n\nconst TrackItem: React.FC<SingleTrackInfo> = ({ mimetype, resolution, uri }) => {\n    const { t } = useTranslation();\n    const type = mimetype && mimetype.split(\"/\")[0];\n    const subtype = mimetype && mimetype.split(\"/\")[1];\n    const typeTranslation = (type === \"audio\" || type === \"video\")\n        ? t(`manage.my-videos.technical-details.${type}`)\n        : type;\n\n    const resolutionString = (type && \" \")\n        + \"(\"\n        + [subtype, resolution?.join(\" × \")].filter(Boolean).join(\", \")\n        + \")\";\n\n    return (\n        <li css={{ marginBottom: 4 }}>\n            <a href={uri}>\n                {type\n                    ? <>{typeTranslation}</>\n                    : <i>{t(\"manage.my-videos.technical-details.unknown-mimetype\")}</i>\n                }\n                {(resolution || subtype) && resolutionString}\n            </a>\n        </li>\n    );\n};\n\nconst FurtherInfo: React.FC<Props> = ({ event }) => {\n    const { t, i18n } = useTranslation();\n\n    const boolToYesNo = (v: boolean) => v ? t(\"general.yes\") : t(\"general.no\");\n    const printDate = (date?: string | null): string => {\n        if (date == null) {\n            return \"-\";\n        }\n\n        return new Date(date).toLocaleString(i18n.language, {\n            dateStyle: \"medium\",\n            timeStyle: \"medium\",\n        });\n    };\n\n    return <section>\n        <h2>{t(\"manage.my-videos.technical-details.further-info\")}</h2>\n        <ul>\n            <SingleInfo label={t(\"manage.my-videos.technical-details.synced\")}>\n                {boolToYesNo(event.syncedData !== null)}\n            </SingleInfo>\n            <SingleInfo label={t(\"manage.my-videos.technical-details.part-of\")}>\n                <code css={{ fontSize: 15 }}>{event.series?.opencastId ?? \"null\"}</code>\n            </SingleInfo>\n            <SingleInfo label={t(\"manage.my-videos.technical-details.is-live\")}>\n                {boolToYesNo(event.isLive)}\n            </SingleInfo>\n            {event.syncedData && <>\n                <SingleInfo label={t(\"video.start\") + \":\"}>\n                    {printDate(event.syncedData.startTime)}\n                </SingleInfo>\n                <SingleInfo label={t(\"video.end\") + \":\"}>\n                    {printDate(event.syncedData.endTime)}\n                </SingleInfo>\n            </>}\n        </ul>\n    </section>;\n};\n\nconst SingleInfo: React.FC<React.PropsWithChildren<{ label: string }>> = ({ label, children }) => (\n    <li>\n        <span css={{ color: COLORS.neutral60, marginRight: 16 }}>{label}</span>\n        {children}\n    </li>\n);\n\n\n","/**\n * @generated SignedSource<<234a7181f7a48625b6b271d2ba583b72>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nexport type DetailsDeleteVideoMutation$variables = {\n  id: string;\n};\nexport type DetailsDeleteVideoMutation$data = {\n  readonly deleteVideo: {\n    readonly id: string;\n  };\n};\nexport type DetailsDeleteVideoMutation = {\n  response: DetailsDeleteVideoMutation$data;\n  variables: DetailsDeleteVideoMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"id\"\n  }\n],\nv1 = [\n  {\n    \"alias\": null,\n    \"args\": [\n      {\n        \"kind\": \"Variable\",\n        \"name\": \"id\",\n        \"variableName\": \"id\"\n      }\n    ],\n    \"concreteType\": \"RemovedEvent\",\n    \"kind\": \"LinkedField\",\n    \"name\": \"deleteVideo\",\n    \"plural\": false,\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"kind\": \"ScalarField\",\n        \"name\": \"id\",\n        \"storageKey\": null\n      }\n    ],\n    \"storageKey\": null\n  }\n];\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"DetailsDeleteVideoMutation\",\n    \"selections\": (v1/*: any*/),\n    \"type\": \"Mutation\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"DetailsDeleteVideoMutation\",\n    \"selections\": (v1/*: any*/)\n  },\n  \"params\": {\n    \"cacheID\": \"046972d8fe85e9cddc5198413e9fb999\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"DetailsDeleteVideoMutation\",\n    \"operationKind\": \"mutation\",\n    \"text\": \"mutation DetailsDeleteVideoMutation(\\n  $id: ID!\\n) {\\n  deleteVideo(id: $id) {\\n    id\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"fb44492d65c743f7c4d6f620c8141b18\";\n\nexport default node;\n","/**\n * @generated SignedSource<<7c13b9577a692108800ba11491adfd0f>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type SharedVideoManageQuery$variables = {\n  id: string;\n};\nexport type SharedVideoManageQuery$data = {\n  readonly event: {\n    readonly __typename: \"AuthorizedEvent\";\n    readonly acl: ReadonlyArray<{\n      readonly actions: ReadonlyArray<string>;\n      readonly info: {\n        readonly implies: ReadonlyArray<string> | null | undefined;\n        readonly label: Record<string, string>;\n        readonly large: boolean;\n      } | null | undefined;\n      readonly role: string;\n    }>;\n    readonly canWrite: boolean;\n    readonly created: string;\n    readonly description: string | null | undefined;\n    readonly hostRealms: ReadonlyArray<{\n      readonly id: string;\n      readonly isMainRoot: boolean;\n      readonly name: string | null | undefined;\n      readonly path: string;\n    }>;\n    readonly id: string;\n    readonly isLive: boolean;\n    readonly opencastId: string;\n    readonly series: {\n      readonly opencastId: string;\n      readonly title: string;\n      readonly \" $fragmentSpreads\": FragmentRefs<\"SeriesBlockSeriesData\">;\n    } | null | undefined;\n    readonly syncedData: {\n      readonly duration: number;\n      readonly endTime: string | null | undefined;\n      readonly startTime: string | null | undefined;\n      readonly thumbnail: string | null | undefined;\n      readonly tracks: ReadonlyArray<{\n        readonly flavor: string;\n        readonly mimetype: string | null | undefined;\n        readonly resolution: ReadonlyArray<number> | null | undefined;\n        readonly uri: string;\n      }>;\n      readonly updated: string;\n    } | null | undefined;\n    readonly title: string;\n  } | {\n    // This will never be '%other', but we need some\n    // value in case none of the concrete values match.\n    readonly __typename: \"%other\";\n  } | null | undefined;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"AccessKnownRolesData\" | \"UserData\">;\n};\nexport type SharedVideoManageQuery = {\n  response: SharedVideoManageQuery$data;\n  variables: SharedVideoManageQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"id\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"id\",\n    \"variableName\": \"id\"\n  }\n],\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv3 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv4 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n},\nv6 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"opencastId\",\n  \"storageKey\": null\n},\nv7 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"created\",\n  \"storageKey\": null\n},\nv8 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"canWrite\",\n  \"storageKey\": null\n},\nv9 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"isLive\",\n  \"storageKey\": null\n},\nv10 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"role\",\n  \"storageKey\": null\n},\nv11 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"label\",\n  \"storageKey\": null\n},\nv12 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"implies\",\n  \"storageKey\": null\n},\nv13 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"large\",\n  \"storageKey\": null\n},\nv14 = {\n  \"alias\": null,\n  \"args\": null,\n  \"concreteType\": \"AclItem\",\n  \"kind\": \"LinkedField\",\n  \"name\": \"acl\",\n  \"plural\": true,\n  \"selections\": [\n    (v10/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"actions\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"RoleInfo\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"info\",\n      \"plural\": false,\n      \"selections\": [\n        (v11/*: any*/),\n        (v12/*: any*/),\n        (v13/*: any*/)\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"storageKey\": null\n},\nv15 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"duration\",\n  \"storageKey\": null\n},\nv16 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"thumbnail\",\n  \"storageKey\": null\n},\nv17 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"startTime\",\n  \"storageKey\": null\n},\nv18 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"endTime\",\n  \"storageKey\": null\n},\nv19 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"resolution\",\n  \"storageKey\": null\n},\nv20 = {\n  \"alias\": null,\n  \"args\": null,\n  \"concreteType\": \"SyncedEventData\",\n  \"kind\": \"LinkedField\",\n  \"name\": \"syncedData\",\n  \"plural\": false,\n  \"selections\": [\n    (v15/*: any*/),\n    (v16/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"updated\",\n      \"storageKey\": null\n    },\n    (v17/*: any*/),\n    (v18/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Track\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"tracks\",\n      \"plural\": true,\n      \"selections\": [\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"flavor\",\n          \"storageKey\": null\n        },\n        (v19/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"mimetype\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"uri\",\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"storageKey\": null\n},\nv21 = {\n  \"alias\": null,\n  \"args\": null,\n  \"concreteType\": \"Realm\",\n  \"kind\": \"LinkedField\",\n  \"name\": \"hostRealms\",\n  \"plural\": true,\n  \"selections\": [\n    (v3/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"isMainRoot\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"name\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"path\",\n      \"storageKey\": null\n    }\n  ],\n  \"storageKey\": null\n},\nv22 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    (v3/*: any*/)\n  ],\n  \"type\": \"Node\",\n  \"abstractKey\": \"__isNode\"\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"SharedVideoManageQuery\",\n    \"selections\": [\n      {\n        \"args\": null,\n        \"kind\": \"FragmentSpread\",\n        \"name\": \"UserData\"\n      },\n      {\n        \"args\": null,\n        \"kind\": \"FragmentSpread\",\n        \"name\": \"AccessKnownRolesData\"\n      },\n      {\n        \"alias\": \"event\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"eventById\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/),\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              (v3/*: any*/),\n              (v4/*: any*/),\n              (v5/*: any*/),\n              (v6/*: any*/),\n              (v7/*: any*/),\n              (v8/*: any*/),\n              (v9/*: any*/),\n              (v14/*: any*/),\n              (v20/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": \"Series\",\n                \"kind\": \"LinkedField\",\n                \"name\": \"series\",\n                \"plural\": false,\n                \"selections\": [\n                  (v4/*: any*/),\n                  (v6/*: any*/),\n                  {\n                    \"args\": null,\n                    \"kind\": \"FragmentSpread\",\n                    \"name\": \"SeriesBlockSeriesData\"\n                  }\n                ],\n                \"storageKey\": null\n              },\n              (v21/*: any*/)\n            ],\n            \"type\": \"AuthorizedEvent\",\n            \"abstractKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"SharedVideoManageQuery\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"User\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"currentUser\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"username\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"displayName\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUpload\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseStudio\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseEditor\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canCreateUserRealm\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canFindUnlisted\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"roles\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"userRole\",\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"KnownGroup\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"knownGroups\",\n        \"plural\": true,\n        \"selections\": [\n          (v10/*: any*/),\n          (v11/*: any*/),\n          (v12/*: any*/),\n          (v13/*: any*/)\n        ],\n        \"storageKey\": null\n      },\n      {\n        \"alias\": \"event\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"eventById\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/),\n          {\n            \"kind\": \"InlineFragment\",\n            \"selections\": [\n              (v3/*: any*/),\n              (v4/*: any*/),\n              (v5/*: any*/),\n              (v6/*: any*/),\n              (v7/*: any*/),\n              (v8/*: any*/),\n              (v9/*: any*/),\n              (v14/*: any*/),\n              (v20/*: any*/),\n              {\n                \"alias\": null,\n                \"args\": null,\n                \"concreteType\": \"Series\",\n                \"kind\": \"LinkedField\",\n                \"name\": \"series\",\n                \"plural\": false,\n                \"selections\": [\n                  (v4/*: any*/),\n                  (v6/*: any*/),\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": \"SyncedSeriesData\",\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"syncedData\",\n                    \"plural\": false,\n                    \"selections\": [\n                      (v5/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  {\n                    \"alias\": null,\n                    \"args\": null,\n                    \"concreteType\": null,\n                    \"kind\": \"LinkedField\",\n                    \"name\": \"entries\",\n                    \"plural\": true,\n                    \"selections\": [\n                      (v2/*: any*/),\n                      {\n                        \"kind\": \"InlineFragment\",\n                        \"selections\": [\n                          (v3/*: any*/),\n                          (v4/*: any*/),\n                          (v7/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"kind\": \"ScalarField\",\n                            \"name\": \"creators\",\n                            \"storageKey\": null\n                          },\n                          (v9/*: any*/),\n                          (v5/*: any*/),\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"Series\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"series\",\n                            \"plural\": false,\n                            \"selections\": [\n                              (v4/*: any*/),\n                              (v3/*: any*/)\n                            ],\n                            \"storageKey\": null\n                          },\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"concreteType\": \"SyncedEventData\",\n                            \"kind\": \"LinkedField\",\n                            \"name\": \"syncedData\",\n                            \"plural\": false,\n                            \"selections\": [\n                              (v15/*: any*/),\n                              (v16/*: any*/),\n                              (v17/*: any*/),\n                              (v18/*: any*/),\n                              {\n                                \"alias\": null,\n                                \"args\": null,\n                                \"concreteType\": \"Track\",\n                                \"kind\": \"LinkedField\",\n                                \"name\": \"tracks\",\n                                \"plural\": true,\n                                \"selections\": [\n                                  (v19/*: any*/)\n                                ],\n                                \"storageKey\": null\n                              }\n                            ],\n                            \"storageKey\": null\n                          }\n                        ],\n                        \"type\": \"AuthorizedEvent\",\n                        \"abstractKey\": null\n                      },\n                      {\n                        \"kind\": \"InlineFragment\",\n                        \"selections\": [\n                          {\n                            \"alias\": null,\n                            \"args\": null,\n                            \"kind\": \"ScalarField\",\n                            \"name\": \"dummy\",\n                            \"storageKey\": null\n                          }\n                        ],\n                        \"type\": \"NotAllowed\",\n                        \"abstractKey\": null\n                      },\n                      (v22/*: any*/)\n                    ],\n                    \"storageKey\": null\n                  },\n                  (v3/*: any*/)\n                ],\n                \"storageKey\": null\n              },\n              (v21/*: any*/)\n            ],\n            \"type\": \"AuthorizedEvent\",\n            \"abstractKey\": null\n          },\n          (v22/*: any*/)\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"4c3245a138eace05da8d27d091fc31a0\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"SharedVideoManageQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query SharedVideoManageQuery(\\n  $id: ID!\\n) {\\n  ...UserData\\n  ...AccessKnownRolesData\\n  event: eventById(id: $id) {\\n    __typename\\n    ... on AuthorizedEvent {\\n      id\\n      title\\n      description\\n      opencastId\\n      created\\n      canWrite\\n      isLive\\n      acl {\\n        role\\n        actions\\n        info {\\n          label\\n          implies\\n          large\\n        }\\n      }\\n      syncedData {\\n        duration\\n        thumbnail\\n        updated\\n        startTime\\n        endTime\\n        tracks {\\n          flavor\\n          resolution\\n          mimetype\\n          uri\\n        }\\n      }\\n      series {\\n        title\\n        opencastId\\n        ...SeriesBlockSeriesData\\n        id\\n      }\\n      hostRealms {\\n        id\\n        isMainRoot\\n        name\\n        path\\n      }\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n}\\n\\nfragment AccessKnownRolesData on Query {\\n  knownGroups {\\n    role\\n    label\\n    implies\\n    large\\n  }\\n}\\n\\nfragment SeriesBlockSeriesData on Series {\\n  title\\n  syncedData {\\n    description\\n  }\\n  entries {\\n    __typename\\n    ... on AuthorizedEvent {\\n      id\\n      ...VideoListEventData\\n    }\\n    ... on NotAllowed {\\n      dummy\\n    }\\n    ... on Node {\\n      __isNode: __typename\\n      id\\n    }\\n  }\\n}\\n\\nfragment UserData on Query {\\n  currentUser {\\n    username\\n    displayName\\n    canUpload\\n    canUseStudio\\n    canUseEditor\\n    canCreateUserRealm\\n    canFindUnlisted\\n    roles\\n    userRole\\n  }\\n}\\n\\nfragment VideoListEventData on AuthorizedEvent {\\n  id\\n  title\\n  created\\n  creators\\n  isLive\\n  description\\n  series {\\n    title\\n    id\\n  }\\n  syncedData {\\n    duration\\n    thumbnail\\n    startTime\\n    endTime\\n    tracks {\\n      resolution\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"b30404e492542235d02d34e836b4978f\";\n\nexport default node;\n","/**\n * @generated SignedSource<<53c3e9749d96c204f32089e07928df27>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type EventSortColumn = \"CREATED\" | \"TITLE\" | \"UPDATED\" | \"%future added value\";\nexport type SortDirection = \"ASCENDING\" | \"DESCENDING\" | \"%future added value\";\nexport type EventSortOrder = {\n  column: EventSortColumn;\n  direction: SortDirection;\n};\nexport type VideoManageQuery$variables = {\n  after?: string | null | undefined;\n  before?: string | null | undefined;\n  first?: number | null | undefined;\n  last?: number | null | undefined;\n  order: EventSortOrder;\n};\nexport type VideoManageQuery$data = {\n  readonly currentUser: {\n    readonly myVideos: {\n      readonly items: ReadonlyArray<{\n        readonly created: string;\n        readonly description: string | null | undefined;\n        readonly id: string;\n        readonly isLive: boolean;\n        readonly syncedData: {\n          readonly duration: number;\n          readonly endTime: string | null | undefined;\n          readonly startTime: string | null | undefined;\n          readonly thumbnail: string | null | undefined;\n          readonly tracks: ReadonlyArray<{\n            readonly resolution: ReadonlyArray<number> | null | undefined;\n          }>;\n          readonly updated: string;\n        } | null | undefined;\n        readonly title: string;\n        readonly tobiraDeletionTimestamp: string | null | undefined;\n      }>;\n      readonly pageInfo: {\n        readonly endCursor: string | null | undefined;\n        readonly endIndex: number | null | undefined;\n        readonly hasNextPage: boolean;\n        readonly hasPreviousPage: boolean;\n        readonly startCursor: string | null | undefined;\n        readonly startIndex: number | null | undefined;\n      };\n      readonly totalCount: number;\n    };\n  } | null | undefined;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"UserData\">;\n};\nexport type VideoManageQuery = {\n  response: VideoManageQuery$data;\n  variables: VideoManageQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"after\"\n},\nv1 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"before\"\n},\nv2 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"first\"\n},\nv3 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"last\"\n},\nv4 = {\n  \"defaultValue\": null,\n  \"kind\": \"LocalArgument\",\n  \"name\": \"order\"\n},\nv5 = {\n  \"alias\": null,\n  \"args\": [\n    {\n      \"kind\": \"Variable\",\n      \"name\": \"after\",\n      \"variableName\": \"after\"\n    },\n    {\n      \"kind\": \"Variable\",\n      \"name\": \"before\",\n      \"variableName\": \"before\"\n    },\n    {\n      \"kind\": \"Variable\",\n      \"name\": \"first\",\n      \"variableName\": \"first\"\n    },\n    {\n      \"kind\": \"Variable\",\n      \"name\": \"last\",\n      \"variableName\": \"last\"\n    },\n    {\n      \"kind\": \"Variable\",\n      \"name\": \"order\",\n      \"variableName\": \"order\"\n    }\n  ],\n  \"concreteType\": \"EventConnection\",\n  \"kind\": \"LinkedField\",\n  \"name\": \"myVideos\",\n  \"plural\": false,\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"totalCount\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"EventPageInfo\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"pageInfo\",\n      \"plural\": false,\n      \"selections\": [\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"hasNextPage\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"hasPreviousPage\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"startCursor\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"endCursor\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"startIndex\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"endIndex\",\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"AuthorizedEvent\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"items\",\n      \"plural\": true,\n      \"selections\": [\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"id\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"title\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"created\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"description\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"isLive\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"tobiraDeletionTimestamp\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": \"SyncedEventData\",\n          \"kind\": \"LinkedField\",\n          \"name\": \"syncedData\",\n          \"plural\": false,\n          \"selections\": [\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"duration\",\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"thumbnail\",\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"updated\",\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"startTime\",\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"endTime\",\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"concreteType\": \"Track\",\n              \"kind\": \"LinkedField\",\n              \"name\": \"tracks\",\n              \"plural\": true,\n              \"selections\": [\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"kind\": \"ScalarField\",\n                  \"name\": \"resolution\",\n                  \"storageKey\": null\n                }\n              ],\n              \"storageKey\": null\n            }\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"storageKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": [\n      (v0/*: any*/),\n      (v1/*: any*/),\n      (v2/*: any*/),\n      (v3/*: any*/),\n      (v4/*: any*/)\n    ],\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"VideoManageQuery\",\n    \"selections\": [\n      {\n        \"args\": null,\n        \"kind\": \"FragmentSpread\",\n        \"name\": \"UserData\"\n      },\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"User\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"currentUser\",\n        \"plural\": false,\n        \"selections\": [\n          (v5/*: any*/)\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": [\n      (v4/*: any*/),\n      (v0/*: any*/),\n      (v1/*: any*/),\n      (v2/*: any*/),\n      (v3/*: any*/)\n    ],\n    \"kind\": \"Operation\",\n    \"name\": \"VideoManageQuery\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"User\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"currentUser\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"username\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"displayName\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUpload\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseStudio\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseEditor\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canCreateUserRealm\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canFindUnlisted\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"roles\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"userRole\",\n            \"storageKey\": null\n          },\n          (v5/*: any*/)\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"0a3738986907495ddb3ffaf116ffb864\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"VideoManageQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query VideoManageQuery(\\n  $order: EventSortOrder!\\n  $after: Cursor\\n  $before: Cursor\\n  $first: Int\\n  $last: Int\\n) {\\n  ...UserData\\n  currentUser {\\n    myVideos(order: $order, after: $after, before: $before, first: $first, last: $last) {\\n      totalCount\\n      pageInfo {\\n        hasNextPage\\n        hasPreviousPage\\n        startCursor\\n        endCursor\\n        startIndex\\n        endIndex\\n      }\\n      items {\\n        id\\n        title\\n        created\\n        description\\n        isLive\\n        tobiraDeletionTimestamp\\n        syncedData {\\n          duration\\n          thumbnail\\n          updated\\n          startTime\\n          endTime\\n          tracks {\\n            resolution\\n          }\\n        }\\n      }\\n    }\\n  }\\n}\\n\\nfragment UserData on Query {\\n  currentUser {\\n    username\\n    displayName\\n    canUpload\\n    canUseStudio\\n    canUseEditor\\n    canCreateUserRealm\\n    canFindUnlisted\\n    roles\\n    userRole\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"2e61eb861fabdd2b4781328bfbb07e6a\";\n\nexport default node;\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgFirstPage = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"1em\",\n  height: \"1em\",\n  fill: \"none\",\n  stroke: \"currentColor\",\n  strokeLinecap: \"round\",\n  strokeLinejoin: \"round\",\n  strokeWidth: 2,\n  className: \"first-page_svg__feather first-page_svg__feather-chevron-right\",\n  viewBox: \"0 0 24 24\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"m17 18-6-6 6-6M7 18V6\"\n})));\nexport default SvgFirstPage;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgLastPage = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"1em\",\n  height: \"1em\",\n  fill: \"none\",\n  stroke: \"currentColor\",\n  strokeLinecap: \"round\",\n  strokeLinejoin: \"round\",\n  strokeWidth: 2,\n  className: \"last-page_svg__feather last-page_svg__feather-chevron-right\",\n  viewBox: \"0 0 24 24\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"m7 18 6-6-6-6M17 18V6\"\n})));\nexport default SvgLastPage;","import { ReactNode, useEffect, useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n    LuArrowDownNarrowWide, LuArrowUpWideNarrow, LuChevronLeft, LuChevronRight,\n} from \"react-icons/lu\";\nimport { graphql, VariablesOf } from \"react-relay\";\nimport { match, useColorScheme, Card } from \"@opencast/appkit\";\n\nimport { ManageNav, ManageRoute } from \"..\";\nimport { RootLoader } from \"../../../layout/Root\";\nimport {\n    EventSortColumn,\n    SortDirection,\n    VideoManageQuery,\n    VideoManageQuery$data,\n} from \"./__generated__/VideoManageQuery.graphql\";\nimport { makeRoute } from \"../../../rauta\";\nimport { loadQuery } from \"../../../relay\";\nimport { Link } from \"../../../router\";\nimport { NotAuthorized } from \"../../../ui/error\";\nimport { Thumbnail } from \"../../../ui/Video\";\nimport { keyOfId } from \"../../../util\";\nimport FirstPage from \"../../../icons/first-page.svg\";\nimport LastPage from \"../../../icons/last-page.svg\";\nimport { SmallDescription } from \"../../../ui/metadata\";\nimport { Breadcrumbs } from \"../../../ui/Breadcrumbs\";\nimport { PageTitle } from \"../../../layout/header/ui\";\nimport { COLORS } from \"../../../color\";\nimport { InfoWithTooltip } from \"../../../ui\";\nimport { relativeDate } from \"../../../ui/time\";\nimport CONFIG from \"../../../config\";\n\n\nconst PATH = \"/~manage/videos\" as const;\n\nexport const ManageVideosRoute = makeRoute({\n    url: PATH,\n    match: url => {\n        if (url.pathname !== PATH) {\n            return null;\n        }\n\n        const vars = queryParamsToVars(url.searchParams);\n        const queryRef = loadQuery<VideoManageQuery>(query, vars);\n\n        return {\n            render: () => <RootLoader\n                {...{ query, queryRef }}\n                noindex\n                nav={() => <ManageNav active={PATH} />}\n                render={data => !data.currentUser\n                    ? <NotAuthorized />\n                    : <ManageVideos vars={vars} connection={data.currentUser.myVideos} />\n                }\n            />,\n            dispose: () => queryRef.dispose(),\n        };\n    },\n});\n\nconst query = graphql`\n    query VideoManageQuery(\n        $order: EventSortOrder!,\n        $after: Cursor,\n        $before: Cursor,\n        $first: Int,\n        $last: Int,\n    ) {\n        ...UserData\n        currentUser {\n            myVideos(order: $order, after: $after, before: $before, first: $first, last: $last) {\n                totalCount\n                pageInfo {\n                    hasNextPage hasPreviousPage\n                    startCursor endCursor\n                    startIndex endIndex\n                }\n                items {\n                    id title created description isLive tobiraDeletionTimestamp\n                    syncedData {\n                        duration thumbnail updated startTime endTime\n                        tracks { resolution }\n                    }\n                }\n            }\n        }\n    }\n`;\n\ntype EventConnection = NonNullable<VideoManageQuery$data[\"currentUser\"]>[\"myVideos\"];\ntype Events = EventConnection[\"items\"];\n\ntype Props = {\n    connection: EventConnection;\n    vars: VariablesOf<VideoManageQuery>;\n};\n\nconst LIMIT = 15;\n\n/** Main part of this page */\nconst ManageVideos: React.FC<Props> = ({ connection, vars }) => {\n    const { t } = useTranslation();\n\n    let inner;\n    if (connection.items.length === 0 && connection.totalCount === 0) {\n        inner = <Card kind=\"info\">{t(\"manage.my-videos.no-videos-found\")}</Card>;\n    } else {\n        inner = <>\n            <PageNavigation {...{ vars, connection }} />\n            <div css={{ flex: \"1 0 0\", margin: \"16px 0\" }}>\n                <EventTable events={connection.items} vars={vars} />\n            </div>\n            <PageNavigation {...{ vars, connection }} />\n        </>;\n    }\n\n    const title = t(\"manage.my-videos.title\");\n\n    return (\n        <div css={{\n            display: \"flex\",\n            flexDirection: \"column\",\n            height: \"100%\",\n        }}>\n            <Breadcrumbs\n                path={[{ label: t(\"user.manage-content\"), link: ManageRoute.url }]}\n                tail={title}\n            />\n            <PageTitle title={title} css={{ marginBottom: 32 }}/>\n            {inner}\n        </div>\n    );\n};\n\nconst THUMBNAIL_WIDTH = 16 * 8;\n\ntype EventTableProps = {\n    events: Events;\n    vars: VariablesOf<VideoManageQuery>;\n};\n\nconst EventTable: React.FC<EventTableProps> = ({ events, vars }) => {\n    const { t } = useTranslation();\n\n    // We need to know whether the table header is in its \"sticky\" position to apply a box\n    // shadow to indicate that the user can still scroll up. This solution uses intersection\n    // observer. Compare: https://stackoverflow.com/a/57991537/2408867\n    const [headerSticks, setHeaderSticks] = useState(false);\n    const tableHeaderRef = useRef<HTMLTableSectionElement>(null);\n    useEffect(() => {\n        const tableHeader = tableHeaderRef.current;\n        if (tableHeader) {\n            const observer = new IntersectionObserver(\n                ([e]) => setHeaderSticks(!e.isIntersecting),\n                { threshold: [1], rootMargin: \"-1px 0px 0px 0px\" },\n            );\n\n            observer.observe(tableHeader);\n            return () => observer.unobserve(tableHeader);\n        }\n        return () => {};\n    });\n\n    return <div css={{ position: \"relative\" }}>\n        <table css={{\n            width: \"100%\",\n            borderSpacing: 0,\n            tableLayout: \"fixed\",\n            \"& > thead\": {\n                position: \"sticky\",\n                top: 0,\n                zIndex: 10,\n                backgroundColor: COLORS.neutral05,\n                \"&  > tr > th\": {\n                    borderBottom: `1px solid ${COLORS.neutral25}`,\n                    textAlign: \"left\",\n                    padding: \"8px 12px\",\n                },\n                ...headerSticks && {\n                    boxShadow: \"0 0 20px rgba(0, 0, 0, 0.3)\",\n                    clipPath: \"inset(0px 0px -20px 0px)\",\n                },\n            },\n            \"& > tbody\": {\n                \"& > tr:hover, tr:focus-within\": {\n                    backgroundColor: COLORS.neutral15,\n                },\n                \"& > tr:not(:first-child) > td\": {\n                    borderTop: `1px solid ${COLORS.neutral25}`,\n                },\n                \"& td\": {\n                    padding: 6,\n                    verticalAlign: \"top\",\n                    \"&:not(:first-child)\": {\n                        padding: \"8px 12px 8px 8px\",\n                    },\n                },\n            },\n        }}>\n            <colgroup>\n                <col span={1} css={{ width: THUMBNAIL_WIDTH + 2 * 6 }} />\n                <col span={1} />\n                <col span={1} css={{ width: 135 }} />\n            </colgroup>\n\n            <thead ref={tableHeaderRef}>\n                <tr>\n                    <th></th>\n                    <ColumnHeader\n                        label={t(\"manage.my-videos.columns.title\")}\n                        sortKey=\"TITLE\"\n                        {...{ vars }}\n                    />\n                    <ColumnHeader\n                        label={t(\"manage.my-videos.columns.created\")}\n                        sortKey=\"CREATED\"\n                        {...{ vars }}\n                    />\n                </tr>\n            </thead>\n            <tbody>\n                {events.map(event => <Row key={event.id} event={event} />)}\n            </tbody>\n        </table>\n    </div>;\n};\n\ntype ColumnHeaderProps = {\n    label: string;\n    sortKey: EventSortColumn;\n    vars: VariablesOf<VideoManageQuery>;\n};\n\nconst ColumnHeader: React.FC<ColumnHeaderProps> = ({ label, sortKey, vars }) => {\n    const { t } = useTranslation();\n    const direction = vars.order.column === sortKey && vars.order.direction === \"ASCENDING\"\n        ? \"DESCENDING\"\n        : \"ASCENDING\";\n    const directionTransKey = direction.toLowerCase() as Lowercase<typeof direction>;\n\n    return <th>\n        <Link\n            aria-label={t(\"manage.my-videos.columns.description\",\n                { title: label, direction: t(`manage.my-videos.columns.${directionTransKey}`) })\n            }\n            to={varsToLink({\n                order: {\n                    column: sortKey,\n                    direction,\n                },\n            })}\n            css={{\n                display: \"inline-flex\",\n                alignItems: \"center\",\n                cursor: \"pointer\",\n                transition: \"color 70ms\",\n                textDecoration: \"none\",\n                borderRadius: 4,\n                outlineOffset: 1,\n                \"& > svg\": {\n                    marginLeft: 6,\n                    fontSize: 22,\n                },\n            }}\n        >\n            {label}\n            {vars.order.column === sortKey && match(vars.order.direction, {\n                // Seems like this is flipped right? But no, a short internal\n                // poll showed that this matches the intuition of almost everyone.\n                \"ASCENDING\": () => <LuArrowDownNarrowWide />,\n                \"DESCENDING\": () => <LuArrowUpWideNarrow />,\n            }, () => null)}\n        </Link>\n    </th>;\n};\n\nconst Row: React.FC<{ event: Events[number] }> = ({ event }) => {\n    const isDark = useColorScheme().scheme === \"dark\";\n    const created = new Date(event.created);\n    const link = `${PATH}/${keyOfId(event.id)}`;\n    const { t, i18n } = useTranslation();\n\n    const deletionIsPending = Boolean(event.tobiraDeletionTimestamp);\n    const deletionDate = new Date(event.tobiraDeletionTimestamp ?? \"\");\n\n    // This checks if the current time is later than the deletion timestamp + twice\n    // the configured poll period to ensure at least one sync has taken place\n    // (+ 1min to allow some time for the Opencast delete job).\n    // If it is, the deletion in Opencast has possibly failed.\n    const pollPeriod = CONFIG.sync.pollPeriod * 1000;\n    const deletionFailed = Boolean(event.tobiraDeletionTimestamp\n        && Date.parse(event.tobiraDeletionTimestamp) + pollPeriod * 2 + 60000 < Date.now());\n\n    return (\n        <tr>\n            <td>\n                {deletionIsPending\n                    ? <Thumbnail {...{ event, deletionIsPending }} />\n                    : <Link to={link} css={{\n                        \":focus-visible\": { outline: \"none\" },\n                        \":focus-within div:first-child\": {\n                            outline: `2.5px solid ${COLORS.focus}`,\n                            outlineOffset: 1,\n                        },\n                    }}>\n                        <Thumbnail {...{ event }} />\n                    </Link>\n                }\n            </td>\n            <td>\n                <div css={{\n                    display: \"flex\",\n                    alignItems: \"baseline\",\n                    gap: 8,\n                }}>\n                    <div css={{\n                        whiteSpace: \"nowrap\",\n                        textOverflow: \"ellipsis\",\n                        overflow: \"hidden\",\n                        padding: \"0 4px\",\n                        \":focus-within\": {\n                            borderRadius: 4,\n                            outline: `2.5px solid ${COLORS.focus}`,\n                        },\n                    }}>\n                        {deletionIsPending\n                            ? <span css={{ color: COLORS.neutral60 }}>\n                                {event.title}\n                            </span>\n                            : <Link\n                                to={link}\n                                css={{\n                                    \":focus, :focus-visible\": {\n                                        outline: \"none\",\n                                    },\n                                    textDecoration: \"none\",\n                                }}\n                            >{event.title}</Link>\n                        }\n                    </div>\n                    {!event.syncedData && <span css={{\n                        padding: \"0 8px\",\n                        fontSize: \"small\",\n                        borderRadius: 10,\n                        backgroundColor: COLORS.neutral10,\n                    }}>{t(\"video.not-ready.label\")}</span>}\n                </div>\n                {deletionIsPending\n                    ? <PendingDeletionBody {...{ deletionFailed, deletionDate, event }} />\n                    : <SmallDescription css={{ padding: \"0 4px\" }} text={event.description} />\n                }\n            </td>\n            <td css={{ fontSize: 14 }}>\n                {created.toLocaleDateString(i18n.language)}\n                <br />\n                <span css={{ color: isDark ? COLORS.neutral60 : COLORS.neutral50 }}>\n                    {created.toLocaleTimeString(i18n.language)}\n                </span>\n            </td>\n        </tr>\n    );\n};\n\ntype PendingDeleteBodyProps = {\n    deletionFailed: boolean;\n    deletionDate: Date;\n}\n\nconst PendingDeletionBody: React.FC<PendingDeleteBodyProps> = ({\n    deletionFailed, deletionDate,\n}) => {\n    const isDark = useColorScheme().scheme === \"dark\";\n    const { t } = useTranslation();\n\n    const now = Date.now();\n    const [, relative] = relativeDate(deletionDate, now);\n\n    return (\n        <div css={{\n            color: isDark ? COLORS.neutral60 : COLORS.neutral50,\n            display: \"flex\",\n            fontSize: 13,\n            marginTop: 4,\n            padding: \"0 4px\",\n        }}>\n            <span css={{ fontStyle: \"italic\" }}>\n                {t(`manage.my-videos.details.delete.${\n                    deletionFailed ? \"failed-maybe\" : \"pending\"\n                }`)}\n            </span>\n            <InfoWithTooltip\n                tooltip={t(`manage.my-videos.details.delete.tooltip.${\n                    deletionFailed ? \"failed\" : \"pending\"\n                }`, { time: relative })}\n                mode={deletionFailed ? \"warning\" : \"info\"}\n            />\n        </div>\n    );\n};\n\ntype PageNavigationProps = {\n    connection: EventConnection;\n    vars: VariablesOf<VideoManageQuery>;\n};\n\nconst PageNavigation: React.FC<PageNavigationProps> = ({ connection, vars }) => {\n    const { t } = useTranslation();\n    const pageInfo = connection.pageInfo;\n\n    return (\n        <div css={{\n            display: \"flex\",\n            justifyContent: \"flex-end\",\n            alignItems: \"center\",\n            gap: 48,\n        }}>\n            <div>\n                {t(\"manage.my-videos.page-showing-video-ids\", {\n                    start: connection.pageInfo.startIndex ?? \"?\",\n                    end: connection.pageInfo.endIndex ?? \"?\",\n                    total: connection.totalCount,\n                })}\n            </div>\n            <div css={{ display: \"flex\", alignItems: \"center\" }}>\n                <PageLink\n                    vars={{ order: vars.order, first: LIMIT }}\n                    disabled={!pageInfo.hasPreviousPage && connection.items.length === LIMIT}\n                    label={t(\"manage.my-videos.navigation.first\")}\n                ><FirstPage /></PageLink>\n                <PageLink\n                    vars={{ order: vars.order, before: pageInfo.startCursor, last: LIMIT }}\n                    disabled={!pageInfo.hasPreviousPage}\n                    label={t(\"manage.my-videos.navigation.previous\")}\n                ><LuChevronLeft /></PageLink>\n                <PageLink\n                    vars={{ order: vars.order, after: pageInfo.endCursor, first: LIMIT }}\n                    disabled={!pageInfo.hasNextPage}\n                    label={t(\"manage.my-videos.navigation.next\")}\n                ><LuChevronRight /></PageLink>\n                <PageLink\n                    vars={{ order: vars.order, last: LIMIT }}\n                    disabled={!pageInfo.hasNextPage}\n                    label={t(\"manage.my-videos.navigation.last\")}\n                ><LastPage /></PageLink>\n            </div>\n        </div>\n    );\n};\n\ntype PageLinkProps = {\n    vars: VariablesOf<VideoManageQuery>;\n    disabled: boolean;\n    children: ReactNode;\n    label: string;\n};\n\nconst PageLink: React.FC<PageLinkProps> = ({ children, vars, disabled, label }) => (\n    <Link\n        to={varsToLink(vars)}\n        tabIndex={disabled ? -1 : 0}\n        aria-hidden={disabled}\n        aria-label={label}\n        css={{\n            background: \"none\",\n            border: \"none\",\n            fontSize: 24,\n            padding: \"4px 4px\",\n            margin: \"0 4px\",\n            lineHeight: 0,\n            borderRadius: 4,\n            ...disabled\n                ? {\n                    color: COLORS.neutral25,\n                    pointerEvents: \"none\",\n                }\n                : {\n                    color: COLORS.neutral60,\n                    cursor: \"pointer\",\n                    \":hover, :focus\": {\n                        color: COLORS.neutral90,\n                    },\n                },\n        }}\n    >{children}</Link>\n);\n\nconst DEFAULT_SORT_COLUMN: EventSortColumn = \"CREATED\";\nconst DEFAULT_SORT_DIRECTION: SortDirection = \"DESCENDING\";\n\n/** Reads URL query parameters and converts them into query variables */\nconst queryParamsToVars = (queryParams: URLSearchParams): VariablesOf<VideoManageQuery> => {\n    // Sort order\n    const sortBy = queryParams.get(\"sortBy\");\n    const column = sortBy !== null && match<string, EventSortColumn>(sortBy, {\n        \"title\": () => \"TITLE\",\n        \"created\": () => \"CREATED\",\n        \"updated\": () => \"UPDATED\",\n    });\n\n    const sortOrder = queryParams.get(\"sortOrder\");\n    const direction = sortOrder !== null && match<string, SortDirection>(sortOrder, {\n        \"desc\": () => \"DESCENDING\",\n        \"asc\": () => \"ASCENDING\",\n    });\n\n    const order = !column || !direction\n        ? { column: DEFAULT_SORT_COLUMN, direction: DEFAULT_SORT_DIRECTION }\n        : { column, direction };\n\n    // Pagination\n    if (queryParams.has(\"lastPage\")) {\n        return { order, last: LIMIT };\n    }\n    if (queryParams.has(\"before\")) {\n        return { order, before: queryParams.get(\"before\"), last: LIMIT };\n    }\n    if (queryParams.has(\"after\")) {\n        return { order, after: queryParams.get(\"after\"), first: LIMIT };\n    }\n\n    return { order, first: LIMIT };\n};\n\n/** Converts query variables to URL query parameters */\nconst varsToQueryParams = (vars: VariablesOf<VideoManageQuery>): URLSearchParams => {\n    const searchParams = new URLSearchParams();\n\n    // Sort order\n    const isDefaultOrder = vars.order.column === DEFAULT_SORT_COLUMN\n        && vars.order.direction === DEFAULT_SORT_DIRECTION;\n    if (!isDefaultOrder) {\n        searchParams.set(\"sortBy\", vars.order.column.toLowerCase());\n        searchParams.set(\"sortOrder\", match(vars.order.direction, {\n            \"ASCENDING\": () => \"asc\",\n            \"DESCENDING\": () => \"desc\",\n        }, () => \"\"));\n    }\n\n    // Pagination\n    if (vars.last !== undefined) {\n        if (!vars.before) {\n            searchParams.set(\"lastPage\", \"\");\n        } else {\n            searchParams.set(\"before\", vars.before);\n        }\n    } else if (vars.after) {\n        searchParams.set(\"after\", vars.after);\n    }\n\n    return searchParams;\n};\n\nconst varsToLink = (vars: VariablesOf<VideoManageQuery>): string => {\n    const url = new URL(document.location.href);\n    url.search = varsToQueryParams(vars).toString();\n    return url.href;\n};\n","/**\n * @generated SignedSource<<835700e496902064f749f13d9a4eb55a>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type manageDashboardQuery$variables = Record<PropertyKey, never>;\nexport type manageDashboardQuery$data = {\n  readonly \" $fragmentSpreads\": FragmentRefs<\"UserData\">;\n};\nexport type manageDashboardQuery = {\n  response: manageDashboardQuery$data;\n  variables: manageDashboardQuery$variables;\n};\n\nconst node: ConcreteRequest = {\n  \"fragment\": {\n    \"argumentDefinitions\": [],\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"manageDashboardQuery\",\n    \"selections\": [\n      {\n        \"args\": null,\n        \"kind\": \"FragmentSpread\",\n        \"name\": \"UserData\"\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": [],\n    \"kind\": \"Operation\",\n    \"name\": \"manageDashboardQuery\",\n    \"selections\": [\n      {\n        \"alias\": null,\n        \"args\": null,\n        \"concreteType\": \"User\",\n        \"kind\": \"LinkedField\",\n        \"name\": \"currentUser\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"username\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"displayName\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUpload\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseStudio\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canUseEditor\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canCreateUserRealm\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"canFindUnlisted\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"roles\",\n            \"storageKey\": null\n          },\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"userRole\",\n            \"storageKey\": null\n          }\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"1d07056b8187896baa970c792807b071\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"manageDashboardQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query manageDashboardQuery {\\n  ...UserData\\n}\\n\\nfragment UserData on Query {\\n  currentUser {\\n    username\\n    displayName\\n    canUpload\\n    canUseStudio\\n    canUseEditor\\n    canCreateUserRealm\\n    canFindUnlisted\\n    roles\\n    userRole\\n  }\\n}\\n\"\n  }\n};\n\n(node as any).hash = \"8cf4580a4cbee9b6485c13bf576d5262\";\n\nexport default node;\n","import { ReactElement } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { HiOutlineFire } from \"react-icons/hi\";\nimport { LuFilm, LuLayoutTemplate, LuUpload, LuVideo } from \"react-icons/lu\";\nimport { graphql } from \"react-relay\";\nimport { useColorScheme } from \"@opencast/appkit\";\n\nimport { RootLoader } from \"../../layout/Root\";\nimport { makeRoute } from \"../../rauta\";\nimport { loadQuery } from \"../../relay\";\nimport { LinkList, LinkWithIcon, linkWithIconStyle } from \"../../ui\";\nimport { NotAuthorized } from \"../../ui/error\";\nimport { isRealUser, useUser } from \"../../User\";\nimport { Breadcrumbs } from \"../../ui/Breadcrumbs\";\nimport { PageTitle } from \"../../layout/header/ui\";\nimport { ExternalLink } from \"../../relay/auth\";\nimport {\n    manageDashboardQuery as ManageDashboardQuery,\n} from \"./__generated__/manageDashboardQuery.graphql\";\nimport { COLORS } from \"../../color\";\nimport { useMenu } from \"../../layout/MenuState\";\nimport CONFIG from \"../../config\";\nimport { translatedConfig } from \"../../util\";\nimport i18n from \"../../i18n\";\nimport { UploadRoute } from \"../Upload\";\nimport { ManageVideosRoute } from \"./Video\";\n\n\nconst PATH = \"/~manage\" as const;\n\nexport const ManageRoute = makeRoute({\n    url: PATH,\n    match: url => {\n        if (url.pathname !== PATH) {\n            return null;\n        }\n\n        const queryRef = loadQuery<ManageDashboardQuery>(query, {});\n        return {\n\n            render: () => <RootLoader\n                {...{ query, queryRef }}\n                noindex\n                nav={() => <ManageNav active={PATH} />}\n                render={() => <Manage />}\n            />,\n            dispose: () => queryRef.dispose(),\n        };\n    },\n});\n\n\nconst query = graphql`\n    query manageDashboardQuery { ...UserData }\n`;\n\nconst Manage: React.FC = () => {\n    const { t } = useTranslation();\n    const user = useUser();\n    if (!isRealUser(user)) {\n        return <NotAuthorized />;\n    }\n\n    return <>\n        <Breadcrumbs path={[]} tail={t(\"user.manage-content\")} />\n        <PageTitle title={t(\"manage.dashboard.title\")} />\n        <div css={{ maxWidth: \"80ch\", fontSize: 14, h2: { marginBottom: 8, fontSize: 18 } }}>\n            <h2>{t(\"manage.dashboard.manage-pages-tile-title\")}</h2>\n            {t(\"manage.dashboard.manage-pages-tile-body\")}\n        </div>\n    </>;\n};\n\n\ntype ManageNavProps = {\n    active?: typeof PATH | typeof ManageVideosRoute.url | typeof UploadRoute.url | `/@${string}`;\n};\n\nexport const ManageNav: React.FC<ManageNavProps> = ({ active }) => {\n    const { t } = useTranslation();\n    const user = useUser();\n    const menu = useMenu();\n    const isDark = useColorScheme().scheme === \"dark\";\n\n    /* eslint-disable react/jsx-key */\n    const entries: [NonNullable<ManageNavProps[\"active\"]>, string, ReactElement][] = [\n        [PATH, t(\"manage.dashboard.title\"), <LuLayoutTemplate />],\n        [ManageVideosRoute.url, t(\"manage.my-videos.title\"), <LuFilm />],\n    ];\n    if (isRealUser(user) && user.canCreateUserRealm) {\n        entries.splice(\n            1, 0, [`/@${user.username}`, t(\"realm.user-realm.my-page\"), <HiOutlineFire />]\n        );\n    }\n    if (isRealUser(user) && user.canUpload) {\n        entries.push([UploadRoute.url, t(\"upload.title\"), <LuUpload />]);\n    }\n    /* eslint-enable react/jsx-key */\n\n    const items = entries.map(([path, label, icon]) => (\n        <LinkWithIcon\n            key={path}\n            to={path}\n            iconPos=\"left\"\n            active={path === active}\n            close={() => menu.state === \"burger\" && menu.close()}\n        >\n            {icon}\n            {label}\n        </LinkWithIcon>\n    ));\n\n    if (isRealUser(user) && user.canUseStudio) {\n        items.push(\n            <ExternalLink\n                service=\"STUDIO\"\n                params={{\n                    \"return.target\": document.location.href,\n                    \"return.label\": translatedConfig(CONFIG.siteTitle, i18n),\n                }}\n                fallback=\"link\"\n                css={{\n                    backgroundColor: \"inherit\",\n                    border: \"none\",\n                    color: COLORS.primary0,\n                    cursor: \"pointer\",\n                    width: \"100%\",\n                    ...linkWithIconStyle(isDark, \"left\"),\n                    \":hover, :focus-visible\": { color: isDark ? COLORS.primary2 : COLORS.primary1 },\n                }}\n            >\n                <LuVideo />\n                {t(\"manage.dashboard.studio-tile-title\")}\n            </ExternalLink>\n        );\n    }\n\n    return <LinkList items={items} />;\n};\n","import { PropsWithChildren, useEffect } from \"react\";\nimport { useBeforeunload } from \"react-beforeunload\";\nimport { useTranslation } from \"react-i18next\";\nimport { match } from \"@opencast/appkit\";\n\nimport { Link, useRouter } from \"../router\";\nimport CONFIG from \"../config\";\nimport { LoginRoute, REDIRECT_STORAGE_KEY } from \"./Login\";\n\n\nexport const b64regex = \"[a-zA-Z0-9\\\\-_]\";\n\n\n/** Shows an italic \"Missing name\", intended for use whenever there is no realm name. */\nexport const MissingRealmName: React.FC = () => {\n    const { t } = useTranslation();\n    return <i>{t(\"realm.missing-name\")}</i>;\n};\n\ntype RealmSortOrder = \"ALPHABETIC_ASC\" | \"ALPHABETIC_DESC\" | \"BY_INDEX\" | string;\n\n/**\n * Returns a sorted version of the given realms according to `sortOrder`. It is\n * only sorted for `ALPHABETIC*` values of `sortOrder`. For `BY_INDEX`, the\n * original array is returned as it is assumed it is already ordered by index.\n */\nexport const sortRealms = <T extends { readonly name?: string | null }>(\n    realms: readonly T[],\n    sortOrder: RealmSortOrder,\n    language: string,\n): readonly T[] => {\n    const collator = new Intl.Collator(language);\n    const compare = (a?: string | null, b?: string | null) => {\n        if (a == null && b == null) {\n            return 0;\n        }\n        if (a == null) {\n            return 1;\n        }\n        if (b == null) {\n            return -1;\n        }\n        return collator.compare(a, b);\n    };\n\n    return match(sortOrder, {\n        \"ALPHABETIC_ASC\": () => [...realms].sort((a, b) => compare(a.name, b.name)),\n        \"ALPHABETIC_DESC\": () => [...realms].sort((a, b) => compare(b.name, a.name)),\n    }, () => realms);\n};\n\n\n/**\n * Whenever the current route/page is about to be unloaded (due to browser\n * reloads, a tab being closed, or the route being changed), AND when\n * `shouldBlock` or `shouldBlock()` is `true`, then the navigation attempt is\n * blocked. That means that the user is asked whether they really want to\n * leave. The user can still say \"yes\" and proceed with the navigation.\n */\nexport const useNavBlocker = (shouldBlock: boolean | (() => boolean)) => {\n    const { t } = useTranslation();\n    const router = useRouter();\n\n    const shouldBlockImpl = typeof shouldBlock === \"boolean\"\n        ? () => shouldBlock\n        : shouldBlock;\n\n    useBeforeunload(event => {\n        if (shouldBlockImpl()) {\n            event.preventDefault();\n        }\n    });\n\n    useEffect(() => (\n        router.listenBeforeNav(() => (\n            shouldBlockImpl() && !window.confirm(t(\"general.leave-page-confirmation\"))\n                ? \"prevent-nav\"\n                : undefined\n        ))\n    ));\n};\n\ntype LoginLinkProps = PropsWithChildren & {\n    className?: string;\n}\n\nexport const LoginLink: React.FC<LoginLinkProps> = ({ className, children }) => (\n    <Link\n        to={CONFIG.auth.loginLink ?? LoginRoute.url}\n        onClick={() => {\n            // Store a redirect link in session storage.\n            window.sessionStorage.setItem(REDIRECT_STORAGE_KEY, window.location.href);\n        }}\n        htmlLink={!!CONFIG.auth.loginLink}\n        {...{ className }}\n    >{children}</Link>\n);\n","import { useEffect, useRef } from 'react';\n\n/**\n * React hook that listens to `beforeunload` window event.\n * @function\n * @param {?function(BeforeUnloadEvent): ?string} handler - Event listener\n *   called on `beforeunload` window event. It activates a confirmation dialog\n *   when `event.preventDefault()` is called or a string is returned.\n */\nexport const useBeforeunload = (handler) => {\n  const enabled = typeof handler === 'function';\n\n  // Persist handler in ref\n  const handlerRef = useRef(handler);\n  useEffect(() => {\n    handlerRef.current = handler;\n  });\n\n  useEffect(() => {\n    if (enabled) {\n      const listener = (event) => {\n        const returnValue = handlerRef.current(event);\n\n        if (typeof returnValue === 'string') {\n          event.preventDefault();\n          // Handle legacy `event.returnValue` and `return` activation.\n          // https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event#compatibility_notes\n          return (event.returnValue = returnValue);\n        }\n\n        // Chrome doesn't support `event.preventDefault()` on `BeforeUnloadEvent`.\n        // https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event#compatibility_notes\n        if (event.defaultPrevented) {\n          return (event.returnValue = '');\n        }\n      };\n\n      window.addEventListener('beforeunload', listener);\n      return () => {\n        window.removeEventListener('beforeunload', listener);\n      };\n    }\n  }, [enabled]);\n};\n","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport { useMemo, useCallback } from 'react';\nimport { H as cleanValue, D as valueTernary } from './index-a301f526.esm.js';\nimport { g as getOptionValue, b as getOptionLabel } from './Select-c7902d94.esm.js';\n\nvar _excluded = [\"allowCreateWhileLoading\", \"createOptionPosition\", \"formatCreateLabel\", \"isValidNewOption\", \"getNewOptionData\", \"onCreateOption\", \"options\", \"onChange\"];\nvar compareOption = function compareOption() {\n  var inputValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n  var option = arguments.length > 1 ? arguments[1] : undefined;\n  var accessors = arguments.length > 2 ? arguments[2] : undefined;\n  var candidate = String(inputValue).toLowerCase();\n  var optionValue = String(accessors.getOptionValue(option)).toLowerCase();\n  var optionLabel = String(accessors.getOptionLabel(option)).toLowerCase();\n  return optionValue === candidate || optionLabel === candidate;\n};\nvar builtins = {\n  formatCreateLabel: function formatCreateLabel(inputValue) {\n    return \"Create \\\"\".concat(inputValue, \"\\\"\");\n  },\n  isValidNewOption: function isValidNewOption(inputValue, selectValue, selectOptions, accessors) {\n    return !(!inputValue || selectValue.some(function (option) {\n      return compareOption(inputValue, option, accessors);\n    }) || selectOptions.some(function (option) {\n      return compareOption(inputValue, option, accessors);\n    }));\n  },\n  getNewOptionData: function getNewOptionData(inputValue, optionLabel) {\n    return {\n      label: optionLabel,\n      value: inputValue,\n      __isNew__: true\n    };\n  }\n};\nfunction useCreatable(_ref) {\n  var _ref$allowCreateWhile = _ref.allowCreateWhileLoading,\n    allowCreateWhileLoading = _ref$allowCreateWhile === void 0 ? false : _ref$allowCreateWhile,\n    _ref$createOptionPosi = _ref.createOptionPosition,\n    createOptionPosition = _ref$createOptionPosi === void 0 ? 'last' : _ref$createOptionPosi,\n    _ref$formatCreateLabe = _ref.formatCreateLabel,\n    formatCreateLabel = _ref$formatCreateLabe === void 0 ? builtins.formatCreateLabel : _ref$formatCreateLabe,\n    _ref$isValidNewOption = _ref.isValidNewOption,\n    isValidNewOption = _ref$isValidNewOption === void 0 ? builtins.isValidNewOption : _ref$isValidNewOption,\n    _ref$getNewOptionData = _ref.getNewOptionData,\n    getNewOptionData = _ref$getNewOptionData === void 0 ? builtins.getNewOptionData : _ref$getNewOptionData,\n    onCreateOption = _ref.onCreateOption,\n    _ref$options = _ref.options,\n    propsOptions = _ref$options === void 0 ? [] : _ref$options,\n    propsOnChange = _ref.onChange,\n    restSelectProps = _objectWithoutProperties(_ref, _excluded);\n  var _restSelectProps$getO = restSelectProps.getOptionValue,\n    getOptionValue$1 = _restSelectProps$getO === void 0 ? getOptionValue : _restSelectProps$getO,\n    _restSelectProps$getO2 = restSelectProps.getOptionLabel,\n    getOptionLabel$1 = _restSelectProps$getO2 === void 0 ? getOptionLabel : _restSelectProps$getO2,\n    inputValue = restSelectProps.inputValue,\n    isLoading = restSelectProps.isLoading,\n    isMulti = restSelectProps.isMulti,\n    value = restSelectProps.value,\n    name = restSelectProps.name;\n  var newOption = useMemo(function () {\n    return isValidNewOption(inputValue, cleanValue(value), propsOptions, {\n      getOptionValue: getOptionValue$1,\n      getOptionLabel: getOptionLabel$1\n    }) ? getNewOptionData(inputValue, formatCreateLabel(inputValue)) : undefined;\n  }, [formatCreateLabel, getNewOptionData, getOptionLabel$1, getOptionValue$1, inputValue, isValidNewOption, propsOptions, value]);\n  var options = useMemo(function () {\n    return (allowCreateWhileLoading || !isLoading) && newOption ? createOptionPosition === 'first' ? [newOption].concat(_toConsumableArray(propsOptions)) : [].concat(_toConsumableArray(propsOptions), [newOption]) : propsOptions;\n  }, [allowCreateWhileLoading, createOptionPosition, isLoading, newOption, propsOptions]);\n  var onChange = useCallback(function (newValue, actionMeta) {\n    if (actionMeta.action !== 'select-option') {\n      return propsOnChange(newValue, actionMeta);\n    }\n    var valueArray = Array.isArray(newValue) ? newValue : [newValue];\n    if (valueArray[valueArray.length - 1] === newOption) {\n      if (onCreateOption) onCreateOption(inputValue);else {\n        var newOptionData = getNewOptionData(inputValue, inputValue);\n        var newActionMeta = {\n          action: 'create-option',\n          name: name,\n          option: newOptionData\n        };\n        propsOnChange(valueTernary(isMulti, [].concat(_toConsumableArray(cleanValue(value)), [newOptionData]), newOptionData), newActionMeta);\n      }\n      return;\n    }\n    propsOnChange(newValue, actionMeta);\n  }, [getNewOptionData, inputValue, isMulti, name, newOption, onCreateOption, propsOnChange, value]);\n  return _objectSpread(_objectSpread({}, restSelectProps), {}, {\n    options: options,\n    onChange: onChange\n  });\n}\n\nexport { useCreatable as u };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { S as Select } from '../../dist/Select-c7902d94.esm.js';\nimport { u as useStateManager } from '../../dist/useStateManager-7e1e8489.esm.js';\nimport { u as useCreatable } from '../../dist/useCreatable-bf6ebe1f.esm.js';\nexport { u as useCreatable } from '../../dist/useCreatable-bf6ebe1f.esm.js';\nimport '@babel/runtime/helpers/objectSpread2';\nimport '@babel/runtime/helpers/classCallCheck';\nimport '@babel/runtime/helpers/createClass';\nimport '@babel/runtime/helpers/inherits';\nimport '@babel/runtime/helpers/createSuper';\nimport '@babel/runtime/helpers/toConsumableArray';\nimport '../../dist/index-a301f526.esm.js';\nimport '@emotion/react';\nimport '@babel/runtime/helpers/slicedToArray';\nimport '@babel/runtime/helpers/objectWithoutProperties';\nimport '@babel/runtime/helpers/typeof';\nimport '@babel/runtime/helpers/taggedTemplateLiteral';\nimport '@babel/runtime/helpers/defineProperty';\nimport 'react-dom';\nimport '@floating-ui/dom';\nimport 'use-isomorphic-layout-effect';\nimport 'memoize-one';\n\nvar CreatableSelect = /*#__PURE__*/forwardRef(function (props, ref) {\n  var creatableProps = useStateManager(props);\n  var selectProps = useCreatable(creatableProps);\n  return /*#__PURE__*/React.createElement(Select, _extends({\n    ref: ref\n  }, selectProps));\n});\nvar CreatableSelect$1 = CreatableSelect;\n\nexport { CreatableSelect$1 as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { S as Select } from '../../dist/Select-c7902d94.esm.js';\nimport { u as useAsync } from '../../dist/useAsync-ba7c6b77.esm.js';\nimport { u as useStateManager } from '../../dist/useStateManager-7e1e8489.esm.js';\nimport { u as useCreatable } from '../../dist/useCreatable-bf6ebe1f.esm.js';\nimport '@babel/runtime/helpers/objectSpread2';\nimport '@babel/runtime/helpers/classCallCheck';\nimport '@babel/runtime/helpers/createClass';\nimport '@babel/runtime/helpers/inherits';\nimport '@babel/runtime/helpers/createSuper';\nimport '@babel/runtime/helpers/toConsumableArray';\nimport '../../dist/index-a301f526.esm.js';\nimport '@emotion/react';\nimport '@babel/runtime/helpers/slicedToArray';\nimport '@babel/runtime/helpers/objectWithoutProperties';\nimport '@babel/runtime/helpers/typeof';\nimport '@babel/runtime/helpers/taggedTemplateLiteral';\nimport '@babel/runtime/helpers/defineProperty';\nimport 'react-dom';\nimport '@floating-ui/dom';\nimport 'use-isomorphic-layout-effect';\nimport 'memoize-one';\n\nvar AsyncCreatableSelect = /*#__PURE__*/forwardRef(function (props, ref) {\n  var stateManagerProps = useAsync(props);\n  var creatableProps = useStateManager(stateManagerProps);\n  var selectProps = useCreatable(creatableProps);\n  return /*#__PURE__*/React.createElement(Select, _extends({\n    ref: ref\n  }, selectProps));\n});\nvar AsyncCreatableSelect$1 = AsyncCreatableSelect;\n\nexport { AsyncCreatableSelect$1 as default };\n","import {\n    useColorScheme,\n    ProtoButton,\n    FloatingHandle,\n    Floating,\n    bug,\n    notNullish,\n    screenWidthAtMost,\n    Button,\n    Card,\n    Spinner,\n} from \"@opencast/appkit\";\nimport {\n    createContext,\n    useRef,\n    useState,\n    useContext,\n    ReactNode,\n    Dispatch,\n    SetStateAction,\n    PropsWithChildren,\n} from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { LuX } from \"react-icons/lu\";\nimport { MultiValue } from \"react-select\";\nimport CreatableSelect from \"react-select/creatable\";\nimport AsyncCreatableSelect from \"react-select/async-creatable\";\nimport { fetchQuery, graphql } from \"react-relay\";\nimport { i18n, ParseKeys } from \"i18next\";\n\nimport { InfoWithTooltip, focusStyle } from \".\";\nimport { useUser, isRealUser } from \"../User\";\nimport { COLORS } from \"../color\";\nimport { COMMON_ROLES } from \"../util/roles\";\nimport { SelectProps } from \"./Input\";\nimport { searchableSelectStyles, theme } from \"./SearchableSelect\";\nimport { FloatingBaseMenu } from \"./FloatingBaseMenu\";\nimport { AccessKnownRolesData$data } from \"./__generated__/AccessKnownRolesData.graphql\";\nimport CONFIG from \"../config\";\nimport { environment } from \"../relay\";\nimport { AccessUserSearchQuery } from \"./__generated__/AccessUserSearchQuery.graphql\";\nimport { ErrorDisplay } from \"../util/err\";\nimport { useNavBlocker } from \"../routes/util\";\nimport { currentRef } from \"../util\";\nimport { ModalHandle, Modal, ConfirmationModal, ConfirmationModalHandle } from \"./Modal\";\nimport { PermissionLevel, PermissionLevels } from \"../util/permissionLevels\";\n\n\n\n\nexport type Acl = Map<string, {\n    actions: Set<string>;\n    info?: RoleInfo | null;\n}>;\n\nexport type RoleInfo = {\n    label: TranslatedLabel;\n    implies?: readonly string[] | null;\n    large: boolean;\n};\n\ntype SelectOption = {\n    role: string;\n    label: string;\n}\n\ntype AclContext = {\n    userIsRequired: boolean;\n    acl: Acl;\n    ownerDisplayName: string | null;\n    permissionLevels: PermissionLevels;\n    change: (f: (acl: Acl) => void) => void;\n    knownGroups: Map<string, {\n        label: TranslatedLabel;\n        implies: Set<string>;\n        large: boolean;\n    }>;\n    groupDag: GroupDag;\n}\n\nconst AclContext = createContext<AclContext | null>(null);\n\nconst useAclContext = () => useContext(AclContext) ?? bug(\"Acl context is not initialized!\");\n\ntype AclSelectorProps = {\n    acl: Acl;\n    inheritedAcl?: Acl;\n    /**\n     * If `true`, the current user is included by default with `write` access and can't be removed.\n     * This is necessary for the acl-selection in the uploader.\n    */\n    userIsRequired?: boolean;\n    onChange: (newAcl: Acl) => void;\n    knownRoles: AccessKnownRolesData$data;\n    ownerDisplayName?: string | null;\n    permissionLevels: PermissionLevels;\n    addAnonymous?: boolean;\n}\n\nexport const AclSelector: React.FC<AclSelectorProps> = (\n    {\n        acl,\n        inheritedAcl = new Map(),\n        userIsRequired = false,\n        onChange,\n        knownRoles,\n        ownerDisplayName = \"\",\n        permissionLevels,\n        addAnonymous = true,\n    }\n) => {\n    const { i18n } = useTranslation();\n    const knownGroups = [...knownRoles.knownGroups];\n    [acl, inheritedAcl].forEach(list =>\n        insertBuiltinRoleInfo(list, knownGroups, i18n, addAnonymous));\n    const [groupAcl, userAcl] = splitAcl(acl);\n    const [inheritedGroupAcl, inheritedUserAcl] = splitAcl(inheritedAcl);\n\n    const change: AclContext[\"change\"] = f => {\n        const copy = new Map([...acl.entries()].map(([role, value]) => [role, {\n            actions: new Set(value.actions),\n            info: value.info,\n        }]));\n        f(copy);\n        onChange(copy);\n    };\n\n    const context = {\n        userIsRequired,\n        acl,\n        change,\n        groupDag: buildDag(knownGroups),\n        ownerDisplayName,\n        permissionLevels,\n        knownGroups: new Map(knownGroups.map(g => [g.role, {\n            label: g.label,\n            implies: new Set(g.implies),\n            large: g.large,\n        }])),\n    };\n\n    return <AclContext.Provider value={context}>\n        <div css={{\n            display: \"flex\",\n            flexWrap: \"wrap\",\n            gap: 24,\n        }}>\n            <AclSelect kind=\"group\" acl={groupAcl} inheritedAcl={inheritedGroupAcl} />\n            <AclSelect kind=\"user\" acl={userAcl} inheritedAcl={inheritedUserAcl} />\n        </div>\n    </AclContext.Provider>;\n};\n\ntype RoleKind = \"group\" | \"user\";\n\n\nexport const knownRolesFragment = graphql`\n    fragment AccessKnownRolesData on Query {\n        knownGroups { role label implies large }\n    }\n`;\n\n/**\n * An entry in the active ACL list. Very similar but still different from\n * `AclItem` from the API.\n */\ntype Entry = {\n    role: string;\n    actions: Set<string>;\n\n    /**\n     * Resolved label. The value from the API, but also built-in groups\n     * evaluated and fallback to just the role.\n     */\n    label: string;\n\n    /** Whether this is a large group. `false` for unknown roles. */\n    large: boolean;\n};\n\ntype AclSelectProps = SelectProps & {\n    acl: Acl;\n    inheritedAcl: Acl;\n    kind: RoleKind;\n};\n\n/** One of the two columns for either users or groups. */\nconst AclSelect: React.FC<AclSelectProps> = ({ acl, inheritedAcl, kind }) => {\n    const isDark = useColorScheme().scheme === \"dark\";\n    const user = useUser();\n    const { t, i18n } = useTranslation();\n    const { change, knownGroups, groupDag, permissionLevels, ownerDisplayName } = useAclContext();\n    const [menuIsOpen, setMenuIsOpen] = useState<boolean>(false);\n    const userIsOwner = isRealUser(user) && user.displayName === ownerDisplayName;\n    const [error, setError] = useState<ReactNode>(null);\n\n    // Sort the active ACL entries (and put them into a new variable for that).\n    let entries: Entry[] = [...acl.entries()].map(([role, { actions, info }]) => ({\n        role,\n        actions,\n        label: getLabel(role, info?.label, i18n),\n        large: info?.large ?? false,\n    }));\n    if (kind === \"group\") {\n        // Sort large groups to the top.\n        entries = groupDag.sort(entries);\n    } else {\n        // Always show the current user first, if included. Then show all known\n        // users, then all unknown ones, both in alphabetical order.\n        const collator = new Intl.Collator(i18n.resolvedLanguage, { sensitivity: \"base\" });\n        entries.sort((a, b) => {\n            const section = (x: Entry) => {\n                if (isRealUser(user) && x.role === user.userRole) {\n                    return 0;\n                }\n                if (x.label.startsWith(\"ROLE_\")) {\n                    return 2;\n                }\n                return 1;\n            };\n\n            const sectionDiff = section(a) - section(b);\n            if (sectionDiff !== 0) {\n                return sectionDiff;\n            }\n\n            return collator.compare(a.label, b.label);\n        });\n    }\n\n    const inheritedEntries: Entry[] = [...inheritedAcl.entries()]\n        .map(([role, { actions, info }]) => ({\n            role,\n            actions,\n            label: getLabel(role, info?.label, i18n),\n            large: false, // Don't show any warning on inherited entries as they can't be changed.\n        }));\n\n    const userIsAdmin = isRealUser(user) && user.roles.includes(COMMON_ROLES.ADMIN);\n    const showAdminEntry = kind === \"group\"\n        && !entries.some(e => e.role === COMMON_ROLES.ADMIN)\n        && userIsAdmin;\n\n    const userIsGlobalPageAdmin = isRealUser(user)\n        && user.roles.includes(COMMON_ROLES.TOBIRA_GLOBAL_PAGE_ADMIN);\n    const showGlobalPageAdminEntry = kind === \"group\"\n        && !entries.some(e => e.role === COMMON_ROLES.TOBIRA_GLOBAL_PAGE_ADMIN)\n        && userIsGlobalPageAdmin;\n\n    const showUserEntry = (kind === \"user\" && ownerDisplayName);\n    const noEntries = entries.length === 0\n        && !(showAdminEntry || showUserEntry || showGlobalPageAdminEntry);\n\n    const remove = (item: Entry) => change(prev => prev.delete(item.role));\n\n    const handleCreate = (inputValue: string) => change(prev => {\n        prev.set(inputValue, {\n            // If \"create\" is called, a new option is created, meaning that we\n            // don't know the role.\n            info: null,\n            actions: new Set([permissionLevels.default]),\n        });\n    });\n\n    const handleChange = (choice: MultiValue<SelectOption>) => change(prev => {\n        choice\n            .filter(option => !acl.has(option.role))\n            .forEach(option => {\n                const info = knownGroups.get(option.role);\n                prev.set(option.role, {\n                    actions: new Set([permissionLevels.default]),\n                    info: {\n                        label: info?.label ?? { \"_\": option.label },\n                        implies: [...info?.implies ?? new Set()],\n                        large: info?.large ?? false,\n                    },\n                });\n            });\n    });\n\n\n    const commonSelectProps = {\n        onMenuOpen: () => setMenuIsOpen(true),\n        onMenuClose: () => setMenuIsOpen(false),\n        menuIsOpen,\n        controlShouldRenderValue: false,\n        isClearable: false,\n        isMulti: true,\n        isSearchable: true,\n        backspaceRemovesValue: false,\n        placeholder: t(`manage.access.select.${kind}s`),\n        // TODO: for users, this should say \"type to search\" or \"enter\n        // username, email, ... to add user\" depending on the\n        // users_searchable config.\n        noOptionsMessage: kind === \"group\"\n            ? () => t(\"general.form.select.no-options\")\n            : ({ inputValue }: { inputValue: string }) => (\n                t(`manage.access.users-no-options.${\n                    inputValue.length === 0 ? \"initial\" : \"none-found\"\n                }-${CONFIG.usersSearchable ? \"\" : \"not-\"}searchable`)\n            ),\n        isValidNewOption: (input: string) => {\n            const validUserRole = isUserRole(input);\n            const validRole = /^ROLE_\\w+/.test(input);\n            return kind === \"group\" ? (validRole && !validUserRole) : validUserRole;\n        },\n        formatCreateLabel: (input: string) => t(\"manage.access.select.create\", { item: input }),\n        value: entries.map(e => ({ role: e.role, label: e.label })),\n        getOptionValue: (option: SelectOption) => option.role,\n        onCreateOption: handleCreate,\n        onChange: handleChange,\n        styles: searchableSelectStyles(isDark),\n        css: { marginTop: 6 },\n        theme,\n    } as const;\n\n    return <div css={{\n        flex: \"1 1 420px\",\n        display: \"flex\",\n        flexDirection: \"column\",\n        maxWidth: 700,\n\n        [screenWidthAtMost(480)]: {\n            flexBasis: 280,\n        },\n    }}>\n        <strong>{t(`manage.access.authorized-${kind}s`)}</strong>\n        {error && <Card kind=\"error\" css={{ marginBottom: 8 }}>{error}</Card>}\n        {kind === \"group\"\n            ? <CreatableSelect\n                {...commonSelectProps}\n                options={[...knownGroups.entries()].map(([role, { label }]) => ({\n                    role,\n                    label: getLabel(role, label, i18n),\n                }))}\n            />\n            : <AsyncCreatableSelect\n                {...commonSelectProps}\n                loadOptions={(q: string, callback: (options: readonly SelectOption[]) => void) => {\n                    fetchQuery<AccessUserSearchQuery>(environment, userSearchQuery, { q })\n                        .subscribe({\n                            next: ({ users }) => {\n                                if (users.items === undefined) {\n                                    setError(t(\"search.unavailable\"));\n                                    return;\n                                }\n\n                                setError(null);\n                                callback(users.items\n                                    .filter(item => item.displayName !== ownerDisplayName)\n                                    .map(item => ({\n                                        role: item.userRole,\n                                        label: item.displayName,\n                                    })));\n                            },\n                            start: () => {},\n                            error: (error: Error) => setError(<ErrorDisplay error={error} />),\n                        });\n                }}\n            />\n        }\n        <div>\n            <Table header={<>\n                <th>{t(`manage.access.table.${kind}`)}</th>\n                <th>{t(\"manage.access.table.actions.title\")}</th>\n                <th></th></>\n            }>\n                {/* Placeholder if there are no entries */}\n                {noEntries && <tr>\n                    <td colSpan={3} css={{ textAlign: \"center\", fontStyle: \"italic\" }}>\n                        {t(\"acl.no-entries\")}\n                    </td>\n                </tr>}\n\n                {entries.map(entry =>\n                    <ListEntry key={entry.role} item={entry} {...{ remove, kind }} />)\n                }\n\n                {/*\n                    The ACLs usually don't explicitly include admins, but showing that\n                    entry makes sense if the user is admin. Same for the global page admin.\n                */}\n                {showAdminEntry && <TableRow\n                    labelCol={<>{t(\"acl.groups.admins\")}</>}\n                    actionCol={<UnchangeableAllActions />}\n                />}\n                {showGlobalPageAdminEntry && <TableRow\n                    labelCol={<>{t(\"acl.groups.global-page-admins\")}</>}\n                    actionCol={<UnchangeableAllActions />}\n                />}\n\n                {/*\n                    Similarly to the above, the ACL for user realms does not explicitly\n                    include that realm's owning user, but it should still be shown in the UI.\n                */}\n                {showUserEntry && <TableRow\n                    labelCol={!userIsOwner ? <>{ownerDisplayName}</> : <>\n                        <i>{t(\"manage.access.table.yourself\")}</i>\n                            &nbsp;({ownerDisplayName})\n                    </>}\n                    actionCol={<UnchangeableAllActions />}\n                />}\n            </Table>\n\n            {/* Inherited ACL */}\n            {inheritedAcl.size > 0 && <Table header={\n                <th colSpan={3}>\n                    <span css={{\n                        display: \"flex\",\n                        justifyContent: \"space-between\",\n                        paddingRight: 12,\n                    }}>\n                        {t(\"manage.access.table.inherited\")}\n                        <InfoWithTooltip\n                            mode=\"info\"\n                            tooltip={t(\"manage.access.table.inherited-tooltip\")}\n                        />\n                    </span>\n                </th>\n            }>\n                {inheritedEntries.map(entry =>\n                    <ListEntry key={entry.role} item={entry} inherited {...{ kind }} />)\n                }\n            </Table>}\n        </div>\n    </div>;\n};\n\ntype TableProps = PropsWithChildren<{\n    header?: ReactNode;\n}>\n\nconst Table: React.FC<TableProps> = ({ children, header }) => {\n    const { i18n } = useTranslation();\n    const { permissionLevels } = useAclContext();\n\n    return (\n        <table css={{\n            marginTop: 20,\n            tableLayout: \"fixed\",\n            width: \"100%\",\n            borderRadius: 4,\n            borderCollapse: \"collapse\",\n            backgroundColor: COLORS.neutral10,\n            \"th, td\": {\n                padding: 6,\n                \":first-of-type\": {\n                    paddingLeft: 12,\n                    overflowWrap: \"anywhere\",\n                },\n            },\n            [screenWidthAtMost(480)]: {\n                fontSize: 14,\n                \"> colgroup > col:nth-of-type(2)\": { width: \"unset\" },\n                \"> colgroup > col:nth-of-type(3)\": { width: 35 },\n            },\n        }}>\n            <colgroup>\n                <col />\n                <col css={{\n                    // This is a little hacky and kind of messy.\n                    // We want the width of the action columns to be fixed\n                    // and determined by the longest action label (e.g. `read and write`\n                    // should also determine the width of the `read` label). These lengths are\n                    // of course also dependent on the current language (german for example\n                    // has a reputation for having ridiculously lengthy words).\n                    // Now that we use this selector also for realm acl that use different\n                    // labels altogether, this needs yet another check.\n                    // This will of course become even more complicated once more languages are\n                    // added.\n                    width: permissionLevels.highest === \"admin\"\n                        ? i18n.resolvedLanguage === \"en\" ? 160 : 165\n                        : i18n.resolvedLanguage === \"en\" ? 190 : 224,\n                }} />\n                <col css={{ width: 42 }} />\n            </colgroup>\n            <thead>\n                <tr css={{\n                    borderBottom: `2px solid ${COLORS.neutral05}`,\n                    textAlign: \"left\",\n                }}>{header}</tr>\n            </thead>\n            <tbody>{children}</tbody>\n        </table>\n    );\n};\n\nconst userSearchQuery = graphql`\n    query AccessUserSearchQuery($q: String!) {\n        users: searchKnownUsers(query: $q) {\n            ... on KnownUserSearchResults {\n                items { displayName userRole }\n            }\n        }\n    }\n`;\n\ntype ItemProps = {\n    item: Entry;\n    kind: RoleKind;\n}\n\ntype ListEntryProps = ItemProps & {\n    remove?: (item: Entry) => void;\n    inherited?: boolean;\n}\n\nconst ListEntry: React.FC<ListEntryProps> = ({ remove, item, kind, inherited = false }) => {\n    const user = useUser();\n    const { t, i18n } = useTranslation();\n    const { userIsRequired, acl, groupDag, permissionLevels } = useAclContext();\n\n    const entryContainsActions = (actions: PermissionLevel[]) =>\n        actions.every(action => item.actions.has(action));\n\n    let noteworthyAccessType: PermissionLevel | null = null;\n    if (entryContainsActions([\"write\"])) {\n        noteworthyAccessType = \"write\";\n    } else if (entryContainsActions([\"admin\"])) {\n        noteworthyAccessType = \"admin\";\n    } else if (entryContainsActions([\"moderate\"]) && !entryContainsActions([\"admin\"])) {\n        noteworthyAccessType = \"moderate\";\n    }\n\n    const supersets = kind === \"user\" ? [] : groupDag\n        .supersetsOf(item.role)\n        .filter(role => {\n            const actions = acl.get(role)?.actions;\n            return actions && [...item.actions].every(action => actions?.has(action));\n        })\n        .map(role => getLabel(role, acl.get(role)?.info?.label, i18n));\n    const isSubset = !inherited && supersets.length > 0;\n    const isUser = isRealUser(user) && item.role === user.userRole;\n    const immutable = item.role === COMMON_ROLES.ADMIN || userIsRequired && isUser || inherited;\n\n    let label: JSX.Element;\n    if (isUser) {\n        label = <span><i>{t(\"manage.access.table.yourself\")}</i>&nbsp;({item.label})</span>;\n    } else if (kind === \"user\" && isUserRole(item.label)) {\n        // We strip the user role prefix (we take the longest prefix that\n        // matches, though in almost all cases just a single one will match).\n        // We then clean it a bit before displaying.\n        const prefixes = CONFIG.auth.userRolePrefixes\n            .filter(prefix => item.label.startsWith(prefix));\n        const name = item.role.slice(Math.max(...prefixes.map(p => p.length)))\n            .toLocaleLowerCase(i18n.resolvedLanguage)\n            .replace(\"_\", \" \");\n        label = <span>{name} (<i>{t(\"acl.unknown-user-note\")}</i>)</span>;\n    } else {\n        label = <>{item.label}</>;\n    }\n\n    return <TableRow\n        labelCol={<>\n            {label}\n            {isSubset && <InfoWithTooltip mode=\"info\" tooltip={\n                t(\"manage.access.table.subset-warning\", { groups: supersets.join(\", \") })\n            } />}\n        </>}\n        mutedLabel={isSubset || inherited}\n        actionCol={immutable\n            ? <UnchangeableAllActions permission={getActionLabel(item, permissionLevels)} />\n            : <>\n                <ActionsMenu {...{ item, kind }} />\n                {item.large && noteworthyAccessType\n                    ? <InfoWithTooltip\n                        mode=\"warning\"\n                        tooltip={t(\"manage.access.table.actions.large-group-warning\", {\n                            val: t(`manage.access.table.actions.${noteworthyAccessType}-access`),\n                        })}\n                    />\n                    : <div css={{ width: 22 }} />\n                }\n            </>}\n        onRemove={immutable ? undefined : () => remove && remove(item)}\n        {...{ inherited }}\n    />;\n};\n\n\ntype TableRowProps = {\n    labelCol: JSX.Element;\n    mutedLabel?: boolean;\n    actionCol: JSX.Element;\n    onRemove?: () => void;\n    inherited?: boolean;\n}\n\nconst TableRow: React.FC<TableRowProps> = (\n    { labelCol, mutedLabel, actionCol, onRemove, inherited }\n) => (\n    <tr css={{\n        height: 44,\n        ...!inherited && { \":hover, :focus-within\":\n            { td: { backgroundColor: COLORS.neutral15 } },\n        },\n        ...mutedLabel && { color: COLORS.neutral60 },\n        borderBottom: `1px solid ${COLORS.neutral05}`,\n        \":last-child\": {\n            border: \"none\",\n            td: {\n                \":first-child\": { borderBottomLeftRadius: 4 },\n                \":last-child\": { borderBottomRightRadius: 4 },\n            },\n        },\n    }}>\n        <td>\n            <span css={{ display: \"flex\" }}>{labelCol}</span>\n        </td>\n        <td>\n            <div css={{\n                display: \"flex\",\n                \"> div:first-of-type\": { flex: \"1\" },\n                [screenWidthAtMost(480)]: {\n                    lineHeight: 1,\n                },\n            }}>\n                {actionCol}\n            </div>\n        </td>\n        <td>\n            {onRemove && <ProtoButton\n                onClick={onRemove}\n                css={{\n                    marginLeft: \"auto\",\n                    display: \"flex\",\n                    color: COLORS.neutral60,\n                    borderRadius: 4,\n                    padding: 4,\n                    \":hover, :focus-visible\": { color: COLORS.danger0 },\n                    ...focusStyle({ offset: -1 }),\n                }}\n            >\n                <LuX size={20} />\n            </ProtoButton>}\n        </td>\n    </tr>\n);\n\nconst UnchangeableAllActions: React.FC<{ permission?: PermissionLevel }> = ({ permission }) => {\n    const { t } = useTranslation();\n    const { permissionLevels } = useAclContext();\n    const label = permission ?? permissionLevels.highest;\n    return <span css={{ marginLeft: 8 }}>{t(`manage.access.table.actions.${label}`)}</span>;\n};\n\nconst ActionsMenu: React.FC<ItemProps> = ({ item, kind }) => {\n    const isDark = useColorScheme().scheme === \"dark\";\n    const ref = useRef<FloatingHandle>(null);\n    const { t } = useTranslation();\n    const { change, permissionLevels } = useAclContext();\n    const allLabels = Object.keys(permissionLevels.all) as PermissionLevel[];\n    const currentActionOption = getActionLabel(item, permissionLevels);\n\n    const changeOption = (newOption: PermissionLevel) => change(prev => {\n        notNullish(prev.get(item.role)).actions\n            = notNullish(permissionLevels.all[newOption]).actions;\n    });\n\n    return (\n        <FloatingBaseMenu\n            ref={ref}\n            label={t(\"manage.access.table.actions.title\")}\n            triggerContent={<>{t(`manage.access.table.actions.${currentActionOption}`)}</>}\n            triggerStyles={{\n                width: \"100%\",\n                gap: 0,\n                padding: \"0 4px 0 8px\",\n                justifyContent: \"space-between\",\n                \":hover, :focus-visible\": { backgroundColor: COLORS.neutral20 },\n                svg: { marginTop: 2, color: COLORS.neutral60 },\n                [screenWidthAtMost(480)]: {\n                    whiteSpace: \"normal\",\n                    textAlign: \"left\",\n                },\n            }}\n            list={\n                <Floating\n                    backgroundColor={isDark ? COLORS.neutral15 : COLORS.neutral05}\n                    hideArrowTip\n                    padding={0}\n                    borderWidth={isDark ? 1 : 0}\n                    css={{ minWidth: 125, lineHeight: 1.4 }}\n                >\n                    <ul css={{\n                        listStyle: \"none\",\n                        margin: 0,\n                        padding: 0,\n                    }}>\n                        {allLabels.map(actionOption => <ActionMenuItem\n                            key={actionOption}\n                            disabled={actionOption === currentActionOption}\n                            label={t(`manage.access.table.actions.${actionOption}`)}\n                            description={\n                                t(`manage.access.table.actions.${actionOption}-description`,\n                                    { count: kind === \"user\" ? 1 : 2 })\n                            }\n                            onClick={() => changeOption(actionOption)}\n                            close={() => ref.current?.close()}\n                        />)}\n                    </ul>\n                </Floating>\n            }\n        />\n    );\n};\n\ntype ActionMenuItemProps = {\n    label: string;\n    description: string;\n    onClick: () => void;\n    close: () => void;\n    disabled: boolean;\n};\n\nconst ActionMenuItem: React.FC<ActionMenuItemProps> = (\n    { label, description, onClick, close, disabled }\n) => {\n    const ref = useRef<HTMLButtonElement>(null);\n    const isDark = useColorScheme().scheme === \"dark\";\n\n    return (\n        <li css={{\n            \":not(:last-child)\": {\n                borderBottom: `1px solid ${isDark ? COLORS.neutral40 : COLORS.neutral20}`,\n            },\n            \":last-child button\": {\n                borderRadius: \"0 0 8px 8px\",\n            },\n            ...disabled && { backgroundColor: COLORS.neutral10 },\n        }}>\n            <ProtoButton\n                {...{ ref, disabled }}\n                role=\"menuitem\"\n                onClick={() => {\n                    onClick();\n                    close();\n                }}\n                css={{\n                    width: 300,\n                    display: \"flex\",\n                    alignItems: \"center\",\n                    gap: 8,\n                    svg: { fontSize: 16 },\n                    \":hover:enabled, :focus:enabled \": {\n                        backgroundColor: isDark ? COLORS.neutral10 : COLORS.neutral15,\n                    },\n                    ...focusStyle({ inset: true }),\n                    \"&[disabled]\": {\n                        cursor: \"default\",\n                        span: {\n                            fontWeight: \"bold\",\n                            color: COLORS.neutral80,\n                            pointerEvents: \"none\",\n                        },\n                    },\n                }}\n            >\n                <div css={{\n                    display: \"flex\",\n                    flexDirection: \"column\",\n                    padding: \"8px 14px\",\n                    gap: 6,\n                    textAlign: \"left\",\n                }}>\n                    <span>{label}</span>\n                    <p css={{ fontSize: 14 }}>{description}</p>\n                </div>\n            </ProtoButton>\n        </li>\n    );\n};\n\n\n/* Optional reset and save buttons to use if selector is not part of a larger form */\ntype AclEditButtonsProps = {\n    selections: Acl;\n    setSelections: Dispatch<SetStateAction<Acl>>;\n    initialAcl: Acl;\n    onSubmit: (acl: Acl) => Promise<void>;\n    className?: string;\n    inFlight?: boolean;\n    inheritedAcl?: Acl;\n    userIsOwner?: boolean;\n    kind: \"write\" | \"admin\";\n    saveModalRef: React.RefObject<ConfirmationModalHandle>;\n}\n\nexport const AclEditButtons: React.FC<AclEditButtonsProps> = (\n    {\n        selections,\n        setSelections,\n        initialAcl,\n        onSubmit,\n        className,\n        inFlight,\n        inheritedAcl,\n        userIsOwner,\n        saveModalRef,\n        kind,\n    }\n) => {\n    const { t } = useTranslation();\n    const user = useUser();\n    const resetModalRef = useRef<ModalHandle>(null);\n\n    const containsUser = (acl: Acl) => isRealUser(user) && (userIsOwner || user.roles.some(r =>\n        r === COMMON_ROLES.ADMIN\n        || acl.get(r)?.actions.has(kind)\n        || inheritedAcl?.get(r)?.actions.has(kind))\n    );\n\n    const selectionIsInitial = selections.size === initialAcl.size\n        && [...selections].every(([role, info]) => {\n            const other = initialAcl.get(role);\n            return other && areSetsEqual(other.actions, info.actions);\n        });\n\n    const submit = onSubmit;\n\n    useNavBlocker(!selectionIsInitial);\n\n    return (\n        <div {...{ className }} css={{\n            display: \"flex\",\n            gap: 8,\n            alignSelf: \"flex-start\",\n            marginTop: 40,\n        }}>\n            {/* Reset button */}\n            <Button\n                disabled={selectionIsInitial}\n                onClick={() => currentRef(resetModalRef).open()}\n                css={{ ...!selectionIsInitial && { \":hover\": { color: COLORS.danger0 } } }}\n            >\n                {t(\"manage.access.reset-modal.label\")}\n            </Button>\n            <Modal ref={resetModalRef} title={t(\"manage.access.reset-modal.title\")}>\n                <p>{t(\"manage.access.reset-modal.body\")}</p>\n                <div css={{\n                    display: \"flex\",\n                    gap: 12,\n                    justifyContent: \"center\",\n                    flexWrap: \"wrap\",\n                    marginTop: 32,\n                }}>\n                    <Button onClick={() => currentRef(resetModalRef).close?.()}>\n                        {t(\"general.action.cancel\")}\n                    </Button>\n                    <Button kind=\"danger\" onClick={() => {\n                        setSelections(initialAcl);\n                        currentRef(resetModalRef).close?.();\n                    }}>{t(\"manage.access.reset-modal.label\")}</Button>\n                </div>\n            </Modal>\n\n            {/* Save button */}\n            <Button\n                disabled={selectionIsInitial}\n                onClick={() =>\n                    !containsUser(selections)\n                        ? currentRef(saveModalRef).open()\n                        : submit(selections)\n                }\n                css={{ ...!selectionIsInitial && { \":hover\": { color: COLORS.happy0 } } }}\n            >{t(\"general.action.save\")}</Button>\n            {inFlight && <div css={{ marginTop: 16 }}><Spinner size={20} /></div>}\n            <ConfirmationModal\n                ref={saveModalRef}\n                title={t(\"manage.access.save-modal.title\")}\n                buttonContent={t(\"manage.access.save-modal.confirm\")}\n                onSubmit={() => submit(selections)}\n            >\n                <p>{t(`manage.access.save-modal.disclaimer-${kind}`)}</p>\n            </ConfirmationModal>\n        </div>\n    );\n};\n\n\n// ==============================================================================================\n// ===== Helper functions\n// ==============================================================================================\n\ntype TranslatedLabel = Record<string, string>;\n\n/** Returns a label for the role, if known to Tobira. */\nconst getLabel = (role: string, label: TranslatedLabel | undefined, i18n: i18n) => {\n    if (role === COMMON_ROLES.USER_ADMIN) {\n        return i18n.t(\"acl.admin-user\");\n    }\n    if (label) {\n        return label[i18n.language] ?? label.en ?? label._;\n    }\n    return role;\n};\n\n/** Returns label for the currently selected action of a role entry */\nconst getActionLabel = (item: Entry, permissionLevels: PermissionLevels): PermissionLevel =>\n    (Object.keys(permissionLevels.all).find(level => {\n        const lvl = permissionLevels.all[level as PermissionLevel]?.actions;\n        return lvl && areSetsEqual(lvl, item.actions);\n    }) ?? \"unknown\") as PermissionLevel;\n\nconst isUserRole = (role: string) =>\n    CONFIG.auth.userRolePrefixes.some(prefix => role.startsWith(prefix));\n\nconst areSetsEqual = (a: Set<string>, b: Set<string>) =>\n    a.size === b.size && [...a].every((str => b.has(str)));\n\n/** Splits initial ACL into group and user roles. */\nconst splitAcl = (initialAcl: Acl): [Acl, Acl] => {\n    const users = new Map();\n    const groups = new Map();\n    for (const [role, info] of initialAcl.entries()) {\n        (isUserRole(role) ? users : groups).set(role, info);\n    }\n    return [groups, users];\n};\n\nconst insertBuiltinRoleInfo = (\n    acl: Acl,\n    knownGroups: AccessKnownRolesData$data[\"knownGroups\"][number][],\n    i18n: i18n,\n    addAnonymous: boolean,\n) => {\n    const keyToTranslatedString = (key: ParseKeys): TranslatedLabel => Object.fromEntries(\n        i18n.languages\n            .filter(lng => i18n.exists(key, { lng }))\n            .map(lng => [lng, i18n.t(key, { lng })])\n    );\n\n    const anonymousInfo = {\n        implies: [],\n        label: keyToTranslatedString(\"acl.groups.everyone\"),\n        large: true,\n    };\n    const userInfo = {\n        implies: [COMMON_ROLES.ANONYMOUS],\n        label: keyToTranslatedString(\"acl.groups.logged-in-users\"),\n        large: true,\n    };\n\n    const anonymous = acl.get(COMMON_ROLES.ANONYMOUS);\n    if (anonymous) {\n        anonymous.info = anonymousInfo;\n    }\n    const user = acl.get(COMMON_ROLES.USER);\n    if (user) {\n        user.info = userInfo;\n    }\n\n    if (addAnonymous) {\n        knownGroups.push({ role: COMMON_ROLES.ANONYMOUS, ...anonymousInfo });\n    }\n    knownGroups.push({ role: COMMON_ROLES.USER, ...userInfo });\n};\n\n\n/**\n * DAG to represent superset/subset relationships of available groups. Lazily\n * initialized.\n */\ninterface GroupDag {\n    /** Returns all groups that include the given one, i.e. are supersets of it. */\n    supersetsOf(groupRole: string): string[];\n\n    /**\n     * Topologically sorts the given groups such that large groups are first,\n     * smaller ones last.\n     */\n    sort(groups: Entry[]): Entry[];\n}\n\nconst buildDag = (groups: AccessKnownRolesData$data[\"knownGroups\"]): GroupDag => {\n    const vertices = new Map<string, Set<string>>();\n    vertices.set(COMMON_ROLES.ANONYMOUS, new Set());\n    vertices.set(COMMON_ROLES.USER, new Set([COMMON_ROLES.ANONYMOUS]));\n\n    for (const { role, implies } of groups) {\n        if (role !== COMMON_ROLES.ANONYMOUS && role !== COMMON_ROLES.USER) {\n            vertices.set(role, new Set([COMMON_ROLES.USER, ...implies]));\n        }\n    }\n\n    return {\n        supersetsOf(start) {\n            // If we don't know this group, we also have no idea about subset\n            // relations except that it's a subset of ROLE_USER and ROLE_ANONYMOUS.\n            // For the special admin role however, we never return supersets as\n            // it's not useful to show a warning next to that.\n            if (!vertices.has(start)) {\n                return start === COMMON_ROLES.ADMIN\n                    ? []\n                    : [COMMON_ROLES.ANONYMOUS, COMMON_ROLES.USER];\n            }\n\n            const supersets = new Set<string>();\n            const stack = [start];\n\n            while (stack.length > 0) {\n                const v = notNullish(stack.pop());\n                if (supersets.has(v)) {\n                    continue;\n                }\n                const directSupersets = vertices.get(v) ?? bug(`group ${v} not found in DAG`);\n                for (const s of directSupersets) {\n                    stack.push(s);\n                }\n                if (v !== start) {\n                    supersets.add(v);\n                }\n            }\n\n            return [...supersets];\n        },\n\n        sort(options) {\n            const visited = new Set<string>();\n            const out = [];\n\n            // Mapping from node to its subsets.\n            const inverseVertices = new Map<string, Set<string>>();\n            vertices.forEach((_, role) => inverseVertices.set(role, new Set()));\n            for (const [role, supersets] of vertices) {\n                for (const s of supersets) {\n                    inverseVertices.get(s)?.add(role);\n                }\n            }\n\n\n            // We can always start with ROLE_ANONYMOUS as that's a supserset of\n            // everything.\n            const candidates = [COMMON_ROLES.ANONYMOUS];\n            while (candidates.length > 0) {\n                const candidate = notNullish(candidates.pop());\n\n                const option = options.find(o => o.role === candidate);\n                if (option) {\n                    out.push(option);\n                }\n\n                visited.add(candidate);\n                for (const subset of inverseVertices.get(candidate) ?? []) {\n                    const supersets = vertices.get(subset) ?? bug(\"DAG inconsistent\");\n\n                    // If we already visited all supersets of this, it can now\n                    // itself be visited. In other words: now we've done our\n                    // deed and added all options that have to come before.\n                    if ([...supersets].every(s => visited.has(s))) {\n                        candidates.push(subset);\n                    }\n                }\n            }\n\n            // Add remaining inputs, i.e. unknown roles.\n            for (const option of options) {\n                if (!visited.has(option.role)) {\n                    out.push(option);\n                }\n            }\n\n            return out;\n        },\n    };\n};\n","import { graphql, useFragment } from \"react-relay\";\nimport { Fields } from \"../../relay\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n    PlaylistBlockData$data,\n    PlaylistBlockData$key,\n} from \"./__generated__/PlaylistBlockData.graphql\";\nimport { VideoListBlock, VideoListBlockContainer } from \"./VideoList\";\nimport {\n    PlaylistBlockPlaylistData$data,\n    PlaylistBlockPlaylistData$key,\n} from \"./__generated__/PlaylistBlockPlaylistData.graphql\";\nimport { Card, unreachable } from \"@opencast/appkit\";\n\n\ntype SharedProps = {\n    basePath: string;\n    moreOfTitle?: boolean;\n};\n\nconst blockFragment = graphql`\n    fragment PlaylistBlockData on PlaylistBlock {\n        playlist { ...PlaylistBlockPlaylistData }\n        showTitle\n        showMetadata\n        order\n        layout\n    }\n`;\n\nconst playlistFragment = graphql`\n    fragment PlaylistBlockPlaylistData on Playlist {\n        __typename\n        ... on NotAllowed { dummy } # workaround\n        ... on AuthorizedPlaylist {\n            id\n            title\n            description\n            entries {\n                __typename\n                ... on AuthorizedEvent { id, ...VideoListEventData }\n                ... on Missing { dummy }\n                ... on NotAllowed { dummy }\n            }\n        }\n    }\n`;\n\ntype FromBlockProps = SharedProps & {\n    fragRef: PlaylistBlockData$key;\n}\n\nexport const PlaylistBlockFromBlock: React.FC<FromBlockProps> = ({ fragRef, ...rest }) => {\n    const { t } = useTranslation();\n    const { playlist, ...block } = useFragment(blockFragment, fragRef);\n    return playlist == null\n        ? <Card kind=\"error\">{t(\"playlist.deleted-playlist-block\")}</Card>\n        : <PlaylistBlockFromPlaylist fragRef={playlist} {...rest} {...block} />;\n};\n\ntype BlockProps = Partial<Omit<Fields<PlaylistBlockData$data>, \"playlist\">>;\n\ntype SharedFromPlaylistProps = SharedProps & BlockProps & {\n    title?: string;\n    activeEventId?: string;\n};\n\ntype FromPlaylistProps = SharedFromPlaylistProps & {\n    fragRef: PlaylistBlockPlaylistData$key;\n};\n\nexport const PlaylistBlockFromPlaylist: React.FC<FromPlaylistProps> = (\n    { fragRef, ...rest },\n) => {\n    const playlist = useFragment(playlistFragment, fragRef);\n    return <PlaylistBlock playlist={playlist} {...rest} />;\n};\n\ntype Props = SharedFromPlaylistProps & {\n    playlist: PlaylistBlockPlaylistData$data;\n};\n\nexport const PlaylistBlock: React.FC<Props> = ({ playlist, ...props }) => {\n    const { t } = useTranslation();\n\n    if (!playlist) {\n        return <VideoListBlockContainer showViewOptions={false}>\n            {t(\"playlist.deleted-playlist-block\")}\n        </VideoListBlockContainer>;\n    }\n\n    if (playlist.__typename === \"NotAllowed\") {\n        return <VideoListBlockContainer showViewOptions={false}>\n            {t(\"playlist.not-allowed-playlist-block\")}\n        </VideoListBlockContainer>;\n    }\n    if (playlist.__typename !== \"AuthorizedPlaylist\") {\n        return unreachable();\n    }\n\n    const title = props.showTitle\n        ? (props.moreOfTitle ? t(\"video.more-from-playlist\", { playlist: playlist.title })\n            : playlist.title)\n        : undefined;\n\n    return <VideoListBlock\n        initialLayout={props.layout}\n        initialOrder={\n            (props.order === \"%future added value\" ? undefined : props.order) ?? \"ORIGINAL\"\n        }\n        allowOriginalOrder\n        {...{ title }}\n        description={(props.showMetadata && playlist.description) || undefined}\n        activeEventId={props.activeEventId}\n        basePath={props.basePath}\n        isPlaylist\n        listId={playlist.id}\n        listEntries={playlist.entries}\n    />;\n};\n","import { useTranslation } from \"react-i18next\";\nimport { Card } from \"@opencast/appkit\";\nimport { graphql, useFragment } from \"react-relay\";\n\nimport { isSynced } from \"../../util\";\nimport type { Fields } from \"../../relay\";\nimport {\n    SeriesBlockData$data, SeriesBlockData$key,\n} from \"./__generated__/SeriesBlockData.graphql\";\nimport {\n    SeriesBlockSeriesData$data,\n    SeriesBlockSeriesData$key,\n} from \"./__generated__/SeriesBlockSeriesData.graphql\";\nimport { VideoListBlock, VideoListBlockContainer } from \"./VideoList\";\n\n\n// ==============================================================================================\n// ===== Data plumbing components (no UI stuff)\n// ==============================================================================================\n\ntype SharedProps = {\n    basePath: string;\n};\n\nconst blockFragment = graphql`\n    fragment SeriesBlockData on SeriesBlock {\n        series {\n            ...SeriesBlockSeriesData\n        }\n        showTitle\n        showMetadata\n        order\n        layout\n    }\n`;\n\nconst seriesFragment = graphql`\n    fragment SeriesBlockSeriesData on Series {\n        title\n        # description is only queried to get the sync status\n        syncedData { description }\n        entries {\n            __typename\n            ...on AuthorizedEvent { id, ...VideoListEventData }\n            ...on NotAllowed { dummy }\n        }\n    }\n`;\n\ntype FromBlockProps = SharedProps & {\n    fragRef: SeriesBlockData$key;\n};\n\nexport const SeriesBlockFromBlock: React.FC<FromBlockProps> = ({ fragRef, ...rest }) => {\n    const { t } = useTranslation();\n    const { series, ...block } = useFragment(blockFragment, fragRef);\n    return series == null\n        ? <Card kind=\"error\">{t(\"series.deleted-series-block\")}</Card>\n        : <SeriesBlockFromSeries fragRef={series} {...rest} {...block} />;\n};\n\ntype BlockProps = Partial<Omit<Fields<SeriesBlockData$data>, \"series\">>;\n\ntype SharedFromSeriesProps = SharedProps & BlockProps & {\n    title?: string;\n    activeEventId?: string;\n};\n\ntype FromSeriesProps = SharedFromSeriesProps & {\n    fragRef: SeriesBlockSeriesData$key;\n};\n\nexport const SeriesBlockFromSeries: React.FC<FromSeriesProps> = (\n    { fragRef, ...rest },\n) => {\n    const series = useFragment(seriesFragment, fragRef);\n    return <SeriesBlock series={series} {...rest} />;\n};\n\ntype Props = SharedFromSeriesProps & {\n    series: SeriesBlockSeriesData$data;\n};\n\nconst SeriesBlock: React.FC<Props> = ({ series, ...props }) => {\n    const { t } = useTranslation();\n\n    if (!isSynced(series)) {\n        const { title, layout } = props;\n        return <VideoListBlockContainer showViewOptions={false} {...{ title, layout }}>\n            {t(\"series.not-ready.text\")}\n        </VideoListBlockContainer>;\n    }\n\n    return <VideoListBlock\n        initialLayout={props.layout}\n        initialOrder={\n            (props.order === \"%future added value\" ? undefined : props.order) ?? \"NEW_TO_OLD\"\n        }\n        allowOriginalOrder={false}\n        title={props.title ?? (props.showTitle ? series.title : undefined)}\n        description={(props.showMetadata && series.syncedData.description) || undefined}\n        activeEventId={props.activeEventId}\n        basePath={props.basePath}\n        listEntries={series.entries}\n    />;\n};\n","/**\n * @typedef Options\n *   Configuration.\n * @property {boolean | null | undefined} [jsx=false]\n *   Support JSX identifiers (default: `false`).\n */\n\nconst startRe = /[$_\\p{ID_Start}]/u\nconst contRe = /[$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst contReJsx = /[-$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst nameRe = /^[$_\\p{ID_Start}][$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\nconst nameReJsx = /^[$_\\p{ID_Start}][-$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Checks if the given code point can start an identifier.\n *\n * @param {number | undefined} code\n *   Code point to check.\n * @returns {boolean}\n *   Whether `code` can start an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function start(code) {\n  return code ? startRe.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given code point can continue an identifier.\n *\n * @param {number | undefined} code\n *   Code point to check.\n * @param {Options | null | undefined} [options]\n *   Configuration (optional).\n * @returns {boolean}\n *   Whether `code` can continue an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function cont(code, options) {\n  const settings = options || emptyOptions\n  const re = settings.jsx ? contReJsx : contRe\n  return code ? re.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given value is a valid identifier name.\n *\n * @param {string} name\n *   Identifier to check.\n * @param {Options | null | undefined} [options]\n *   Configuration (optional).\n * @returns {boolean}\n *   Whether `name` can be an identifier.\n */\nexport function name(name, options) {\n  const settings = options || emptyOptions\n  const re = settings.jsx ? nameReJsx : nameRe\n  return re.test(name)\n}\n","/**\n * @typedef {import('hast').Nodes} Nodes\n */\n\n// HTML whitespace expression.\n// See <https://infra.spec.whatwg.org/#ascii-whitespace>.\nconst re = /[ \\t\\n\\f\\r]/g\n\n/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {Nodes | string} thing\n *   Thing to check (`Node` or `string`).\n * @returns {boolean}\n *   Whether the `value` is inter-element whitespace (`boolean`): consisting of\n *   zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n *   (`\\r`), or form feed (`\\f`); if a node is passed it must be a `Text` node,\n *   whose `value` field is checked.\n */\nexport function whitespace(thing) {\n  return typeof thing === 'object'\n    ? thing.type === 'text'\n      ? empty(thing.value)\n      : false\n    : empty(thing)\n}\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nfunction empty(value) {\n  return value.replace(re, '') === ''\n}\n","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record<string, Info>} Properties\n * @typedef {Record<string, string>} Normal\n */\n\nexport class Schema {\n  /**\n   * @constructor\n   * @param {Properties} property\n   * @param {Normal} normal\n   * @param {string} [space]\n   */\n  constructor(property, normal, space) {\n    this.property = property\n    this.normal = normal\n    if (space) {\n      this.space = space\n    }\n  }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nexport function merge(definitions, space) {\n  /** @type {Properties} */\n  const property = {}\n  /** @type {Normal} */\n  const normal = {}\n  let index = -1\n\n  while (++index < definitions.length) {\n    Object.assign(property, definitions[index].property)\n    Object.assign(normal, definitions[index].normal)\n  }\n\n  return new Schema(property, normal, space)\n}\n","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n  return value.toLowerCase()\n}\n","export class Info {\n  /**\n   * @constructor\n   * @param {string} property\n   * @param {string} attribute\n   */\n  constructor(property, attribute) {\n    /** @type {string} */\n    this.property = property\n    /** @type {string} */\n    this.attribute = attribute\n  }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n  return 2 ** ++powers\n}\n","import {Info} from './info.js'\nimport * as types from './types.js'\n\n/** @type {Array<keyof types>} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n  /**\n   * @constructor\n   * @param {string} property\n   * @param {string} attribute\n   * @param {number|null} [mask]\n   * @param {string} [space]\n   */\n  constructor(property, attribute, mask, space) {\n    let index = -1\n\n    super(property, attribute)\n\n    mark(this, 'space', space)\n\n    if (typeof mask === 'number') {\n      while (++index < checks.length) {\n        const check = checks[index]\n        mark(this, checks[index], (mask & types[check]) === types[check])\n      }\n    }\n  }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n  if (value) {\n    // @ts-expect-error: assume `value` matches the expected value of `key`.\n    values[key] = value\n  }\n}\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record<string, string>} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record<string, number|null>} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array<string>} [mustUseProperty]\n */\n\nimport {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nexport function create(definition) {\n  /** @type {Properties} */\n  const property = {}\n  /** @type {Normal} */\n  const normal = {}\n  /** @type {string} */\n  let prop\n\n  for (prop in definition.properties) {\n    if (own.call(definition.properties, prop)) {\n      const value = definition.properties[prop]\n      const info = new DefinedInfo(\n        prop,\n        definition.transform(definition.attributes || {}, prop),\n        value,\n        definition.space\n      )\n\n      if (\n        definition.mustUseProperty &&\n        definition.mustUseProperty.includes(prop)\n      ) {\n        info.mustUseProperty = true\n      }\n\n      property[prop] = info\n\n      normal[normalize(prop)] = prop\n      normal[normalize(info.attribute)] = prop\n    }\n  }\n\n  return new Schema(property, normal, definition.space)\n}\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n  space: 'xlink',\n  transform(_, prop) {\n    return 'xlink:' + prop.slice(5).toLowerCase()\n  },\n  properties: {\n    xLinkActuate: null,\n    xLinkArcRole: null,\n    xLinkHref: null,\n    xLinkRole: null,\n    xLinkShow: null,\n    xLinkTitle: null,\n    xLinkType: null\n  }\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n  space: 'xml',\n  transform(_, prop) {\n    return 'xml:' + prop.slice(3).toLowerCase()\n  },\n  properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n","/**\n * @param {Record<string, string>} attributes\n * @param {string} attribute\n * @returns {string}\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n  return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n  return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n  space: 'xmlns',\n  attributes: {xmlnsxlink: 'xmlns:xlink'},\n  transform: caseInsensitiveTransform,\n  properties: {xmlns: null, xmlnsXLink: null}\n})\n","import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport const aria = create({\n  transform(_, prop) {\n    return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n  },\n  properties: {\n    ariaActiveDescendant: null,\n    ariaAtomic: booleanish,\n    ariaAutoComplete: null,\n    ariaBusy: booleanish,\n    ariaChecked: booleanish,\n    ariaColCount: number,\n    ariaColIndex: number,\n    ariaColSpan: number,\n    ariaControls: spaceSeparated,\n    ariaCurrent: null,\n    ariaDescribedBy: spaceSeparated,\n    ariaDetails: null,\n    ariaDisabled: booleanish,\n    ariaDropEffect: spaceSeparated,\n    ariaErrorMessage: null,\n    ariaExpanded: booleanish,\n    ariaFlowTo: spaceSeparated,\n    ariaGrabbed: booleanish,\n    ariaHasPopup: null,\n    ariaHidden: booleanish,\n    ariaInvalid: null,\n    ariaKeyShortcuts: null,\n    ariaLabel: null,\n    ariaLabelledBy: spaceSeparated,\n    ariaLevel: number,\n    ariaLive: null,\n    ariaModal: booleanish,\n    ariaMultiLine: booleanish,\n    ariaMultiSelectable: booleanish,\n    ariaOrientation: null,\n    ariaOwns: spaceSeparated,\n    ariaPlaceholder: null,\n    ariaPosInSet: number,\n    ariaPressed: booleanish,\n    ariaReadOnly: booleanish,\n    ariaRelevant: null,\n    ariaRequired: booleanish,\n    ariaRoleDescription: spaceSeparated,\n    ariaRowCount: number,\n    ariaRowIndex: number,\n    ariaRowSpan: number,\n    ariaSelected: booleanish,\n    ariaSetSize: number,\n    ariaSort: null,\n    ariaValueMax: number,\n    ariaValueMin: number,\n    ariaValueNow: number,\n    ariaValueText: null,\n    role: null\n  }\n})\n","import {\n  boolean,\n  overloadedBoolean,\n  booleanish,\n  number,\n  spaceSeparated,\n  commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const html = create({\n  space: 'html',\n  attributes: {\n    acceptcharset: 'accept-charset',\n    classname: 'class',\n    htmlfor: 'for',\n    httpequiv: 'http-equiv'\n  },\n  transform: caseInsensitiveTransform,\n  mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n  properties: {\n    // Standard Properties.\n    abbr: null,\n    accept: commaSeparated,\n    acceptCharset: spaceSeparated,\n    accessKey: spaceSeparated,\n    action: null,\n    allow: null,\n    allowFullScreen: boolean,\n    allowPaymentRequest: boolean,\n    allowUserMedia: boolean,\n    alt: null,\n    as: null,\n    async: boolean,\n    autoCapitalize: null,\n    autoComplete: spaceSeparated,\n    autoFocus: boolean,\n    autoPlay: boolean,\n    blocking: spaceSeparated,\n    capture: null,\n    charSet: null,\n    checked: boolean,\n    cite: null,\n    className: spaceSeparated,\n    cols: number,\n    colSpan: null,\n    content: null,\n    contentEditable: booleanish,\n    controls: boolean,\n    controlsList: spaceSeparated,\n    coords: number | commaSeparated,\n    crossOrigin: null,\n    data: null,\n    dateTime: null,\n    decoding: null,\n    default: boolean,\n    defer: boolean,\n    dir: null,\n    dirName: null,\n    disabled: boolean,\n    download: overloadedBoolean,\n    draggable: booleanish,\n    encType: null,\n    enterKeyHint: null,\n    fetchPriority: null,\n    form: null,\n    formAction: null,\n    formEncType: null,\n    formMethod: null,\n    formNoValidate: boolean,\n    formTarget: null,\n    headers: spaceSeparated,\n    height: number,\n    hidden: boolean,\n    high: number,\n    href: null,\n    hrefLang: null,\n    htmlFor: spaceSeparated,\n    httpEquiv: spaceSeparated,\n    id: null,\n    imageSizes: null,\n    imageSrcSet: null,\n    inert: boolean,\n    inputMode: null,\n    integrity: null,\n    is: null,\n    isMap: boolean,\n    itemId: null,\n    itemProp: spaceSeparated,\n    itemRef: spaceSeparated,\n    itemScope: boolean,\n    itemType: spaceSeparated,\n    kind: null,\n    label: null,\n    lang: null,\n    language: null,\n    list: null,\n    loading: null,\n    loop: boolean,\n    low: number,\n    manifest: null,\n    max: null,\n    maxLength: number,\n    media: null,\n    method: null,\n    min: null,\n    minLength: number,\n    multiple: boolean,\n    muted: boolean,\n    name: null,\n    nonce: null,\n    noModule: boolean,\n    noValidate: boolean,\n    onAbort: null,\n    onAfterPrint: null,\n    onAuxClick: null,\n    onBeforeMatch: null,\n    onBeforePrint: null,\n    onBeforeToggle: null,\n    onBeforeUnload: null,\n    onBlur: null,\n    onCancel: null,\n    onCanPlay: null,\n    onCanPlayThrough: null,\n    onChange: null,\n    onClick: null,\n    onClose: null,\n    onContextLost: null,\n    onContextMenu: null,\n    onContextRestored: null,\n    onCopy: null,\n    onCueChange: null,\n    onCut: null,\n    onDblClick: null,\n    onDrag: null,\n    onDragEnd: null,\n    onDragEnter: null,\n    onDragExit: null,\n    onDragLeave: null,\n    onDragOver: null,\n    onDragStart: null,\n    onDrop: null,\n    onDurationChange: null,\n    onEmptied: null,\n    onEnded: null,\n    onError: null,\n    onFocus: null,\n    onFormData: null,\n    onHashChange: null,\n    onInput: null,\n    onInvalid: null,\n    onKeyDown: null,\n    onKeyPress: null,\n    onKeyUp: null,\n    onLanguageChange: null,\n    onLoad: null,\n    onLoadedData: null,\n    onLoadedMetadata: null,\n    onLoadEnd: null,\n    onLoadStart: null,\n    onMessage: null,\n    onMessageError: null,\n    onMouseDown: null,\n    onMouseEnter: null,\n    onMouseLeave: null,\n    onMouseMove: null,\n    onMouseOut: null,\n    onMouseOver: null,\n    onMouseUp: null,\n    onOffline: null,\n    onOnline: null,\n    onPageHide: null,\n    onPageShow: null,\n    onPaste: null,\n    onPause: null,\n    onPlay: null,\n    onPlaying: null,\n    onPopState: null,\n    onProgress: null,\n    onRateChange: null,\n    onRejectionHandled: null,\n    onReset: null,\n    onResize: null,\n    onScroll: null,\n    onScrollEnd: null,\n    onSecurityPolicyViolation: null,\n    onSeeked: null,\n    onSeeking: null,\n    onSelect: null,\n    onSlotChange: null,\n    onStalled: null,\n    onStorage: null,\n    onSubmit: null,\n    onSuspend: null,\n    onTimeUpdate: null,\n    onToggle: null,\n    onUnhandledRejection: null,\n    onUnload: null,\n    onVolumeChange: null,\n    onWaiting: null,\n    onWheel: null,\n    open: boolean,\n    optimum: number,\n    pattern: null,\n    ping: spaceSeparated,\n    placeholder: null,\n    playsInline: boolean,\n    popover: null,\n    popoverTarget: null,\n    popoverTargetAction: null,\n    poster: null,\n    preload: null,\n    readOnly: boolean,\n    referrerPolicy: null,\n    rel: spaceSeparated,\n    required: boolean,\n    reversed: boolean,\n    rows: number,\n    rowSpan: number,\n    sandbox: spaceSeparated,\n    scope: null,\n    scoped: boolean,\n    seamless: boolean,\n    selected: boolean,\n    shadowRootClonable: boolean,\n    shadowRootDelegatesFocus: boolean,\n    shadowRootMode: null,\n    shape: null,\n    size: number,\n    sizes: null,\n    slot: null,\n    span: number,\n    spellCheck: booleanish,\n    src: null,\n    srcDoc: null,\n    srcLang: null,\n    srcSet: null,\n    start: number,\n    step: null,\n    style: null,\n    tabIndex: number,\n    target: null,\n    title: null,\n    translate: null,\n    type: null,\n    typeMustMatch: boolean,\n    useMap: null,\n    value: booleanish,\n    width: number,\n    wrap: null,\n    writingSuggestions: null,\n\n    // Legacy.\n    // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n    align: null, // Several. Use CSS `text-align` instead,\n    aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n    archive: spaceSeparated, // `<object>`. List of URIs to archives\n    axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n    background: null, // `<body>`. Use CSS `background-image` instead\n    bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n    border: number, // `<table>`. Use CSS `border-width` instead,\n    borderColor: null, // `<table>`. Use CSS `border-color` instead,\n    bottomMargin: number, // `<body>`\n    cellPadding: null, // `<table>`\n    cellSpacing: null, // `<table>`\n    char: null, // Several table elements. When `align=char`, sets the character to align on\n    charOff: null, // Several table elements. When `char`, offsets the alignment\n    classId: null, // `<object>`\n    clear: null, // `<br>`. Use CSS `clear` instead\n    code: null, // `<object>`\n    codeBase: null, // `<object>`\n    codeType: null, // `<object>`\n    color: null, // `<font>` and `<hr>`. Use CSS instead\n    compact: boolean, // Lists. Use CSS to reduce space between items instead\n    declare: boolean, // `<object>`\n    event: null, // `<script>`\n    face: null, // `<font>`. Use CSS instead\n    frame: null, // `<table>`\n    frameBorder: null, // `<iframe>`. Use CSS `border` instead\n    hSpace: number, // `<img>` and `<object>`\n    leftMargin: number, // `<body>`\n    link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n    longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n    lowSrc: null, // `<img>`. Use a `<picture>`\n    marginHeight: number, // `<body>`\n    marginWidth: number, // `<body>`\n    noResize: boolean, // `<frame>`\n    noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n    noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n    noWrap: boolean, // `<td>` and `<th>`\n    object: null, // `<applet>`\n    profile: null, // `<head>`\n    prompt: null, // `<isindex>`\n    rev: null, // `<link>`\n    rightMargin: number, // `<body>`\n    rules: null, // `<table>`\n    scheme: null, // `<meta>`\n    scrolling: booleanish, // `<frame>`. Use overflow in the child context\n    standby: null, // `<object>`\n    summary: null, // `<table>`\n    text: null, // `<body>`. Use CSS `color` instead\n    topMargin: number, // `<body>`\n    valueType: null, // `<param>`\n    version: null, // `<html>`. Use a doctype.\n    vAlign: null, // Several. Use CSS `vertical-align` instead\n    vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n    vSpace: number, // `<img>` and `<object>`\n\n    // Non-standard Properties.\n    allowTransparency: null,\n    autoCorrect: null,\n    autoSave: null,\n    disablePictureInPicture: boolean,\n    disableRemotePlayback: boolean,\n    prefix: null,\n    property: null,\n    results: number,\n    security: null,\n    unselectable: null\n  }\n})\n","import {\n  boolean,\n  number,\n  spaceSeparated,\n  commaSeparated,\n  commaOrSpaceSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseSensitiveTransform} from './util/case-sensitive-transform.js'\n\nexport const svg = create({\n  space: 'svg',\n  attributes: {\n    accentHeight: 'accent-height',\n    alignmentBaseline: 'alignment-baseline',\n    arabicForm: 'arabic-form',\n    baselineShift: 'baseline-shift',\n    capHeight: 'cap-height',\n    className: 'class',\n    clipPath: 'clip-path',\n    clipRule: 'clip-rule',\n    colorInterpolation: 'color-interpolation',\n    colorInterpolationFilters: 'color-interpolation-filters',\n    colorProfile: 'color-profile',\n    colorRendering: 'color-rendering',\n    crossOrigin: 'crossorigin',\n    dataType: 'datatype',\n    dominantBaseline: 'dominant-baseline',\n    enableBackground: 'enable-background',\n    fillOpacity: 'fill-opacity',\n    fillRule: 'fill-rule',\n    floodColor: 'flood-color',\n    floodOpacity: 'flood-opacity',\n    fontFamily: 'font-family',\n    fontSize: 'font-size',\n    fontSizeAdjust: 'font-size-adjust',\n    fontStretch: 'font-stretch',\n    fontStyle: 'font-style',\n    fontVariant: 'font-variant',\n    fontWeight: 'font-weight',\n    glyphName: 'glyph-name',\n    glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n    glyphOrientationVertical: 'glyph-orientation-vertical',\n    hrefLang: 'hreflang',\n    horizAdvX: 'horiz-adv-x',\n    horizOriginX: 'horiz-origin-x',\n    horizOriginY: 'horiz-origin-y',\n    imageRendering: 'image-rendering',\n    letterSpacing: 'letter-spacing',\n    lightingColor: 'lighting-color',\n    markerEnd: 'marker-end',\n    markerMid: 'marker-mid',\n    markerStart: 'marker-start',\n    navDown: 'nav-down',\n    navDownLeft: 'nav-down-left',\n    navDownRight: 'nav-down-right',\n    navLeft: 'nav-left',\n    navNext: 'nav-next',\n    navPrev: 'nav-prev',\n    navRight: 'nav-right',\n    navUp: 'nav-up',\n    navUpLeft: 'nav-up-left',\n    navUpRight: 'nav-up-right',\n    onAbort: 'onabort',\n    onActivate: 'onactivate',\n    onAfterPrint: 'onafterprint',\n    onBeforePrint: 'onbeforeprint',\n    onBegin: 'onbegin',\n    onCancel: 'oncancel',\n    onCanPlay: 'oncanplay',\n    onCanPlayThrough: 'oncanplaythrough',\n    onChange: 'onchange',\n    onClick: 'onclick',\n    onClose: 'onclose',\n    onCopy: 'oncopy',\n    onCueChange: 'oncuechange',\n    onCut: 'oncut',\n    onDblClick: 'ondblclick',\n    onDrag: 'ondrag',\n    onDragEnd: 'ondragend',\n    onDragEnter: 'ondragenter',\n    onDragExit: 'ondragexit',\n    onDragLeave: 'ondragleave',\n    onDragOver: 'ondragover',\n    onDragStart: 'ondragstart',\n    onDrop: 'ondrop',\n    onDurationChange: 'ondurationchange',\n    onEmptied: 'onemptied',\n    onEnd: 'onend',\n    onEnded: 'onended',\n    onError: 'onerror',\n    onFocus: 'onfocus',\n    onFocusIn: 'onfocusin',\n    onFocusOut: 'onfocusout',\n    onHashChange: 'onhashchange',\n    onInput: 'oninput',\n    onInvalid: 'oninvalid',\n    onKeyDown: 'onkeydown',\n    onKeyPress: 'onkeypress',\n    onKeyUp: 'onkeyup',\n    onLoad: 'onload',\n    onLoadedData: 'onloadeddata',\n    onLoadedMetadata: 'onloadedmetadata',\n    onLoadStart: 'onloadstart',\n    onMessage: 'onmessage',\n    onMouseDown: 'onmousedown',\n    onMouseEnter: 'onmouseenter',\n    onMouseLeave: 'onmouseleave',\n    onMouseMove: 'onmousemove',\n    onMouseOut: 'onmouseout',\n    onMouseOver: 'onmouseover',\n    onMouseUp: 'onmouseup',\n    onMouseWheel: 'onmousewheel',\n    onOffline: 'onoffline',\n    onOnline: 'ononline',\n    onPageHide: 'onpagehide',\n    onPageShow: 'onpageshow',\n    onPaste: 'onpaste',\n    onPause: 'onpause',\n    onPlay: 'onplay',\n    onPlaying: 'onplaying',\n    onPopState: 'onpopstate',\n    onProgress: 'onprogress',\n    onRateChange: 'onratechange',\n    onRepeat: 'onrepeat',\n    onReset: 'onreset',\n    onResize: 'onresize',\n    onScroll: 'onscroll',\n    onSeeked: 'onseeked',\n    onSeeking: 'onseeking',\n    onSelect: 'onselect',\n    onShow: 'onshow',\n    onStalled: 'onstalled',\n    onStorage: 'onstorage',\n    onSubmit: 'onsubmit',\n    onSuspend: 'onsuspend',\n    onTimeUpdate: 'ontimeupdate',\n    onToggle: 'ontoggle',\n    onUnload: 'onunload',\n    onVolumeChange: 'onvolumechange',\n    onWaiting: 'onwaiting',\n    onZoom: 'onzoom',\n    overlinePosition: 'overline-position',\n    overlineThickness: 'overline-thickness',\n    paintOrder: 'paint-order',\n    panose1: 'panose-1',\n    pointerEvents: 'pointer-events',\n    referrerPolicy: 'referrerpolicy',\n    renderingIntent: 'rendering-intent',\n    shapeRendering: 'shape-rendering',\n    stopColor: 'stop-color',\n    stopOpacity: 'stop-opacity',\n    strikethroughPosition: 'strikethrough-position',\n    strikethroughThickness: 'strikethrough-thickness',\n    strokeDashArray: 'stroke-dasharray',\n    strokeDashOffset: 'stroke-dashoffset',\n    strokeLineCap: 'stroke-linecap',\n    strokeLineJoin: 'stroke-linejoin',\n    strokeMiterLimit: 'stroke-miterlimit',\n    strokeOpacity: 'stroke-opacity',\n    strokeWidth: 'stroke-width',\n    tabIndex: 'tabindex',\n    textAnchor: 'text-anchor',\n    textDecoration: 'text-decoration',\n    textRendering: 'text-rendering',\n    transformOrigin: 'transform-origin',\n    typeOf: 'typeof',\n    underlinePosition: 'underline-position',\n    underlineThickness: 'underline-thickness',\n    unicodeBidi: 'unicode-bidi',\n    unicodeRange: 'unicode-range',\n    unitsPerEm: 'units-per-em',\n    vAlphabetic: 'v-alphabetic',\n    vHanging: 'v-hanging',\n    vIdeographic: 'v-ideographic',\n    vMathematical: 'v-mathematical',\n    vectorEffect: 'vector-effect',\n    vertAdvY: 'vert-adv-y',\n    vertOriginX: 'vert-origin-x',\n    vertOriginY: 'vert-origin-y',\n    wordSpacing: 'word-spacing',\n    writingMode: 'writing-mode',\n    xHeight: 'x-height',\n    // These were camelcased in Tiny. Now lowercased in SVG 2\n    playbackOrder: 'playbackorder',\n    timelineBegin: 'timelinebegin'\n  },\n  transform: caseSensitiveTransform,\n  properties: {\n    about: commaOrSpaceSeparated,\n    accentHeight: number,\n    accumulate: null,\n    additive: null,\n    alignmentBaseline: null,\n    alphabetic: number,\n    amplitude: number,\n    arabicForm: null,\n    ascent: number,\n    attributeName: null,\n    attributeType: null,\n    azimuth: number,\n    bandwidth: null,\n    baselineShift: null,\n    baseFrequency: null,\n    baseProfile: null,\n    bbox: null,\n    begin: null,\n    bias: number,\n    by: null,\n    calcMode: null,\n    capHeight: number,\n    className: spaceSeparated,\n    clip: null,\n    clipPath: null,\n    clipPathUnits: null,\n    clipRule: null,\n    color: null,\n    colorInterpolation: null,\n    colorInterpolationFilters: null,\n    colorProfile: null,\n    colorRendering: null,\n    content: null,\n    contentScriptType: null,\n    contentStyleType: null,\n    crossOrigin: null,\n    cursor: null,\n    cx: null,\n    cy: null,\n    d: null,\n    dataType: null,\n    defaultAction: null,\n    descent: number,\n    diffuseConstant: number,\n    direction: null,\n    display: null,\n    dur: null,\n    divisor: number,\n    dominantBaseline: null,\n    download: boolean,\n    dx: null,\n    dy: null,\n    edgeMode: null,\n    editable: null,\n    elevation: number,\n    enableBackground: null,\n    end: null,\n    event: null,\n    exponent: number,\n    externalResourcesRequired: null,\n    fill: null,\n    fillOpacity: number,\n    fillRule: null,\n    filter: null,\n    filterRes: null,\n    filterUnits: null,\n    floodColor: null,\n    floodOpacity: null,\n    focusable: null,\n    focusHighlight: null,\n    fontFamily: null,\n    fontSize: null,\n    fontSizeAdjust: null,\n    fontStretch: null,\n    fontStyle: null,\n    fontVariant: null,\n    fontWeight: null,\n    format: null,\n    fr: null,\n    from: null,\n    fx: null,\n    fy: null,\n    g1: commaSeparated,\n    g2: commaSeparated,\n    glyphName: commaSeparated,\n    glyphOrientationHorizontal: null,\n    glyphOrientationVertical: null,\n    glyphRef: null,\n    gradientTransform: null,\n    gradientUnits: null,\n    handler: null,\n    hanging: number,\n    hatchContentUnits: null,\n    hatchUnits: null,\n    height: null,\n    href: null,\n    hrefLang: null,\n    horizAdvX: number,\n    horizOriginX: number,\n    horizOriginY: number,\n    id: null,\n    ideographic: number,\n    imageRendering: null,\n    initialVisibility: null,\n    in: null,\n    in2: null,\n    intercept: number,\n    k: number,\n    k1: number,\n    k2: number,\n    k3: number,\n    k4: number,\n    kernelMatrix: commaOrSpaceSeparated,\n    kernelUnitLength: null,\n    keyPoints: null, // SEMI_COLON_SEPARATED\n    keySplines: null, // SEMI_COLON_SEPARATED\n    keyTimes: null, // SEMI_COLON_SEPARATED\n    kerning: null,\n    lang: null,\n    lengthAdjust: null,\n    letterSpacing: null,\n    lightingColor: null,\n    limitingConeAngle: number,\n    local: null,\n    markerEnd: null,\n    markerMid: null,\n    markerStart: null,\n    markerHeight: null,\n    markerUnits: null,\n    markerWidth: null,\n    mask: null,\n    maskContentUnits: null,\n    maskUnits: null,\n    mathematical: null,\n    max: null,\n    media: null,\n    mediaCharacterEncoding: null,\n    mediaContentEncodings: null,\n    mediaSize: number,\n    mediaTime: null,\n    method: null,\n    min: null,\n    mode: null,\n    name: null,\n    navDown: null,\n    navDownLeft: null,\n    navDownRight: null,\n    navLeft: null,\n    navNext: null,\n    navPrev: null,\n    navRight: null,\n    navUp: null,\n    navUpLeft: null,\n    navUpRight: null,\n    numOctaves: null,\n    observer: null,\n    offset: null,\n    onAbort: null,\n    onActivate: null,\n    onAfterPrint: null,\n    onBeforePrint: null,\n    onBegin: null,\n    onCancel: null,\n    onCanPlay: null,\n    onCanPlayThrough: null,\n    onChange: null,\n    onClick: null,\n    onClose: null,\n    onCopy: null,\n    onCueChange: null,\n    onCut: null,\n    onDblClick: null,\n    onDrag: null,\n    onDragEnd: null,\n    onDragEnter: null,\n    onDragExit: null,\n    onDragLeave: null,\n    onDragOver: null,\n    onDragStart: null,\n    onDrop: null,\n    onDurationChange: null,\n    onEmptied: null,\n    onEnd: null,\n    onEnded: null,\n    onError: null,\n    onFocus: null,\n    onFocusIn: null,\n    onFocusOut: null,\n    onHashChange: null,\n    onInput: null,\n    onInvalid: null,\n    onKeyDown: null,\n    onKeyPress: null,\n    onKeyUp: null,\n    onLoad: null,\n    onLoadedData: null,\n    onLoadedMetadata: null,\n    onLoadStart: null,\n    onMessage: null,\n    onMouseDown: null,\n    onMouseEnter: null,\n    onMouseLeave: null,\n    onMouseMove: null,\n    onMouseOut: null,\n    onMouseOver: null,\n    onMouseUp: null,\n    onMouseWheel: null,\n    onOffline: null,\n    onOnline: null,\n    onPageHide: null,\n    onPageShow: null,\n    onPaste: null,\n    onPause: null,\n    onPlay: null,\n    onPlaying: null,\n    onPopState: null,\n    onProgress: null,\n    onRateChange: null,\n    onRepeat: null,\n    onReset: null,\n    onResize: null,\n    onScroll: null,\n    onSeeked: null,\n    onSeeking: null,\n    onSelect: null,\n    onShow: null,\n    onStalled: null,\n    onStorage: null,\n    onSubmit: null,\n    onSuspend: null,\n    onTimeUpdate: null,\n    onToggle: null,\n    onUnload: null,\n    onVolumeChange: null,\n    onWaiting: null,\n    onZoom: null,\n    opacity: null,\n    operator: null,\n    order: null,\n    orient: null,\n    orientation: null,\n    origin: null,\n    overflow: null,\n    overlay: null,\n    overlinePosition: number,\n    overlineThickness: number,\n    paintOrder: null,\n    panose1: null,\n    path: null,\n    pathLength: number,\n    patternContentUnits: null,\n    patternTransform: null,\n    patternUnits: null,\n    phase: null,\n    ping: spaceSeparated,\n    pitch: null,\n    playbackOrder: null,\n    pointerEvents: null,\n    points: null,\n    pointsAtX: number,\n    pointsAtY: number,\n    pointsAtZ: number,\n    preserveAlpha: null,\n    preserveAspectRatio: null,\n    primitiveUnits: null,\n    propagate: null,\n    property: commaOrSpaceSeparated,\n    r: null,\n    radius: null,\n    referrerPolicy: null,\n    refX: null,\n    refY: null,\n    rel: commaOrSpaceSeparated,\n    rev: commaOrSpaceSeparated,\n    renderingIntent: null,\n    repeatCount: null,\n    repeatDur: null,\n    requiredExtensions: commaOrSpaceSeparated,\n    requiredFeatures: commaOrSpaceSeparated,\n    requiredFonts: commaOrSpaceSeparated,\n    requiredFormats: commaOrSpaceSeparated,\n    resource: null,\n    restart: null,\n    result: null,\n    rotate: null,\n    rx: null,\n    ry: null,\n    scale: null,\n    seed: null,\n    shapeRendering: null,\n    side: null,\n    slope: null,\n    snapshotTime: null,\n    specularConstant: number,\n    specularExponent: number,\n    spreadMethod: null,\n    spacing: null,\n    startOffset: null,\n    stdDeviation: null,\n    stemh: null,\n    stemv: null,\n    stitchTiles: null,\n    stopColor: null,\n    stopOpacity: null,\n    strikethroughPosition: number,\n    strikethroughThickness: number,\n    string: null,\n    stroke: null,\n    strokeDashArray: commaOrSpaceSeparated,\n    strokeDashOffset: null,\n    strokeLineCap: null,\n    strokeLineJoin: null,\n    strokeMiterLimit: number,\n    strokeOpacity: number,\n    strokeWidth: null,\n    style: null,\n    surfaceScale: number,\n    syncBehavior: null,\n    syncBehaviorDefault: null,\n    syncMaster: null,\n    syncTolerance: null,\n    syncToleranceDefault: null,\n    systemLanguage: commaOrSpaceSeparated,\n    tabIndex: number,\n    tableValues: null,\n    target: null,\n    targetX: number,\n    targetY: number,\n    textAnchor: null,\n    textDecoration: null,\n    textRendering: null,\n    textLength: null,\n    timelineBegin: null,\n    title: null,\n    transformBehavior: null,\n    type: null,\n    typeOf: commaOrSpaceSeparated,\n    to: null,\n    transform: null,\n    transformOrigin: null,\n    u1: null,\n    u2: null,\n    underlinePosition: number,\n    underlineThickness: number,\n    unicode: null,\n    unicodeBidi: null,\n    unicodeRange: null,\n    unitsPerEm: number,\n    values: null,\n    vAlphabetic: number,\n    vMathematical: number,\n    vectorEffect: null,\n    vHanging: number,\n    vIdeographic: number,\n    version: null,\n    vertAdvY: number,\n    vertOriginX: number,\n    vertOriginY: number,\n    viewBox: null,\n    viewTarget: null,\n    visibility: null,\n    width: null,\n    widths: null,\n    wordSpacing: null,\n    writingMode: null,\n    x: null,\n    x1: null,\n    x2: null,\n    xChannelSelector: null,\n    xHeight: number,\n    y: null,\n    y1: null,\n    y2: null,\n    yChannelSelector: null,\n    z: null,\n    zoomAndPan: null\n  }\n})\n","/**\n * @typedef {import('./lib/util/info.js').Info} Info\n * @typedef {import('./lib/util/schema.js').Schema} Schema\n */\n\nimport {merge} from './lib/util/merge.js'\nimport {xlink} from './lib/xlink.js'\nimport {xml} from './lib/xml.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\n\nexport {find} from './lib/find.js'\nexport {hastToReact} from './lib/hast-to-react.js'\nexport {normalize} from './lib/normalize.js'\nexport const html = merge([xml, xlink, xmlns, aria, htmlBase], 'html')\nexport const svg = merge([xml, xlink, xmlns, aria, svgBase], 'svg')\n","/**\n * @typedef {import('./util/schema.js').Schema} Schema\n */\n\nimport {normalize} from './normalize.js'\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\n\nconst valid = /^data[-\\w.:]+$/i\nconst dash = /-[a-z]/g\nconst cap = /[A-Z]/g\n\n/**\n * @param {Schema} schema\n * @param {string} value\n * @returns {Info}\n */\nexport function find(schema, value) {\n  const normal = normalize(value)\n  let prop = value\n  let Type = Info\n\n  if (normal in schema.normal) {\n    return schema.property[schema.normal[normal]]\n  }\n\n  if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n    // Attribute or property.\n    if (value.charAt(4) === '-') {\n      // Turn it into a property.\n      const rest = value.slice(5).replace(dash, camelcase)\n      prop = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)\n    } else {\n      // Turn it into an attribute.\n      const rest = value.slice(4)\n\n      if (!dash.test(rest)) {\n        let dashes = rest.replace(cap, kebab)\n\n        if (dashes.charAt(0) !== '-') {\n          dashes = '-' + dashes\n        }\n\n        value = 'data' + dashes\n      }\n    }\n\n    Type = DefinedInfo\n  }\n\n  return new Type(prop, value)\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction kebab($0) {\n  return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction camelcase($0) {\n  return $0.charAt(1).toUpperCase()\n}\n","/**\n * `hast` is close to `React`, but differs in a couple of cases.\n *\n * To get a React property from a hast property, check if it is in\n * `hastToReact`, if it is, then use the corresponding value,\n * otherwise, use the hast property.\n *\n * @type {Record<string, string>}\n */\nexport const hastToReact = {\n  classId: 'classID',\n  dataType: 'datatype',\n  itemId: 'itemID',\n  strokeDashArray: 'strokeDasharray',\n  strokeDashOffset: 'strokeDashoffset',\n  strokeLineCap: 'strokeLinecap',\n  strokeLineJoin: 'strokeLinejoin',\n  strokeMiterLimit: 'strokeMiterlimit',\n  typeOf: 'typeof',\n  xLinkActuate: 'xlinkActuate',\n  xLinkArcRole: 'xlinkArcrole',\n  xLinkHref: 'xlinkHref',\n  xLinkRole: 'xlinkRole',\n  xLinkShow: 'xlinkShow',\n  xLinkTitle: 'xlinkTitle',\n  xLinkType: 'xlinkType',\n  xmlnsXLink: 'xmlnsXlink'\n}\n","import StyleToObject from '../cjs/index.js';\n\n// ensure compatibility with rollup umd build\nexport default StyleToObject.default || StyleToObject;\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Get the ending point of `node`.\n *\n * @param node\n *   Node.\n * @returns\n *   Point.\n */\nexport const pointEnd = point('end')\n\n/**\n * Get the starting point of `node`.\n *\n * @param node\n *   Node.\n * @returns\n *   Point.\n */\nexport const pointStart = point('start')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'end' | 'start'} type\n *   Side.\n * @returns\n *   Getter.\n */\nfunction point(type) {\n  return point\n\n  /**\n   * Get the point info of `node` at a bound side.\n   *\n   * @param {Node | NodeLike | null | undefined} [node]\n   * @returns {Point | undefined}\n   */\n  function point(node) {\n    const point = (node && node.position && node.position[type]) || {}\n\n    if (\n      typeof point.line === 'number' &&\n      point.line > 0 &&\n      typeof point.column === 'number' &&\n      point.column > 0\n    ) {\n      return {\n        line: point.line,\n        column: point.column,\n        offset:\n          typeof point.offset === 'number' && point.offset > -1\n            ? point.offset\n            : undefined\n      }\n    }\n  }\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {Node | NodeLike | null | undefined} [node]\n *   Node.\n * @returns {Position | undefined}\n *   Position.\n */\nexport function position(node) {\n  const start = pointStart(node)\n  const end = pointEnd(node)\n\n  if (start && end) {\n    return {start, end}\n  }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n */\n\n/**\n * Serialize the positional info of a point, position (start and end points),\n * or node.\n *\n * @param {Node | NodeLike | Point | PointLike | Position | PositionLike | null | undefined} [value]\n *   Node, position, or point.\n * @returns {string}\n *   Pretty printed positional info of a node (`string`).\n *\n *   In the format of a range `ls:cs-le:ce` (when given `node` or `position`)\n *   or a point `l:c` (when given `point`), where `l` stands for line, `c` for\n *   column, `s` for `start`, and `e` for end.\n *   An empty string (`''`) is returned if the given value is neither `node`,\n *   `position`, nor `point`.\n */\nexport function stringifyPosition(value) {\n  // Nothing.\n  if (!value || typeof value !== 'object') {\n    return ''\n  }\n\n  // Node.\n  if ('position' in value || 'type' in value) {\n    return position(value.position)\n  }\n\n  // Position.\n  if ('start' in value || 'end' in value) {\n    return position(value)\n  }\n\n  // Point.\n  if ('line' in value || 'column' in value) {\n    return point(value)\n  }\n\n  // ?\n  return ''\n}\n\n/**\n * @param {Point | PointLike | null | undefined} point\n * @returns {string}\n */\nfunction point(point) {\n  return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position | PositionLike | null | undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n  return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number | null | undefined} value\n * @returns {number}\n */\nfunction index(value) {\n  return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef Options\n *   Configuration.\n * @property {Array<Node> | null | undefined} [ancestors]\n *   Stack of (inclusive) ancestor nodes surrounding the message (optional).\n * @property {Error | null | undefined} [cause]\n *   Original error cause of the message (optional).\n * @property {Point | Position | null | undefined} [place]\n *   Place of message (optional).\n * @property {string | null | undefined} [ruleId]\n *   Category of message (optional, example: `'my-rule'`).\n * @property {string | null | undefined} [source]\n *   Namespace of who sent the message (optional, example: `'my-package'`).\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\n/**\n * Message.\n */\nexport class VFileMessage extends Error {\n  /**\n   * Create a message for `reason`.\n   *\n   * > 🪦 **Note**: also has obsolete signatures.\n   *\n   * @overload\n   * @param {string} reason\n   * @param {Options | null | undefined} [options]\n   * @returns\n   *\n   * @overload\n   * @param {string} reason\n   * @param {Node | NodeLike | null | undefined} parent\n   * @param {string | null | undefined} [origin]\n   * @returns\n   *\n   * @overload\n   * @param {string} reason\n   * @param {Point | Position | null | undefined} place\n   * @param {string | null | undefined} [origin]\n   * @returns\n   *\n   * @overload\n   * @param {string} reason\n   * @param {string | null | undefined} [origin]\n   * @returns\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {Node | NodeLike | null | undefined} parent\n   * @param {string | null | undefined} [origin]\n   * @returns\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {Point | Position | null | undefined} place\n   * @param {string | null | undefined} [origin]\n   * @returns\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {string | null | undefined} [origin]\n   * @returns\n   *\n   * @param {Error | VFileMessage | string} causeOrReason\n   *   Reason for message, should use markdown.\n   * @param {Node | NodeLike | Options | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n   *   Configuration (optional).\n   * @param {string | null | undefined} [origin]\n   *   Place in code where the message originates (example:\n   *   `'my-package:my-rule'` or `'my-rule'`).\n   * @returns\n   *   Instance of `VFileMessage`.\n   */\n  // eslint-disable-next-line complexity\n  constructor(causeOrReason, optionsOrParentOrPlace, origin) {\n    super()\n\n    if (typeof optionsOrParentOrPlace === 'string') {\n      origin = optionsOrParentOrPlace\n      optionsOrParentOrPlace = undefined\n    }\n\n    /** @type {string} */\n    let reason = ''\n    /** @type {Options} */\n    let options = {}\n    let legacyCause = false\n\n    if (optionsOrParentOrPlace) {\n      // Point.\n      if (\n        'line' in optionsOrParentOrPlace &&\n        'column' in optionsOrParentOrPlace\n      ) {\n        options = {place: optionsOrParentOrPlace}\n      }\n      // Position.\n      else if (\n        'start' in optionsOrParentOrPlace &&\n        'end' in optionsOrParentOrPlace\n      ) {\n        options = {place: optionsOrParentOrPlace}\n      }\n      // Node.\n      else if ('type' in optionsOrParentOrPlace) {\n        options = {\n          ancestors: [optionsOrParentOrPlace],\n          place: optionsOrParentOrPlace.position\n        }\n      }\n      // Options.\n      else {\n        options = {...optionsOrParentOrPlace}\n      }\n    }\n\n    if (typeof causeOrReason === 'string') {\n      reason = causeOrReason\n    }\n    // Error.\n    else if (!options.cause && causeOrReason) {\n      legacyCause = true\n      reason = causeOrReason.message\n      options.cause = causeOrReason\n    }\n\n    if (!options.ruleId && !options.source && typeof origin === 'string') {\n      const index = origin.indexOf(':')\n\n      if (index === -1) {\n        options.ruleId = origin\n      } else {\n        options.source = origin.slice(0, index)\n        options.ruleId = origin.slice(index + 1)\n      }\n    }\n\n    if (!options.place && options.ancestors && options.ancestors) {\n      const parent = options.ancestors[options.ancestors.length - 1]\n\n      if (parent) {\n        options.place = parent.position\n      }\n    }\n\n    const start =\n      options.place && 'start' in options.place\n        ? options.place.start\n        : options.place\n\n    /* eslint-disable no-unused-expressions */\n    /**\n     * Stack of ancestor nodes surrounding the message.\n     *\n     * @type {Array<Node> | undefined}\n     */\n    this.ancestors = options.ancestors || undefined\n\n    /**\n     * Original error cause of the message.\n     *\n     * @type {Error | undefined}\n     */\n    this.cause = options.cause || undefined\n\n    /**\n     * Starting column of message.\n     *\n     * @type {number | undefined}\n     */\n    this.column = start ? start.column : undefined\n\n    /**\n     * State of problem.\n     *\n     * * `true` — error, file not usable\n     * * `false` — warning, change may be needed\n     * * `undefined` — change likely not needed\n     *\n     * @type {boolean | null | undefined}\n     */\n    this.fatal = undefined\n\n    /**\n     * Path of a file (used throughout the `VFile` ecosystem).\n     *\n     * @type {string | undefined}\n     */\n    this.file\n\n    // Field from `Error`.\n    /**\n     * Reason for message.\n     *\n     * @type {string}\n     */\n    this.message = reason\n\n    /**\n     * Starting line of error.\n     *\n     * @type {number | undefined}\n     */\n    this.line = start ? start.line : undefined\n\n    // Field from `Error`.\n    /**\n     * Serialized positional info of message.\n     *\n     * On normal errors, this would be something like `ParseError`, buit in\n     * `VFile` messages we use this space to show where an error happened.\n     */\n    this.name = stringifyPosition(options.place) || '1:1'\n\n    /**\n     * Place of message.\n     *\n     * @type {Point | Position | undefined}\n     */\n    this.place = options.place || undefined\n\n    /**\n     * Reason for message, should use markdown.\n     *\n     * @type {string}\n     */\n    this.reason = this.message\n\n    /**\n     * Category of message (example: `'my-rule'`).\n     *\n     * @type {string | undefined}\n     */\n    this.ruleId = options.ruleId || undefined\n\n    /**\n     * Namespace of message (example: `'my-package'`).\n     *\n     * @type {string | undefined}\n     */\n    this.source = options.source || undefined\n\n    // Field from `Error`.\n    /**\n     * Stack of message.\n     *\n     * This is used by normal errors to show where something happened in\n     * programming code, irrelevant for `VFile` messages,\n     *\n     * @type {string}\n     */\n    this.stack =\n      legacyCause && options.cause && typeof options.cause.stack === 'string'\n        ? options.cause.stack\n        : ''\n\n    // The following fields are “well known”.\n    // Not standard.\n    // Feel free to add other non-standard fields to your messages.\n\n    /**\n     * Specify the source value that’s being reported, which is deemed\n     * incorrect.\n     *\n     * @type {string | undefined}\n     */\n    this.actual\n\n    /**\n     * Suggest acceptable values that can be used instead of `actual`.\n     *\n     * @type {Array<string> | undefined}\n     */\n    this.expected\n\n    /**\n     * Long form description of the message (you should use markdown).\n     *\n     * @type {string | undefined}\n     */\n    this.note\n\n    /**\n     * Link to docs for the message.\n     *\n     * > 👉 **Note**: this must be an absolute URL that can be passed as `x`\n     * > to `new URL(x)`.\n     *\n     * @type {string | undefined}\n     */\n    this.url\n    /* eslint-enable no-unused-expressions */\n  }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.column = undefined\nVFileMessage.prototype.line = undefined\nVFileMessage.prototype.ancestors = undefined\nVFileMessage.prototype.cause = undefined\nVFileMessage.prototype.fatal = undefined\nVFileMessage.prototype.place = undefined\nVFileMessage.prototype.ruleId = undefined\nVFileMessage.prototype.source = undefined\n","// Register MDX nodes in mdast:\n/// <reference types=\"mdast-util-mdx-expression\" />\n/// <reference types=\"mdast-util-mdx-jsx\" />\n/// <reference types=\"mdast-util-mdxjs-esm\" />\n\n/**\n * @typedef {import('estree').Identifier} Identifier\n * @typedef {import('estree').Literal} Literal\n * @typedef {import('estree').MemberExpression} MemberExpression\n * @typedef {import('estree').Expression} Expression\n * @typedef {import('estree').Program} Program\n *\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n *\n * @typedef {import('mdast-util-mdx-expression').MdxFlowExpressionHast} MdxFlowExpression\n * @typedef {import('mdast-util-mdx-expression').MdxTextExpressionHast} MdxTextExpression\n *\n * @typedef {import('mdast-util-mdx-jsx').MdxJsxFlowElementHast} MdxJsxFlowElement\n * @typedef {import('mdast-util-mdx-jsx').MdxJsxTextElementHast} MdxJsxTextElement\n *\n * @typedef {import('mdast-util-mdxjs-esm').MdxjsEsmHast} MdxjsEsm\n *\n * @typedef {import('property-information').Schema} Schema\n *\n * @typedef {import('unist').Position} Position\n *\n * @typedef {import('./components.js').Components} Components\n */\n\n/**\n * @typedef {JSX.Element | string | null | undefined} Child\n *   Child.\n *\n * @callback Create\n *   Create something in development or production.\n * @param {Nodes} node\n *   hast node.\n * @param {unknown} type\n *   Fragment symbol or tag name.\n * @param {Props} props\n *   Properties and children.\n * @param {string | undefined} key\n *   Key.\n * @returns {JSX.Element}\n *   Result.\n *\n * @callback CreateEvaluater\n *   Create an evaluator that turns ESTree ASTs from embedded MDX into values.\n * @returns {Evaluater}\n *   Evaluater.\n *\n * @typedef {'html' | 'react'} ElementAttributeNameCase\n *   Casing to use for attribute names.\n *\n *   HTML casing is for example `class`, `stroke-linecap`, `xml:lang`.\n *   React casing is for example `className`, `strokeLinecap`, `xmlLang`.\n *\n * @callback EvaluateExpression\n *   Turn an MDX expression into a value.\n * @param {Expression} expression\n *   ESTree expression.\n * @returns {unknown}\n *   Result of expression.\n *\n * @callback EvaluateProgram\n *   Turn an MDX program (export/import statements) into a value.\n * @param {Program} expression\n *   ESTree program.\n * @returns {unknown}\n *   Result of program;\n *   should likely be `undefined` as ESM changes the scope but doesn’t yield\n *   something.\n *\n * @typedef Evaluater\n *   Evaluator that turns ESTree ASTs from embedded MDX into values.\n * @property {EvaluateExpression} evaluateExpression\n *   Evaluate an expression.\n * @property {EvaluateProgram} evaluateProgram\n *   Evaluate a program.\n *\n * @typedef {[string, Value]} Field\n *   Property field.\n *\n * @typedef {unknown} Fragment\n *   Represent the children, typically a symbol.\n *\n * @callback Jsx\n *   Create a production element.\n * @param {unknown} type\n *   Element type: `Fragment` symbol, tag name (`string`), component.\n * @param {Props} props\n *   Element props, `children`, and maybe `node`.\n * @param {string | undefined} [key]\n *   Dynamicly generated key to use.\n * @returns {JSX.Element}\n *   Element from your framework.\n *\n * @callback JsxDev\n *   Create a development element.\n * @param {unknown} type\n *   Element type: `Fragment` symbol, tag name (`string`), component.\n * @param {Props} props\n *   Element props, `children`, and maybe `node`.\n * @param {string | undefined} key\n *   Dynamicly generated key to use.\n * @param {boolean} isStaticChildren\n *   Whether two or more children are passed (in an array), which is whether\n *   `jsxs` or `jsx` would be used.\n * @param {Source} source\n *   Info about source.\n * @param {undefined} self\n *   Nothing (this is used by frameworks that have components, we don’t).\n * @returns {JSX.Element}\n *   Element from your framework.\n *\n * @typedef {{children?: Array<Child> | Child, node?: Element | MdxJsxFlowElement | MdxJsxTextElement | undefined, [prop: string]: Array<Child> | Child | Element | MdxJsxFlowElement | MdxJsxTextElement | Value | undefined}} Props\n *   Properties and children.\n *\n * @typedef RegularFields\n *   Configuration.\n * @property {Partial<Components> | null | undefined} [components]\n *   Components to use (optional).\n * @property {CreateEvaluater | null | undefined} [createEvaluater]\n *   Create an evaluator that turns ESTree ASTs into values (optional).\n * @property {ElementAttributeNameCase | null | undefined} [elementAttributeNameCase='react']\n *   Specify casing to use for attribute names (default: `'react'`).\n * @property {string | null | undefined} [filePath]\n *   File path to the original source file (optional).\n *\n *   Passed in source info to `jsxDEV` when using the automatic runtime with\n *   `development: true`.\n * @property {boolean | null | undefined} [ignoreInvalidStyle=false]\n *   Ignore invalid CSS in `style` props (default: `false`);\n *   the default behavior is to throw an error.\n * @property {boolean | null | undefined} [passKeys=true]\n *   Generate keys to optimize frameworks that support them (default: `true`).\n *\n *   > 👉 **Note**: Solid currently fails if keys are passed.\n * @property {boolean | null | undefined} [passNode=false]\n *   Pass the hast element node to components (default: `false`).\n * @property {Space | null | undefined} [space='html']\n *   Whether `tree` is in the `'html'` or `'svg'` space (default: `'html'`).\n *\n *   When an `<svg>` element is found in the HTML space, this package already\n *   automatically switches to and from the SVG space when entering and exiting\n *   it.\n * @property {StylePropertyNameCase | null | undefined} [stylePropertyNameCase='dom']\n *   Specify casing to use for property names in `style` objects (default:\n *   `'dom'`).\n * @property {boolean | null | undefined} [tableCellAlignToStyle=true]\n *   Turn obsolete `align` props on `td` and `th` into CSS `style` props\n *   (default: `true`).\n *\n * @typedef RuntimeDevelopment\n *   Runtime fields when development is on.\n * @property {Fragment} Fragment\n *   Fragment.\n * @property {true} development\n *   Whether to use `jsxDEV` (when on) or `jsx` and `jsxs` (when off).\n * @property {Jsx | null | undefined} [jsx]\n *   Dynamic JSX (optional).\n * @property {JsxDev} jsxDEV\n *   Development JSX.\n * @property {Jsx | null | undefined} [jsxs]\n *   Static JSX (optional).\n *\n * @typedef RuntimeProduction\n *   Runtime fields when development is off.\n * @property {Fragment} Fragment\n *   Fragment.\n * @property {false | null | undefined} [development]\n *   Whether to use `jsxDEV` (when on) or `jsx` and `jsxs` (when off) (optional).\n * @property {Jsx} jsx\n *   Dynamic JSX.\n * @property {JsxDev | null | undefined} [jsxDEV]\n *   Development JSX (optional).\n * @property {Jsx} jsxs\n *   Static JSX.\n *\n * @typedef RuntimeUnknown\n *   Runtime fields when development might be on or off.\n * @property {Fragment} Fragment\n *   Fragment.\n * @property {boolean} development\n *   Whether to use `jsxDEV` (when on) or `jsx` and `jsxs` (when off).\n * @property {Jsx | null | undefined} [jsx]\n *   Dynamic JSX (optional).\n * @property {JsxDev | null | undefined} [jsxDEV]\n *   Development JSX (optional).\n * @property {Jsx | null | undefined} [jsxs]\n *   Static JSX (optional).\n *\n * @typedef Source\n *   Info about source.\n * @property {number | undefined} columnNumber\n *   Column where thing starts (0-indexed).\n * @property {string | undefined} fileName\n *   Name of source file.\n * @property {number | undefined} lineNumber\n *   Line where thing starts (1-indexed).\n *\n * @typedef {'html' | 'svg'} Space\n *   Namespace.\n *\n *   > 👉 **Note**: hast is not XML.\n *   > It supports SVG as embedded in HTML.\n *   > It does not support the features available in XML.\n *   > Passing SVG might break but fragments of modern SVG should be fine.\n *   > Use `xast` if you need to support SVG as XML.\n *\n * @typedef State\n *   Info passed around.\n * @property {unknown} Fragment\n *   Fragment symbol.\n * @property {Array<Parents>} ancestors\n *   Stack of parents.\n * @property {Partial<Components>} components\n *   Components to swap.\n * @property {Create} create\n *   Create something in development or production.\n * @property {ElementAttributeNameCase} elementAttributeNameCase\n *   Casing to use for attribute names.\n * @property {Evaluater | undefined} evaluater\n *   Evaluator that turns ESTree ASTs into values.\n * @property {string | undefined} filePath\n *   File path.\n * @property {boolean} ignoreInvalidStyle\n *   Ignore invalid CSS in `style` props.\n * @property {boolean} passKeys\n *   Generate keys to optimize frameworks that support them.\n * @property {boolean} passNode\n *   Pass `node` to components.\n * @property {Schema} schema\n *   Current schema.\n * @property {StylePropertyNameCase} stylePropertyNameCase\n *   Casing to use for property names in `style` objects.\n * @property {boolean} tableCellAlignToStyle\n *   Turn obsolete `align` props on `td` and `th` into CSS `style` props.\n *\n * @typedef {Record<string, string>} Style\n *   Style map.\n *\n * @typedef {'css' | 'dom'} StylePropertyNameCase\n *   Casing to use for property names in `style` objects.\n *\n *   CSS casing is for example `background-color` and `-webkit-line-clamp`.\n *   DOM casing is for example `backgroundColor` and `WebkitLineClamp`.\n *\n * @typedef {Style | boolean | number | string} Value\n *   Primitive property value and `Style` map.\n */\n\n/**\n * @typedef {RuntimeDevelopment & RegularFields} Development\n *   Configuration (development).\n * @typedef {Development | Production | Unknown} Options\n *   Configuration.\n * @typedef {RegularFields & RuntimeProduction} Production\n *   Configuration (production).\n * @typedef {RegularFields & RuntimeUnknown} Unknown\n *   Configuration (production or development).\n */\n\nimport {stringify as commas} from 'comma-separated-tokens'\nimport {ok as assert} from 'devlop'\nimport {name as isIdentifierName} from 'estree-util-is-identifier-name'\nimport {whitespace} from 'hast-util-whitespace'\nimport {find, hastToReact, html, svg} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport styleToObject from 'style-to-object'\nimport {pointStart} from 'unist-util-position'\nimport {VFileMessage} from 'vfile-message'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Map<string, number>} */\nconst emptyMap = new Map()\n\nconst cap = /[A-Z]/g\nconst dashSomething = /-([a-z])/g\n\n// `react-dom` triggers a warning for *any* white space in tables.\n// To follow GFM, `mdast-util-to-hast` injects line endings between elements.\n// Other tools might do so too, but they don’t do here, so we remove all of\n// that.\n\n// See: <https://github.com/facebook/react/pull/7081>.\n// See: <https://github.com/facebook/react/pull/7515>.\n// See: <https://github.com/remarkjs/remark-react/issues/64>.\n// See: <https://github.com/rehypejs/rehype-react/pull/29>.\n// See: <https://github.com/rehypejs/rehype-react/pull/32>.\n// See: <https://github.com/rehypejs/rehype-react/pull/45>.\nconst tableElements = new Set(['table', 'tbody', 'thead', 'tfoot', 'tr'])\n\nconst tableCellElement = new Set(['td', 'th'])\n\nconst docs = 'https://github.com/syntax-tree/hast-util-to-jsx-runtime'\n\n/**\n * Transform a hast tree to preact, react, solid, svelte, vue, etc.,\n * with an automatic JSX runtime.\n *\n * @param {Nodes} tree\n *   Tree to transform.\n * @param {Options} options\n *   Configuration (required).\n * @returns {JSX.Element}\n *   JSX element.\n */\n\nexport function toJsxRuntime(tree, options) {\n  if (!options || options.Fragment === undefined) {\n    throw new TypeError('Expected `Fragment` in options')\n  }\n\n  const filePath = options.filePath || undefined\n  /** @type {Create} */\n  let create\n\n  if (options.development) {\n    if (typeof options.jsxDEV !== 'function') {\n      throw new TypeError(\n        'Expected `jsxDEV` in options when `development: true`'\n      )\n    }\n\n    create = developmentCreate(filePath, options.jsxDEV)\n  } else {\n    if (typeof options.jsx !== 'function') {\n      throw new TypeError('Expected `jsx` in production options')\n    }\n\n    if (typeof options.jsxs !== 'function') {\n      throw new TypeError('Expected `jsxs` in production options')\n    }\n\n    create = productionCreate(filePath, options.jsx, options.jsxs)\n  }\n\n  /** @type {State} */\n  const state = {\n    Fragment: options.Fragment,\n    ancestors: [],\n    components: options.components || {},\n    create,\n    elementAttributeNameCase: options.elementAttributeNameCase || 'react',\n    evaluater: options.createEvaluater ? options.createEvaluater() : undefined,\n    filePath,\n    ignoreInvalidStyle: options.ignoreInvalidStyle || false,\n    passKeys: options.passKeys !== false,\n    passNode: options.passNode || false,\n    schema: options.space === 'svg' ? svg : html,\n    stylePropertyNameCase: options.stylePropertyNameCase || 'dom',\n    tableCellAlignToStyle: options.tableCellAlignToStyle !== false\n  }\n\n  const result = one(state, tree, undefined)\n\n  // JSX element.\n  if (result && typeof result !== 'string') {\n    return result\n  }\n\n  // Text node or something that turned into nothing.\n  return state.create(\n    tree,\n    state.Fragment,\n    {children: result || undefined},\n    undefined\n  )\n}\n\n/**\n * Transform a node.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Nodes} node\n *   Current node.\n * @param {string | undefined} key\n *   Key.\n * @returns {Child | undefined}\n *   Child, optional.\n */\nfunction one(state, node, key) {\n  if (node.type === 'element') {\n    return element(state, node, key)\n  }\n\n  if (node.type === 'mdxFlowExpression' || node.type === 'mdxTextExpression') {\n    return mdxExpression(state, node)\n  }\n\n  if (node.type === 'mdxJsxFlowElement' || node.type === 'mdxJsxTextElement') {\n    return mdxJsxElement(state, node, key)\n  }\n\n  if (node.type === 'mdxjsEsm') {\n    return mdxEsm(state, node)\n  }\n\n  if (node.type === 'root') {\n    return root(state, node, key)\n  }\n\n  if (node.type === 'text') {\n    return text(state, node)\n  }\n}\n\n/**\n * Handle element.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Element} node\n *   Current node.\n * @param {string | undefined} key\n *   Key.\n * @returns {Child | undefined}\n *   Child, optional.\n */\nfunction element(state, node, key) {\n  const parentSchema = state.schema\n  let schema = parentSchema\n\n  if (node.tagName.toLowerCase() === 'svg' && parentSchema.space === 'html') {\n    schema = svg\n    state.schema = schema\n  }\n\n  state.ancestors.push(node)\n\n  const type = findComponentFromName(state, node.tagName, false)\n  const props = createElementProps(state, node)\n  let children = createChildren(state, node)\n\n  if (tableElements.has(node.tagName)) {\n    children = children.filter(function (child) {\n      return typeof child === 'string' ? !whitespace(child) : true\n    })\n  }\n\n  addNode(state, props, type, node)\n  addChildren(props, children)\n\n  // Restore.\n  state.ancestors.pop()\n  state.schema = parentSchema\n\n  return state.create(node, type, props, key)\n}\n\n/**\n * Handle MDX expression.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdxFlowExpression | MdxTextExpression} node\n *   Current node.\n * @returns {Child | undefined}\n *   Child, optional.\n */\nfunction mdxExpression(state, node) {\n  if (node.data && node.data.estree && state.evaluater) {\n    const program = node.data.estree\n    const expression = program.body[0]\n    assert(expression.type === 'ExpressionStatement')\n\n    // Assume result is a child.\n    return /** @type {Child | undefined} */ (\n      state.evaluater.evaluateExpression(expression.expression)\n    )\n  }\n\n  crashEstree(state, node.position)\n}\n\n/**\n * Handle MDX ESM.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdxjsEsm} node\n *   Current node.\n * @returns {Child | undefined}\n *   Child, optional.\n */\nfunction mdxEsm(state, node) {\n  if (node.data && node.data.estree && state.evaluater) {\n    // Assume result is a child.\n    return /** @type {Child | undefined} */ (\n      state.evaluater.evaluateProgram(node.data.estree)\n    )\n  }\n\n  crashEstree(state, node.position)\n}\n\n/**\n * Handle MDX JSX.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdxJsxFlowElement | MdxJsxTextElement} node\n *   Current node.\n * @param {string | undefined} key\n *   Key.\n * @returns {Child | undefined}\n *   Child, optional.\n */\nfunction mdxJsxElement(state, node, key) {\n  const parentSchema = state.schema\n  let schema = parentSchema\n\n  if (node.name === 'svg' && parentSchema.space === 'html') {\n    schema = svg\n    state.schema = schema\n  }\n\n  state.ancestors.push(node)\n\n  const type =\n    node.name === null\n      ? state.Fragment\n      : findComponentFromName(state, node.name, true)\n  const props = createJsxElementProps(state, node)\n  const children = createChildren(state, node)\n\n  addNode(state, props, type, node)\n  addChildren(props, children)\n\n  // Restore.\n  state.ancestors.pop()\n  state.schema = parentSchema\n\n  return state.create(node, type, props, key)\n}\n\n/**\n * Handle root.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Root} node\n *   Current node.\n * @param {string | undefined} key\n *   Key.\n * @returns {Child | undefined}\n *   Child, optional.\n */\nfunction root(state, node, key) {\n  /** @type {Props} */\n  const props = {}\n\n  addChildren(props, createChildren(state, node))\n\n  return state.create(node, state.Fragment, props, key)\n}\n\n/**\n * Handle text.\n *\n * @param {State} _\n *   Info passed around.\n * @param {Text} node\n *   Current node.\n * @returns {Child | undefined}\n *   Child, optional.\n */\nfunction text(_, node) {\n  return node.value\n}\n\n/**\n * Add `node` to props.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Props} props\n *   Props.\n * @param {unknown} type\n *   Type.\n * @param {Element | MdxJsxFlowElement | MdxJsxTextElement} node\n *   Node.\n * @returns {undefined}\n *   Nothing.\n */\nfunction addNode(state, props, type, node) {\n  // If this is swapped out for a component:\n  if (typeof type !== 'string' && type !== state.Fragment && state.passNode) {\n    props.node = node\n  }\n}\n\n/**\n * Add children to props.\n *\n * @param {Props} props\n *   Props.\n * @param {Array<Child>} children\n *   Children.\n * @returns {undefined}\n *   Nothing.\n */\nfunction addChildren(props, children) {\n  if (children.length > 0) {\n    const value = children.length > 1 ? children : children[0]\n\n    if (value) {\n      props.children = value\n    }\n  }\n}\n\n/**\n * @param {string | undefined} _\n *   Path to file.\n * @param {Jsx} jsx\n *   Dynamic.\n * @param {Jsx} jsxs\n *   Static.\n * @returns {Create}\n *   Create a production element.\n */\nfunction productionCreate(_, jsx, jsxs) {\n  return create\n  /** @type {Create} */\n  function create(_, type, props, key) {\n    // Only an array when there are 2 or more children.\n    const isStaticChildren = Array.isArray(props.children)\n    const fn = isStaticChildren ? jsxs : jsx\n    return key ? fn(type, props, key) : fn(type, props)\n  }\n}\n\n/**\n * @param {string | undefined} filePath\n *   Path to file.\n * @param {JsxDev} jsxDEV\n *   Development.\n * @returns {Create}\n *   Create a development element.\n */\nfunction developmentCreate(filePath, jsxDEV) {\n  return create\n  /** @type {Create} */\n  function create(node, type, props, key) {\n    // Only an array when there are 2 or more children.\n    const isStaticChildren = Array.isArray(props.children)\n    const point = pointStart(node)\n    return jsxDEV(\n      type,\n      props,\n      key,\n      isStaticChildren,\n      {\n        columnNumber: point ? point.column - 1 : undefined,\n        fileName: filePath,\n        lineNumber: point ? point.line : undefined\n      },\n      undefined\n    )\n  }\n}\n\n/**\n * Create props from an element.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Element} node\n *   Current element.\n * @returns {Props}\n *   Props.\n */\nfunction createElementProps(state, node) {\n  /** @type {Props} */\n  const props = {}\n  /** @type {string | undefined} */\n  let alignValue\n  /** @type {string} */\n  let prop\n\n  for (prop in node.properties) {\n    if (prop !== 'children' && own.call(node.properties, prop)) {\n      const result = createProperty(state, prop, node.properties[prop])\n\n      if (result) {\n        const [key, value] = result\n\n        if (\n          state.tableCellAlignToStyle &&\n          key === 'align' &&\n          typeof value === 'string' &&\n          tableCellElement.has(node.tagName)\n        ) {\n          alignValue = value\n        } else {\n          props[key] = value\n        }\n      }\n    }\n  }\n\n  if (alignValue) {\n    // Assume style is an object.\n    const style = /** @type {Style} */ (props.style || (props.style = {}))\n    style[state.stylePropertyNameCase === 'css' ? 'text-align' : 'textAlign'] =\n      alignValue\n  }\n\n  return props\n}\n\n/**\n * Create props from a JSX element.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdxJsxFlowElement | MdxJsxTextElement} node\n *   Current JSX element.\n * @returns {Props}\n *   Props.\n */\nfunction createJsxElementProps(state, node) {\n  /** @type {Props} */\n  const props = {}\n\n  for (const attribute of node.attributes) {\n    if (attribute.type === 'mdxJsxExpressionAttribute') {\n      if (attribute.data && attribute.data.estree && state.evaluater) {\n        const program = attribute.data.estree\n        const expression = program.body[0]\n        assert(expression.type === 'ExpressionStatement')\n        const objectExpression = expression.expression\n        assert(objectExpression.type === 'ObjectExpression')\n        const property = objectExpression.properties[0]\n        assert(property.type === 'SpreadElement')\n\n        Object.assign(\n          props,\n          state.evaluater.evaluateExpression(property.argument)\n        )\n      } else {\n        crashEstree(state, node.position)\n      }\n    } else {\n      // For JSX, the author is responsible of passing in the correct values.\n      const name = attribute.name\n      /** @type {unknown} */\n      let value\n\n      if (attribute.value && typeof attribute.value === 'object') {\n        if (\n          attribute.value.data &&\n          attribute.value.data.estree &&\n          state.evaluater\n        ) {\n          const program = attribute.value.data.estree\n          const expression = program.body[0]\n          assert(expression.type === 'ExpressionStatement')\n          value = state.evaluater.evaluateExpression(expression.expression)\n        } else {\n          crashEstree(state, node.position)\n        }\n      } else {\n        value = attribute.value === null ? true : attribute.value\n      }\n\n      // Assume a prop.\n      props[name] = /** @type {Props[keyof Props]} */ (value)\n    }\n  }\n\n  return props\n}\n\n/**\n * Create children.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Parents} node\n *   Current element.\n * @returns {Array<Child>}\n *   Children.\n */\nfunction createChildren(state, node) {\n  /** @type {Array<Child>} */\n  const children = []\n  let index = -1\n  /** @type {Map<string, number>} */\n  // Note: test this when Solid doesn’t want to merge my upcoming PR.\n  /* c8 ignore next */\n  const countsByName = state.passKeys ? new Map() : emptyMap\n\n  while (++index < node.children.length) {\n    const child = node.children[index]\n    /** @type {string | undefined} */\n    let key\n\n    if (state.passKeys) {\n      const name =\n        child.type === 'element'\n          ? child.tagName\n          : child.type === 'mdxJsxFlowElement' ||\n              child.type === 'mdxJsxTextElement'\n            ? child.name\n            : undefined\n\n      if (name) {\n        const count = countsByName.get(name) || 0\n        key = name + '-' + count\n        countsByName.set(name, count + 1)\n      }\n    }\n\n    const result = one(state, child, key)\n    if (result !== undefined) children.push(result)\n  }\n\n  return children\n}\n\n/**\n * Handle a property.\n *\n * @param {State} state\n *   Info passed around.\n * @param {string} prop\n *   Key.\n * @param {Array<number | string> | boolean | number | string | null | undefined} value\n *   hast property value.\n * @returns {Field | undefined}\n *   Field for runtime, optional.\n */\nfunction createProperty(state, prop, value) {\n  const info = find(state.schema, prop)\n\n  // Ignore nullish and `NaN` values.\n  if (\n    value === null ||\n    value === undefined ||\n    (typeof value === 'number' && Number.isNaN(value))\n  ) {\n    return\n  }\n\n  if (Array.isArray(value)) {\n    // Accept `array`.\n    // Most props are space-separated.\n    value = info.commaSeparated ? commas(value) : spaces(value)\n  }\n\n  // React only accepts `style` as object.\n  if (info.property === 'style') {\n    let styleObject =\n      typeof value === 'object' ? value : parseStyle(state, String(value))\n\n    if (state.stylePropertyNameCase === 'css') {\n      styleObject = transformStylesToCssCasing(styleObject)\n    }\n\n    return ['style', styleObject]\n  }\n\n  return [\n    state.elementAttributeNameCase === 'react' && info.space\n      ? hastToReact[info.property] || info.property\n      : info.attribute,\n    value\n  ]\n}\n\n/**\n * Parse a CSS declaration to an object.\n *\n * @param {State} state\n *   Info passed around.\n * @param {string} value\n *   CSS declarations.\n * @returns {Style}\n *   Properties.\n * @throws\n *   Throws `VFileMessage` when CSS cannot be parsed.\n */\nfunction parseStyle(state, value) {\n  /** @type {Style} */\n  const result = {}\n\n  try {\n    // @ts-expect-error: `style-to-object` types are broken.\n    styleToObject(value, replacer)\n  } catch (error) {\n    if (!state.ignoreInvalidStyle) {\n      const cause = /** @type {Error} */ (error)\n      const message = new VFileMessage('Cannot parse `style` attribute', {\n        ancestors: state.ancestors,\n        cause,\n        ruleId: 'style',\n        source: 'hast-util-to-jsx-runtime'\n      })\n      message.file = state.filePath || undefined\n      message.url = docs + '#cannot-parse-style-attribute'\n\n      throw message\n    }\n  }\n\n  return result\n\n  /**\n   * Add a CSS property (normal, so with dashes) to `result` as a DOM CSS\n   * property.\n   *\n   * @param {string} name\n   *   Key.\n   * @param {string} value\n   *   Value\n   * @returns {undefined}\n   *   Nothing.\n   */\n  function replacer(name, value) {\n    let key = name\n\n    if (key.slice(0, 2) !== '--') {\n      if (key.slice(0, 4) === '-ms-') key = 'ms-' + key.slice(4)\n      key = key.replace(dashSomething, toCamel)\n    }\n\n    result[key] = value\n  }\n}\n\n/**\n * Create a JSX name from a string.\n *\n * @param {State} state\n *   To do.\n * @param {string} name\n *   Name.\n * @param {boolean} allowExpression\n *   Allow member expressions and identifiers.\n * @returns {unknown}\n *   To do.\n */\nfunction findComponentFromName(state, name, allowExpression) {\n  /** @type {Identifier | Literal | MemberExpression} */\n  let result\n\n  if (!allowExpression) {\n    result = {type: 'Literal', value: name}\n  } else if (name.includes('.')) {\n    const identifiers = name.split('.')\n    let index = -1\n    /** @type {Identifier | Literal | MemberExpression | undefined} */\n    let node\n\n    while (++index < identifiers.length) {\n      /** @type {Identifier | Literal} */\n      const prop = isIdentifierName(identifiers[index])\n        ? {type: 'Identifier', name: identifiers[index]}\n        : {type: 'Literal', value: identifiers[index]}\n      node = node\n        ? {\n            type: 'MemberExpression',\n            object: node,\n            property: prop,\n            computed: Boolean(index && prop.type === 'Literal'),\n            optional: false\n          }\n        : prop\n    }\n\n    assert(node, 'always a result')\n    result = node\n  } else {\n    result =\n      isIdentifierName(name) && !/^[a-z]/.test(name)\n        ? {type: 'Identifier', name}\n        : {type: 'Literal', value: name}\n  }\n\n  // Only literals can be passed in `components` currently.\n  // No identifiers / member expressions.\n  if (result.type === 'Literal') {\n    const name = /** @type {keyof JSX.IntrinsicElements} */ (result.value)\n\n    return own.call(state.components, name) ? state.components[name] : name\n  }\n\n  // Assume component.\n  if (state.evaluater) {\n    return state.evaluater.evaluateExpression(result)\n  }\n\n  crashEstree(state)\n}\n\n/**\n * @param {State} state\n * @param {Position | undefined} [place]\n * @returns {never}\n */\nfunction crashEstree(state, place) {\n  const message = new VFileMessage(\n    'Cannot handle MDX estrees without `createEvaluater`',\n    {\n      ancestors: state.ancestors,\n      place,\n      ruleId: 'mdx-estree',\n      source: 'hast-util-to-jsx-runtime'\n    }\n  )\n  message.file = state.filePath || undefined\n  message.url = docs + '#cannot-handle-mdx-estrees-without-createevaluater'\n\n  throw message\n}\n\n/**\n * Transform a DOM casing style object to a CSS casing style object.\n *\n * @param {Style} domCasing\n * @returns {Style}\n */\nfunction transformStylesToCssCasing(domCasing) {\n  /** @type {Style} */\n  const cssCasing = {}\n  /** @type {string} */\n  let from\n\n  for (from in domCasing) {\n    if (own.call(domCasing, from)) {\n      cssCasing[transformStyleToCssCasing(from)] = domCasing[from]\n    }\n  }\n\n  return cssCasing\n}\n\n/**\n * Transform a DOM casing style field to a CSS casing style field.\n *\n * @param {string} from\n * @returns {string}\n */\nfunction transformStyleToCssCasing(from) {\n  let to = from.replace(cap, toDash)\n  // Handle `ms-xxx` -> `-ms-xxx`.\n  if (to.slice(0, 3) === 'ms-') to = '-' + to\n  return to\n}\n\n/**\n * Make `$1` capitalized.\n *\n * @param {string} _\n *   Whatever.\n * @param {string} $1\n *   Single ASCII alphabetical.\n * @returns {string}\n *   Capitalized `$1`.\n */\nfunction toCamel(_, $1) {\n  return $1.toUpperCase()\n}\n\n/**\n * Make `$0` dash cased.\n *\n * @param {string} $0\n *   Capitalized ASCII leter.\n * @returns {string}\n *   Dash and lower letter.\n */\nfunction toDash($0) {\n  return '-' + $0.toLowerCase()\n}\n","/**\n * @typedef Options\n *   Configuration for `stringify`.\n * @property {boolean} [padLeft=true]\n *   Whether to pad a space before a token.\n * @property {boolean} [padRight=false]\n *   Whether to pad a space after a token.\n */\n\n/**\n * @typedef {Options} StringifyOptions\n *   Please use `StringifyOptions` instead.\n */\n\n/**\n * Parse comma-separated tokens to an array.\n *\n * @param {string} value\n *   Comma-separated tokens.\n * @returns {Array<string>}\n *   List of tokens.\n */\nexport function parse(value) {\n  /** @type {Array<string>} */\n  const tokens = []\n  const input = String(value || '')\n  let index = input.indexOf(',')\n  let start = 0\n  /** @type {boolean} */\n  let end = false\n\n  while (!end) {\n    if (index === -1) {\n      index = input.length\n      end = true\n    }\n\n    const token = input.slice(start, index).trim()\n\n    if (token || !end) {\n      tokens.push(token)\n    }\n\n    start = index + 1\n    index = input.indexOf(',', start)\n  }\n\n  return tokens\n}\n\n/**\n * Serialize an array of strings or numbers to comma-separated tokens.\n *\n * @param {Array<string|number>} values\n *   List of tokens.\n * @param {Options} [options]\n *   Configuration for `stringify` (optional).\n * @returns {string}\n *   Comma-separated tokens.\n */\nexport function stringify(values, options) {\n  const settings = options || {}\n\n  // Ensure the last empty entry is seen.\n  const input = values[values.length - 1] === '' ? [...values, ''] : values\n\n  return input\n    .join(\n      (settings.padRight ? ' ' : '') +\n        ',' +\n        (settings.padLeft === false ? '' : ' ')\n    )\n    .trim()\n}\n","/**\n * Parse space-separated tokens to an array of strings.\n *\n * @param {string} value\n *   Space-separated tokens.\n * @returns {Array<string>}\n *   List of tokens.\n */\nexport function parse(value) {\n  const input = String(value || '').trim()\n  return input ? input.split(/[ \\t\\n\\r\\f]+/g) : []\n}\n\n/**\n * Serialize an array of strings as space separated-tokens.\n *\n * @param {Array<string|number>} values\n *   List of tokens.\n * @returns {string}\n *   Space-separated tokens.\n */\nexport function stringify(values) {\n  return values.join(' ').trim()\n}\n","/**\n * HTML URL properties.\n *\n * Each key is a property name and each value is a list of tag names it applies\n * to or `null` if it applies to all elements.\n *\n * @type {Record<string, Array<string> | null>}\n */\nexport const urlAttributes = {\n  action: ['form'],\n  cite: ['blockquote', 'del', 'ins', 'q'],\n  data: ['object'],\n  formAction: ['button', 'input'],\n  href: ['a', 'area', 'base', 'link'],\n  icon: ['menuitem'],\n  itemId: null,\n  manifest: ['html'],\n  ping: ['a', 'area'],\n  poster: ['video'],\n  src: [\n    'audio',\n    'embed',\n    'iframe',\n    'img',\n    'input',\n    'script',\n    'source',\n    'track',\n    'video'\n  ]\n}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n *   Whether to use `alt` for `image`s (default: `true`).\n * @property {boolean | null | undefined} [includeHtml=true]\n *   Whether to use `value` of HTML (default: `true`).\n */\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} [value]\n *   Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n *   Configuration (optional).\n * @returns {string}\n *   Serialized `value`.\n */\nexport function toString(value, options) {\n  const settings = options || emptyOptions\n  const includeImageAlt =\n    typeof settings.includeImageAlt === 'boolean'\n      ? settings.includeImageAlt\n      : true\n  const includeHtml =\n    typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true\n\n  return one(value, includeImageAlt, includeHtml)\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n *   Thing to serialize.\n * @param {boolean} includeImageAlt\n *   Include image `alt`s.\n * @param {boolean} includeHtml\n *   Include HTML.\n * @returns {string}\n *   Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n  if (node(value)) {\n    if ('value' in value) {\n      return value.type === 'html' && !includeHtml ? '' : value.value\n    }\n\n    if (includeImageAlt && 'alt' in value && value.alt) {\n      return value.alt\n    }\n\n    if ('children' in value) {\n      return all(value.children, includeImageAlt, includeHtml)\n    }\n  }\n\n  if (Array.isArray(value)) {\n    return all(value, includeImageAlt, includeHtml)\n  }\n\n  return ''\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array<unknown>} values\n *   Thing to serialize.\n * @param {boolean} includeImageAlt\n *   Include image `alt`s.\n * @param {boolean} includeHtml\n *   Include HTML.\n * @returns {string}\n *   Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n  /** @type {Array<string>} */\n  const result = []\n  let index = -1\n\n  while (++index < values.length) {\n    result[index] = one(values[index], includeImageAlt, includeHtml)\n  }\n\n  return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n *   Thing.\n * @returns {value is Nodes}\n *   Whether `value` is a node.\n */\nfunction node(value) {\n  return Boolean(value && typeof value === 'object')\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n *   Item type.\n * @param {Array<T>} list\n *   List to operate on.\n * @param {number} start\n *   Index to remove/insert at (can be negative).\n * @param {number} remove\n *   Number of items to remove.\n * @param {Array<T>} items\n *   Items to inject into `list`.\n * @returns {undefined}\n *   Nothing.\n */\nexport function splice(list, start, remove, items) {\n  const end = list.length\n  let chunkStart = 0\n  /** @type {Array<unknown>} */\n  let parameters\n\n  // Make start between zero and `end` (included).\n  if (start < 0) {\n    start = -start > end ? 0 : end + start\n  } else {\n    start = start > end ? end : start\n  }\n  remove = remove > 0 ? remove : 0\n\n  // No need to chunk the items if there’s only a couple (10k) items.\n  if (items.length < 10000) {\n    parameters = Array.from(items)\n    parameters.unshift(start, remove)\n    // @ts-expect-error Hush, it’s fine.\n    list.splice(...parameters)\n  } else {\n    // Delete `remove` items starting from `start`\n    if (remove) list.splice(start, remove)\n\n    // Insert the items in chunks to not cause stack overflows.\n    while (chunkStart < items.length) {\n      parameters = items.slice(chunkStart, chunkStart + 10000)\n      parameters.unshift(start, 0)\n      // @ts-expect-error Hush, it’s fine.\n      list.splice(...parameters)\n      chunkStart += 10000\n      start += 10000\n    }\n  }\n}\n\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n *   Item type.\n * @param {Array<T>} list\n *   List to operate on.\n * @param {Array<T>} items\n *   Items to add to `list`.\n * @returns {Array<T>}\n *   Either `list` or `items`.\n */\nexport function push(list, items) {\n  if (list.length > 0) {\n    splice(list, list.length, 0, items)\n    return list\n  }\n  return items\n}\n","/**\n * Some of the internal operations of micromark do lots of editing\n * operations on very large arrays. This runs into problems with two\n * properties of most circa-2020 JavaScript interpreters:\n *\n *  - Array-length modifications at the high end of an array (push/pop) are\n *    expected to be common and are implemented in (amortized) time\n *    proportional to the number of elements added or removed, whereas\n *    other operations (shift/unshift and splice) are much less efficient.\n *  - Function arguments are passed on the stack, so adding tens of thousands\n *    of elements to an array with `arr.push[...newElements]` will frequently\n *    cause stack overflows. (see <https://stackoverflow.com/questions/22123769/rangeerror-maximum-call-stack-size-exceeded-why>)\n *\n * SpliceBuffers are an implementation of gap buffers, which are a\n * generalization of the \"queue made of two stacks\" idea. The splice buffer\n * maintains a cursor, and moving the cursor has cost proportional to the\n * distance the cursor moves, but inserting, deleting, or splicing in\n * new information at the cursor is as efficient as the push/pop operation.\n * This allows for an efficient sequence of splices (or pushes, pops, shifts,\n * or unshifts) as long such edits happen at the same part of the array or\n * generally sweep through the array from the beginning to the end.\n *\n * The interface for splice buffers also supports large numbers of inputs by\n * passing a single array argument rather passing multiple arguments on the\n * function call stack.\n *\n * @template T\n *   Item type.\n */\nexport class SpliceBuffer {\n  /**\n   * @param {ReadonlyArray<T> | null | undefined} [initial]\n   *   Initial items (optional).\n   * @returns\n   *   Splice buffer.\n   */\n  constructor(initial) {\n    /** @type {Array<T>} */\n    this.left = initial ? [...initial] : [];\n    /** @type {Array<T>} */\n    this.right = [];\n  }\n\n  /**\n   * Array access;\n   * does not move the cursor.\n   *\n   * @param {number} index\n   *   Index.\n   * @return {T}\n   *   Item.\n   */\n  get(index) {\n    if (index < 0 || index >= this.left.length + this.right.length) {\n      throw new RangeError('Cannot access index `' + index + '` in a splice buffer of size `' + (this.left.length + this.right.length) + '`');\n    }\n    if (index < this.left.length) return this.left[index];\n    return this.right[this.right.length - index + this.left.length - 1];\n  }\n\n  /**\n   * The length of the splice buffer, one greater than the largest index in the\n   * array.\n   */\n  get length() {\n    return this.left.length + this.right.length;\n  }\n\n  /**\n   * Remove and return `list[0]`;\n   * moves the cursor to `0`.\n   *\n   * @returns {T | undefined}\n   *   Item, optional.\n   */\n  shift() {\n    this.setCursor(0);\n    return this.right.pop();\n  }\n\n  /**\n   * Slice the buffer to get an array;\n   * does not move the cursor.\n   *\n   * @param {number} start\n   *   Start.\n   * @param {number | null | undefined} [end]\n   *   End (optional).\n   * @returns {Array<T>}\n   *   Array of items.\n   */\n  slice(start, end) {\n    /** @type {number} */\n    const stop = end === null || end === undefined ? Number.POSITIVE_INFINITY : end;\n    if (stop < this.left.length) {\n      return this.left.slice(start, stop);\n    }\n    if (start > this.left.length) {\n      return this.right.slice(this.right.length - stop + this.left.length, this.right.length - start + this.left.length).reverse();\n    }\n    return this.left.slice(start).concat(this.right.slice(this.right.length - stop + this.left.length).reverse());\n  }\n\n  /**\n   * Mimics the behavior of Array.prototype.splice() except for the change of\n   * interface necessary to avoid segfaults when patching in very large arrays.\n   *\n   * This operation moves cursor is moved to `start` and results in the cursor\n   * placed after any inserted items.\n   *\n   * @param {number} start\n   *   Start;\n   *   zero-based index at which to start changing the array;\n   *   negative numbers count backwards from the end of the array and values\n   *   that are out-of bounds are clamped to the appropriate end of the array.\n   * @param {number | null | undefined} [deleteCount=0]\n   *   Delete count (default: `0`);\n   *   maximum number of elements to delete, starting from start.\n   * @param {Array<T> | null | undefined} [items=[]]\n   *   Items to include in place of the deleted items (default: `[]`).\n   * @return {Array<T>}\n   *   Any removed items.\n   */\n  splice(start, deleteCount, items) {\n    /** @type {number} */\n    const count = deleteCount || 0;\n    this.setCursor(Math.trunc(start));\n    const removed = this.right.splice(this.right.length - count, Number.POSITIVE_INFINITY);\n    if (items) chunkedPush(this.left, items);\n    return removed.reverse();\n  }\n\n  /**\n   * Remove and return the highest-numbered item in the array, so\n   * `list[list.length - 1]`;\n   * Moves the cursor to `length`.\n   *\n   * @returns {T | undefined}\n   *   Item, optional.\n   */\n  pop() {\n    this.setCursor(Number.POSITIVE_INFINITY);\n    return this.left.pop();\n  }\n\n  /**\n   * Inserts a single item to the high-numbered side of the array;\n   * moves the cursor to `length`.\n   *\n   * @param {T} item\n   *   Item.\n   * @returns {undefined}\n   *   Nothing.\n   */\n  push(item) {\n    this.setCursor(Number.POSITIVE_INFINITY);\n    this.left.push(item);\n  }\n\n  /**\n   * Inserts many items to the high-numbered side of the array.\n   * Moves the cursor to `length`.\n   *\n   * @param {Array<T>} items\n   *   Items.\n   * @returns {undefined}\n   *   Nothing.\n   */\n  pushMany(items) {\n    this.setCursor(Number.POSITIVE_INFINITY);\n    chunkedPush(this.left, items);\n  }\n\n  /**\n   * Inserts a single item to the low-numbered side of the array;\n   * Moves the cursor to `0`.\n   *\n   * @param {T} item\n   *   Item.\n   * @returns {undefined}\n   *   Nothing.\n   */\n  unshift(item) {\n    this.setCursor(0);\n    this.right.push(item);\n  }\n\n  /**\n   * Inserts many items to the low-numbered side of the array;\n   * moves the cursor to `0`.\n   *\n   * @param {Array<T>} items\n   *   Items.\n   * @returns {undefined}\n   *   Nothing.\n   */\n  unshiftMany(items) {\n    this.setCursor(0);\n    chunkedPush(this.right, items.reverse());\n  }\n\n  /**\n   * Move the cursor to a specific position in the array. Requires\n   * time proportional to the distance moved.\n   *\n   * If `n < 0`, the cursor will end up at the beginning.\n   * If `n > length`, the cursor will end up at the end.\n   *\n   * @param {number} n\n   *   Position.\n   * @return {undefined}\n   *   Nothing.\n   */\n  setCursor(n) {\n    if (n === this.left.length || n > this.left.length && this.right.length === 0 || n < 0 && this.left.length === 0) return;\n    if (n < this.left.length) {\n      // Move cursor to the this.left\n      const removed = this.left.splice(n, Number.POSITIVE_INFINITY);\n      chunkedPush(this.right, removed.reverse());\n    } else {\n      // Move cursor to the this.right\n      const removed = this.right.splice(this.left.length + this.right.length - n, Number.POSITIVE_INFINITY);\n      chunkedPush(this.left, removed.reverse());\n    }\n  }\n}\n\n/**\n * Avoid stack overflow by pushing items onto the stack in segments\n *\n * @template T\n *   Item type.\n * @param {Array<T>} list\n *   List to inject into.\n * @param {ReadonlyArray<T>} right\n *   Items to inject.\n * @return {undefined}\n *   Nothing.\n */\nfunction chunkedPush(list, right) {\n  /** @type {number} */\n  let chunkStart = 0;\n  if (right.length < 10000) {\n    list.push(...right);\n  } else {\n    while (chunkStart < right.length) {\n      list.push(...right.slice(chunkStart, chunkStart + 10000));\n      chunkStart += 10000;\n    }\n  }\n}","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Token} Token\n */\n\nimport { splice } from 'micromark-util-chunked';\nimport { SpliceBuffer } from './lib/splice-buffer.js';\n\n// Hidden API exposed for testing.\nexport { SpliceBuffer } from './lib/splice-buffer.js';\n\n/**\n * Tokenize subcontent.\n *\n * @param {Array<Event>} eventsArray\n *   List of events.\n * @returns {boolean}\n *   Whether subtokens were found.\n */\n// eslint-disable-next-line complexity\nexport function subtokenize(eventsArray) {\n  /** @type {Record<string, number>} */\n  const jumps = {};\n  let index = -1;\n  /** @type {Event} */\n  let event;\n  /** @type {number | undefined} */\n  let lineIndex;\n  /** @type {number} */\n  let otherIndex;\n  /** @type {Event} */\n  let otherEvent;\n  /** @type {Array<Event>} */\n  let parameters;\n  /** @type {Array<Event>} */\n  let subevents;\n  /** @type {boolean | undefined} */\n  let more;\n  const events = new SpliceBuffer(eventsArray);\n  while (++index < events.length) {\n    while (index in jumps) {\n      index = jumps[index];\n    }\n    event = events.get(index);\n\n    // Add a hook for the GFM tasklist extension, which needs to know if text\n    // is in the first content of a list item.\n    if (index && event[1].type === \"chunkFlow\" && events.get(index - 1)[1].type === \"listItemPrefix\") {\n      subevents = event[1]._tokenizer.events;\n      otherIndex = 0;\n      if (otherIndex < subevents.length && subevents[otherIndex][1].type === \"lineEndingBlank\") {\n        otherIndex += 2;\n      }\n      if (otherIndex < subevents.length && subevents[otherIndex][1].type === \"content\") {\n        while (++otherIndex < subevents.length) {\n          if (subevents[otherIndex][1].type === \"content\") {\n            break;\n          }\n          if (subevents[otherIndex][1].type === \"chunkText\") {\n            subevents[otherIndex][1]._isInFirstContentOfListItem = true;\n            otherIndex++;\n          }\n        }\n      }\n    }\n\n    // Enter.\n    if (event[0] === 'enter') {\n      if (event[1].contentType) {\n        Object.assign(jumps, subcontent(events, index));\n        index = jumps[index];\n        more = true;\n      }\n    }\n    // Exit.\n    else if (event[1]._container) {\n      otherIndex = index;\n      lineIndex = undefined;\n      while (otherIndex--) {\n        otherEvent = events.get(otherIndex);\n        if (otherEvent[1].type === \"lineEnding\" || otherEvent[1].type === \"lineEndingBlank\") {\n          if (otherEvent[0] === 'enter') {\n            if (lineIndex) {\n              events.get(lineIndex)[1].type = \"lineEndingBlank\";\n            }\n            otherEvent[1].type = \"lineEnding\";\n            lineIndex = otherIndex;\n          }\n        } else {\n          break;\n        }\n      }\n      if (lineIndex) {\n        // Fix position.\n        event[1].end = Object.assign({}, events.get(lineIndex)[1].start);\n\n        // Switch container exit w/ line endings.\n        parameters = events.slice(lineIndex, index);\n        parameters.unshift(event);\n        events.splice(lineIndex, index - lineIndex + 1, parameters);\n      }\n    }\n  }\n\n  // The changes to the `events` buffer must be copied back into the eventsArray\n  splice(eventsArray, 0, Number.POSITIVE_INFINITY, events.slice(0));\n  return !more;\n}\n\n/**\n * Tokenize embedded tokens.\n *\n * @param {SpliceBuffer<Event>} events\n * @param {number} eventIndex\n * @returns {Record<string, number>}\n */\nfunction subcontent(events, eventIndex) {\n  const token = events.get(eventIndex)[1];\n  const context = events.get(eventIndex)[2];\n  let startPosition = eventIndex - 1;\n  /** @type {Array<number>} */\n  const startPositions = [];\n  const tokenizer = token._tokenizer || context.parser[token.contentType](token.start);\n  const childEvents = tokenizer.events;\n  /** @type {Array<[number, number]>} */\n  const jumps = [];\n  /** @type {Record<string, number>} */\n  const gaps = {};\n  /** @type {Array<Chunk>} */\n  let stream;\n  /** @type {Token | undefined} */\n  let previous;\n  let index = -1;\n  /** @type {Token | undefined} */\n  let current = token;\n  let adjust = 0;\n  let start = 0;\n  const breaks = [start];\n\n  // Loop forward through the linked tokens to pass them in order to the\n  // subtokenizer.\n  while (current) {\n    // Find the position of the event for this token.\n    while (events.get(++startPosition)[1] !== current) {\n      // Empty.\n    }\n    startPositions.push(startPosition);\n    if (!current._tokenizer) {\n      stream = context.sliceStream(current);\n      if (!current.next) {\n        stream.push(null);\n      }\n      if (previous) {\n        tokenizer.defineSkip(current.start);\n      }\n      if (current._isInFirstContentOfListItem) {\n        tokenizer._gfmTasklistFirstContentOfListItem = true;\n      }\n      tokenizer.write(stream);\n      if (current._isInFirstContentOfListItem) {\n        tokenizer._gfmTasklistFirstContentOfListItem = undefined;\n      }\n    }\n\n    // Unravel the next token.\n    previous = current;\n    current = current.next;\n  }\n\n  // Now, loop back through all events (and linked tokens), to figure out which\n  // parts belong where.\n  current = token;\n  while (++index < childEvents.length) {\n    if (\n    // Find a void token that includes a break.\n    childEvents[index][0] === 'exit' && childEvents[index - 1][0] === 'enter' && childEvents[index][1].type === childEvents[index - 1][1].type && childEvents[index][1].start.line !== childEvents[index][1].end.line) {\n      start = index + 1;\n      breaks.push(start);\n      // Help GC.\n      current._tokenizer = undefined;\n      current.previous = undefined;\n      current = current.next;\n    }\n  }\n\n  // Help GC.\n  tokenizer.events = [];\n\n  // If there’s one more token (which is the cases for lines that end in an\n  // EOF), that’s perfect: the last point we found starts it.\n  // If there isn’t then make sure any remaining content is added to it.\n  if (current) {\n    // Help GC.\n    current._tokenizer = undefined;\n    current.previous = undefined;\n  } else {\n    breaks.pop();\n  }\n\n  // Now splice the events from the subtokenizer into the current events,\n  // moving back to front so that splice indices aren’t affected.\n  index = breaks.length;\n  while (index--) {\n    const slice = childEvents.slice(breaks[index], breaks[index + 1]);\n    const start = startPositions.pop();\n    jumps.push([start, start + slice.length - 1]);\n    events.splice(start, 2, slice);\n  }\n  jumps.reverse();\n  index = -1;\n  while (++index < jumps.length) {\n    gaps[adjust + jumps[index][0]] = adjust + jumps[index][1];\n    adjust += jumps[index][1] - jumps[index][0] - 1;\n  }\n  return gaps;\n}","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Handles} Handles\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine multiple syntax extensions into one.\n *\n * @param {Array<Extension>} extensions\n *   List of syntax extensions.\n * @returns {NormalizedExtension}\n *   A single combined extension.\n */\nexport function combineExtensions(extensions) {\n  /** @type {NormalizedExtension} */\n  const all = {}\n  let index = -1\n\n  while (++index < extensions.length) {\n    syntaxExtension(all, extensions[index])\n  }\n\n  return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all\n *   Extension to merge into.\n * @param {Extension} extension\n *   Extension to merge.\n * @returns {undefined}\n */\nfunction syntaxExtension(all, extension) {\n  /** @type {keyof Extension} */\n  let hook\n\n  for (hook in extension) {\n    const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n    /** @type {Record<string, unknown>} */\n    const left = maybe || (all[hook] = {})\n    /** @type {Record<string, unknown> | undefined} */\n    const right = extension[hook]\n    /** @type {string} */\n    let code\n\n    if (right) {\n      for (code in right) {\n        if (!hasOwnProperty.call(left, code)) left[code] = []\n        const value = right[code]\n        constructs(\n          // @ts-expect-error Looks like a list.\n          left[code],\n          Array.isArray(value) ? value : value ? [value] : []\n        )\n      }\n    }\n  }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {Array<unknown>} existing\n * @param {Array<unknown>} list\n * @returns {undefined}\n */\nfunction constructs(existing, list) {\n  let index = -1\n  /** @type {Array<unknown>} */\n  const before = []\n\n  while (++index < list.length) {\n    // @ts-expect-error Looks like an object.\n    ;(list[index].add === 'after' ? existing : before).push(list[index])\n  }\n\n  splice(existing, 0, 0, before)\n}\n\n/**\n * Combine multiple HTML extensions into one.\n *\n * @param {Array<HtmlExtension>} htmlExtensions\n *   List of HTML extensions.\n * @returns {HtmlExtension}\n *   A single combined HTML extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n  /** @type {HtmlExtension} */\n  const handlers = {}\n  let index = -1\n\n  while (++index < htmlExtensions.length) {\n    htmlExtension(handlers, htmlExtensions[index])\n  }\n\n  return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all\n *   Extension to merge into.\n * @param {HtmlExtension} extension\n *   Extension to merge.\n * @returns {undefined}\n */\nfunction htmlExtension(all, extension) {\n  /** @type {keyof HtmlExtension} */\n  let hook\n\n  for (hook in extension) {\n    const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n    const left = maybe || (all[hook] = {})\n    const right = extension[hook]\n    /** @type {keyof Handles} */\n    let type\n\n    if (right) {\n      for (type in right) {\n        // @ts-expect-error assume document vs regular handler are managed correctly.\n        left[type] = right[type]\n      }\n    }\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/);\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/);\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport function asciiControl(code) {\n  return (\n    // Special whitespace codes (which have negative values), C0 and Control\n    // character DEL\n    code !== null && (code < 32 || code === 127)\n  );\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/);\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/);\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/);\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport function markdownLineEnding(code) {\n  return code !== null && code < -2;\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n  return code !== null && (code < 0 || code === 32);\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport function markdownSpace(code) {\n  return code === -2 || code === -1 || code === 32;\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n *   Code.\n * @returns\n *   Whether it matches.\n */\nexport const unicodePunctuation = regexCheck(/\\p{P}|\\p{S}/u);\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n *   Code.\n * @returns\n *   Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/);\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => boolean}\n */\nfunction regexCheck(regex) {\n  return check;\n\n  /**\n   * Check whether a code matches the bound regex.\n   *\n   * @param {Code} code\n   *   Character code.\n   * @returns {boolean}\n   *   Whether the character code matches the bound regex.\n   */\n  function check(code) {\n    return code !== null && code > -1 && regex.test(String.fromCharCode(code));\n  }\n}","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownSpace} from 'micromark-util-character'\n\n// To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.\n\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * *   spaces in markdown are often optional, in which case this factory can be\n *     used and `ok` will be switched to whether spaces were found or not\n * *   one line ending or space can be detected with `markdownSpace(code)` right\n *     before using `factorySpace`\n *\n * ###### Examples\n *\n * Where `␉` represents a tab (plus how much it expands) and `␠` represents a\n * single space.\n *\n * ```markdown\n * ␉\n * ␠␠␠␠\n * ␉␠\n * ```\n *\n * @param {Effects} effects\n *   Context.\n * @param {State} ok\n *   State switched to when successful.\n * @param {TokenType} type\n *   Type (`' \\t'`).\n * @param {number | undefined} [max=Infinity]\n *   Max (exclusive).\n * @returns {State}\n *   Start state.\n */\nexport function factorySpace(effects, ok, type, max) {\n  const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n  let size = 0\n  return start\n\n  /** @type {State} */\n  function start(code) {\n    if (markdownSpace(code)) {\n      effects.enter(type)\n      return prefix(code)\n    }\n    return ok(code)\n  }\n\n  /** @type {State} */\n  function prefix(code) {\n    if (markdownSpace(code) && size++ < limit) {\n      effects.consume(code)\n      return prefix\n    }\n    effects.exit(type)\n    return ok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {InitialConstruct} */\nexport const content = {\n  tokenize: initializeContent\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeContent(effects) {\n  const contentStart = effects.attempt(\n    this.parser.constructs.contentInitial,\n    afterContentStartConstruct,\n    paragraphInitial\n  )\n  /** @type {Token} */\n  let previous\n  return contentStart\n\n  /** @type {State} */\n  function afterContentStartConstruct(code) {\n    if (code === null) {\n      effects.consume(code)\n      return\n    }\n    effects.enter('lineEnding')\n    effects.consume(code)\n    effects.exit('lineEnding')\n    return factorySpace(effects, contentStart, 'linePrefix')\n  }\n\n  /** @type {State} */\n  function paragraphInitial(code) {\n    effects.enter('paragraph')\n    return lineStart(code)\n  }\n\n  /** @type {State} */\n  function lineStart(code) {\n    const token = effects.enter('chunkText', {\n      contentType: 'text',\n      previous\n    })\n    if (previous) {\n      previous.next = token\n    }\n    previous = token\n    return data(code)\n  }\n\n  /** @type {State} */\n  function data(code) {\n    if (code === null) {\n      effects.exit('chunkText')\n      effects.exit('paragraph')\n      effects.consume(code)\n      return\n    }\n    if (markdownLineEnding(code)) {\n      effects.consume(code)\n      effects.exit('chunkText')\n      return lineStart\n    }\n\n    // Data.\n    effects.consume(code)\n    return data\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n/**\n * @typedef {[Construct, ContainerState]} StackItem\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {InitialConstruct} */\nexport const document = {\n  tokenize: initializeDocument\n}\n\n/** @type {Construct} */\nconst containerConstruct = {\n  tokenize: tokenizeContainer\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeDocument(effects) {\n  const self = this\n  /** @type {Array<StackItem>} */\n  const stack = []\n  let continued = 0\n  /** @type {TokenizeContext | undefined} */\n  let childFlow\n  /** @type {Token | undefined} */\n  let childToken\n  /** @type {number} */\n  let lineStartOffset\n  return start\n\n  /** @type {State} */\n  function start(code) {\n    // First we iterate through the open blocks, starting with the root\n    // document, and descending through last children down to the last open\n    // block.\n    // Each block imposes a condition that the line must satisfy if the block is\n    // to remain open.\n    // For example, a block quote requires a `>` character.\n    // A paragraph requires a non-blank line.\n    // In this phase we may match all or just some of the open blocks.\n    // But we cannot close unmatched blocks yet, because we may have a lazy\n    // continuation line.\n    if (continued < stack.length) {\n      const item = stack[continued]\n      self.containerState = item[1]\n      return effects.attempt(\n        item[0].continuation,\n        documentContinue,\n        checkNewContainers\n      )(code)\n    }\n\n    // Done.\n    return checkNewContainers(code)\n  }\n\n  /** @type {State} */\n  function documentContinue(code) {\n    continued++\n\n    // Note: this field is called `_closeFlow` but it also closes containers.\n    // Perhaps a good idea to rename it but it’s already used in the wild by\n    // extensions.\n    if (self.containerState._closeFlow) {\n      self.containerState._closeFlow = undefined\n      if (childFlow) {\n        closeFlow()\n      }\n\n      // Note: this algorithm for moving events around is similar to the\n      // algorithm when dealing with lazy lines in `writeToChild`.\n      const indexBeforeExits = self.events.length\n      let indexBeforeFlow = indexBeforeExits\n      /** @type {Point | undefined} */\n      let point\n\n      // Find the flow chunk.\n      while (indexBeforeFlow--) {\n        if (\n          self.events[indexBeforeFlow][0] === 'exit' &&\n          self.events[indexBeforeFlow][1].type === 'chunkFlow'\n        ) {\n          point = self.events[indexBeforeFlow][1].end\n          break\n        }\n      }\n      exitContainers(continued)\n\n      // Fix positions.\n      let index = indexBeforeExits\n      while (index < self.events.length) {\n        self.events[index][1].end = Object.assign({}, point)\n        index++\n      }\n\n      // Inject the exits earlier (they’re still also at the end).\n      splice(\n        self.events,\n        indexBeforeFlow + 1,\n        0,\n        self.events.slice(indexBeforeExits)\n      )\n\n      // Discard the duplicate exits.\n      self.events.length = index\n      return checkNewContainers(code)\n    }\n    return start(code)\n  }\n\n  /** @type {State} */\n  function checkNewContainers(code) {\n    // Next, after consuming the continuation markers for existing blocks, we\n    // look for new block starts (e.g. `>` for a block quote).\n    // If we encounter a new block start, we close any blocks unmatched in\n    // step 1 before creating the new block as a child of the last matched\n    // block.\n    if (continued === stack.length) {\n      // No need to `check` whether there’s a container, of `exitContainers`\n      // would be moot.\n      // We can instead immediately `attempt` to parse one.\n      if (!childFlow) {\n        return documentContinued(code)\n      }\n\n      // If we have concrete content, such as block HTML or fenced code,\n      // we can’t have containers “pierce” into them, so we can immediately\n      // start.\n      if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n        return flowStart(code)\n      }\n\n      // If we do have flow, it could still be a blank line,\n      // but we’d be interrupting it w/ a new container if there’s a current\n      // construct.\n      // To do: next major: remove `_gfmTableDynamicInterruptHack` (no longer\n      // needed in micromark-extension-gfm-table@1.0.6).\n      self.interrupt = Boolean(\n        childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack\n      )\n    }\n\n    // Check if there is a new container.\n    self.containerState = {}\n    return effects.check(\n      containerConstruct,\n      thereIsANewContainer,\n      thereIsNoNewContainer\n    )(code)\n  }\n\n  /** @type {State} */\n  function thereIsANewContainer(code) {\n    if (childFlow) closeFlow()\n    exitContainers(continued)\n    return documentContinued(code)\n  }\n\n  /** @type {State} */\n  function thereIsNoNewContainer(code) {\n    self.parser.lazy[self.now().line] = continued !== stack.length\n    lineStartOffset = self.now().offset\n    return flowStart(code)\n  }\n\n  /** @type {State} */\n  function documentContinued(code) {\n    // Try new containers.\n    self.containerState = {}\n    return effects.attempt(\n      containerConstruct,\n      containerContinue,\n      flowStart\n    )(code)\n  }\n\n  /** @type {State} */\n  function containerContinue(code) {\n    continued++\n    stack.push([self.currentConstruct, self.containerState])\n    // Try another.\n    return documentContinued(code)\n  }\n\n  /** @type {State} */\n  function flowStart(code) {\n    if (code === null) {\n      if (childFlow) closeFlow()\n      exitContainers(0)\n      effects.consume(code)\n      return\n    }\n    childFlow = childFlow || self.parser.flow(self.now())\n    effects.enter('chunkFlow', {\n      contentType: 'flow',\n      previous: childToken,\n      _tokenizer: childFlow\n    })\n    return flowContinue(code)\n  }\n\n  /** @type {State} */\n  function flowContinue(code) {\n    if (code === null) {\n      writeToChild(effects.exit('chunkFlow'), true)\n      exitContainers(0)\n      effects.consume(code)\n      return\n    }\n    if (markdownLineEnding(code)) {\n      effects.consume(code)\n      writeToChild(effects.exit('chunkFlow'))\n      // Get ready for the next line.\n      continued = 0\n      self.interrupt = undefined\n      return start\n    }\n    effects.consume(code)\n    return flowContinue\n  }\n\n  /**\n   * @param {Token} token\n   * @param {boolean | undefined} [eof]\n   * @returns {undefined}\n   */\n  function writeToChild(token, eof) {\n    const stream = self.sliceStream(token)\n    if (eof) stream.push(null)\n    token.previous = childToken\n    if (childToken) childToken.next = token\n    childToken = token\n    childFlow.defineSkip(token.start)\n    childFlow.write(stream)\n\n    // Alright, so we just added a lazy line:\n    //\n    // ```markdown\n    // > a\n    // b.\n    //\n    // Or:\n    //\n    // > ~~~c\n    // d\n    //\n    // Or:\n    //\n    // > | e |\n    // f\n    // ```\n    //\n    // The construct in the second example (fenced code) does not accept lazy\n    // lines, so it marked itself as done at the end of its first line, and\n    // then the content construct parses `d`.\n    // Most constructs in markdown match on the first line: if the first line\n    // forms a construct, a non-lazy line can’t “unmake” it.\n    //\n    // The construct in the third example is potentially a GFM table, and\n    // those are *weird*.\n    // It *could* be a table, from the first line, if the following line\n    // matches a condition.\n    // In this case, that second line is lazy, which “unmakes” the first line\n    // and turns the whole into one content block.\n    //\n    // We’ve now parsed the non-lazy and the lazy line, and can figure out\n    // whether the lazy line started a new flow block.\n    // If it did, we exit the current containers between the two flow blocks.\n    if (self.parser.lazy[token.start.line]) {\n      let index = childFlow.events.length\n      while (index--) {\n        if (\n          // The token starts before the line ending…\n          childFlow.events[index][1].start.offset < lineStartOffset &&\n          // …and either is not ended yet…\n          (!childFlow.events[index][1].end ||\n            // …or ends after it.\n            childFlow.events[index][1].end.offset > lineStartOffset)\n        ) {\n          // Exit: there’s still something open, which means it’s a lazy line\n          // part of something.\n          return\n        }\n      }\n\n      // Note: this algorithm for moving events around is similar to the\n      // algorithm when closing flow in `documentContinue`.\n      const indexBeforeExits = self.events.length\n      let indexBeforeFlow = indexBeforeExits\n      /** @type {boolean | undefined} */\n      let seen\n      /** @type {Point | undefined} */\n      let point\n\n      // Find the previous chunk (the one before the lazy line).\n      while (indexBeforeFlow--) {\n        if (\n          self.events[indexBeforeFlow][0] === 'exit' &&\n          self.events[indexBeforeFlow][1].type === 'chunkFlow'\n        ) {\n          if (seen) {\n            point = self.events[indexBeforeFlow][1].end\n            break\n          }\n          seen = true\n        }\n      }\n      exitContainers(continued)\n\n      // Fix positions.\n      index = indexBeforeExits\n      while (index < self.events.length) {\n        self.events[index][1].end = Object.assign({}, point)\n        index++\n      }\n\n      // Inject the exits earlier (they’re still also at the end).\n      splice(\n        self.events,\n        indexBeforeFlow + 1,\n        0,\n        self.events.slice(indexBeforeExits)\n      )\n\n      // Discard the duplicate exits.\n      self.events.length = index\n    }\n  }\n\n  /**\n   * @param {number} size\n   * @returns {undefined}\n   */\n  function exitContainers(size) {\n    let index = stack.length\n\n    // Exit open containers.\n    while (index-- > size) {\n      const entry = stack[index]\n      self.containerState = entry[1]\n      entry[0].exit.call(self, effects)\n    }\n    stack.length = size\n  }\n  function closeFlow() {\n    childFlow.write([null])\n    childToken = undefined\n    childFlow = undefined\n    self.containerState._closeFlow = undefined\n  }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContainer(effects, ok, nok) {\n  // Always populated by defaults.\n\n  return factorySpace(\n    effects,\n    effects.attempt(this.parser.constructs.document, ok, nok),\n    'linePrefix',\n    this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n  )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const blankLine = {\n  tokenize: tokenizeBlankLine,\n  partial: true\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLine(effects, ok, nok) {\n  return start;\n\n  /**\n   * Start of blank line.\n   *\n   * > 👉 **Note**: `␠` represents a space character.\n   *\n   * ```markdown\n   * > | ␠␠␊\n   *     ^\n   * > | ␊\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    return markdownSpace(code) ? factorySpace(effects, after, \"linePrefix\")(code) : after(code);\n  }\n\n  /**\n   * At eof/eol, after optional whitespace.\n   *\n   * > 👉 **Note**: `␠` represents a space character.\n   *\n   * ```markdown\n   * > | ␠␠␊\n   *       ^\n   * > | ␊\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function after(code) {\n    return code === null || markdownLineEnding(code) ? ok(code) : nok(code);\n  }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { subtokenize } from 'micromark-util-subtokenize';\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n  tokenize: tokenizeContent,\n  resolve: resolveContent\n};\n\n/** @type {Construct} */\nconst continuationConstruct = {\n  tokenize: tokenizeContinuation,\n  partial: true\n};\n\n/**\n * Content is transparent: it’s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\nfunction resolveContent(events) {\n  subtokenize(events);\n  return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContent(effects, ok) {\n  /** @type {Token | undefined} */\n  let previous;\n  return chunkStart;\n\n  /**\n   * Before a content chunk.\n   *\n   * ```markdown\n   * > | abc\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function chunkStart(code) {\n    effects.enter(\"content\");\n    previous = effects.enter(\"chunkContent\", {\n      contentType: \"content\"\n    });\n    return chunkInside(code);\n  }\n\n  /**\n   * In a content chunk.\n   *\n   * ```markdown\n   * > | abc\n   *     ^^^\n   * ```\n   *\n   * @type {State}\n   */\n  function chunkInside(code) {\n    if (code === null) {\n      return contentEnd(code);\n    }\n\n    // To do: in `markdown-rs`, each line is parsed on its own, and everything\n    // is stitched together resolving.\n    if (markdownLineEnding(code)) {\n      return effects.check(continuationConstruct, contentContinue, contentEnd)(code);\n    }\n\n    // Data.\n    effects.consume(code);\n    return chunkInside;\n  }\n\n  /**\n   *\n   *\n   * @type {State}\n   */\n  function contentEnd(code) {\n    effects.exit(\"chunkContent\");\n    effects.exit(\"content\");\n    return ok(code);\n  }\n\n  /**\n   *\n   *\n   * @type {State}\n   */\n  function contentContinue(code) {\n    effects.consume(code);\n    effects.exit(\"chunkContent\");\n    previous.next = effects.enter(\"chunkContent\", {\n      contentType: \"content\",\n      previous\n    });\n    previous = previous.next;\n    return chunkInside;\n  }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContinuation(effects, ok, nok) {\n  const self = this;\n  return startLookahead;\n\n  /**\n   *\n   *\n   * @type {State}\n   */\n  function startLookahead(code) {\n    effects.exit(\"chunkContent\");\n    effects.enter(\"lineEnding\");\n    effects.consume(code);\n    effects.exit(\"lineEnding\");\n    return factorySpace(effects, prefixed, \"linePrefix\");\n  }\n\n  /**\n   *\n   *\n   * @type {State}\n   */\n  function prefixed(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return nok(code);\n    }\n\n    // Always populated by defaults.\n\n    const tail = self.events[self.events.length - 1];\n    if (!self.parser.constructs.disable.null.includes('codeIndented') && tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4) {\n      return ok(code);\n    }\n    return effects.interrupt(self.parser.constructs.flow, nok, ok)(code);\n  }\n}","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {blankLine, content} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {InitialConstruct} */\nexport const flow = {\n  tokenize: initializeFlow\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeFlow(effects) {\n  const self = this\n  const initial = effects.attempt(\n    // Try to parse a blank line.\n    blankLine,\n    atBlankEnding,\n    // Try to parse initial flow (essentially, only code).\n    effects.attempt(\n      this.parser.constructs.flowInitial,\n      afterConstruct,\n      factorySpace(\n        effects,\n        effects.attempt(\n          this.parser.constructs.flow,\n          afterConstruct,\n          effects.attempt(content, afterConstruct)\n        ),\n        'linePrefix'\n      )\n    )\n  )\n  return initial\n\n  /** @type {State} */\n  function atBlankEnding(code) {\n    if (code === null) {\n      effects.consume(code)\n      return\n    }\n    effects.enter('lineEndingBlank')\n    effects.consume(code)\n    effects.exit('lineEndingBlank')\n    self.currentConstruct = undefined\n    return initial\n  }\n\n  /** @type {State} */\n  function afterConstruct(code) {\n    if (code === null) {\n      effects.consume(code)\n      return\n    }\n    effects.enter('lineEnding')\n    effects.consume(code)\n    effects.exit('lineEnding')\n    self.currentConstruct = undefined\n    return initial\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nexport const resolver = {\n  resolveAll: createResolver()\n}\nexport const string = initializeFactory('string')\nexport const text = initializeFactory('text')\n\n/**\n * @param {'string' | 'text'} field\n * @returns {InitialConstruct}\n */\nfunction initializeFactory(field) {\n  return {\n    tokenize: initializeText,\n    resolveAll: createResolver(\n      field === 'text' ? resolveAllLineSuffixes : undefined\n    )\n  }\n\n  /**\n   * @this {TokenizeContext}\n   * @type {Initializer}\n   */\n  function initializeText(effects) {\n    const self = this\n    const constructs = this.parser.constructs[field]\n    const text = effects.attempt(constructs, start, notText)\n    return start\n\n    /** @type {State} */\n    function start(code) {\n      return atBreak(code) ? text(code) : notText(code)\n    }\n\n    /** @type {State} */\n    function notText(code) {\n      if (code === null) {\n        effects.consume(code)\n        return\n      }\n      effects.enter('data')\n      effects.consume(code)\n      return data\n    }\n\n    /** @type {State} */\n    function data(code) {\n      if (atBreak(code)) {\n        effects.exit('data')\n        return text(code)\n      }\n\n      // Data.\n      effects.consume(code)\n      return data\n    }\n\n    /**\n     * @param {Code} code\n     * @returns {boolean}\n     */\n    function atBreak(code) {\n      if (code === null) {\n        return true\n      }\n      const list = constructs[code]\n      let index = -1\n      if (list) {\n        // Always populated by defaults.\n\n        while (++index < list.length) {\n          const item = list[index]\n          if (!item.previous || item.previous.call(self, self.previous)) {\n            return true\n          }\n        }\n      }\n      return false\n    }\n  }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * @returns {Resolver}\n */\nfunction createResolver(extraResolver) {\n  return resolveAllText\n\n  /** @type {Resolver} */\n  function resolveAllText(events, context) {\n    let index = -1\n    /** @type {number | undefined} */\n    let enter\n\n    // A rather boring computation (to merge adjacent `data` events) which\n    // improves mm performance by 29%.\n    while (++index <= events.length) {\n      if (enter === undefined) {\n        if (events[index] && events[index][1].type === 'data') {\n          enter = index\n          index++\n        }\n      } else if (!events[index] || events[index][1].type !== 'data') {\n        // Don’t do anything if there is one data token.\n        if (index !== enter + 2) {\n          events[enter][1].end = events[index - 1][1].end\n          events.splice(enter + 2, index - enter - 2)\n          index = enter + 2\n        }\n        enter = undefined\n      }\n    }\n    return extraResolver ? extraResolver(events, context) : events\n  }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n  let eventIndex = 0 // Skip first.\n\n  while (++eventIndex <= events.length) {\n    if (\n      (eventIndex === events.length ||\n        events[eventIndex][1].type === 'lineEnding') &&\n      events[eventIndex - 1][1].type === 'data'\n    ) {\n      const data = events[eventIndex - 1][1]\n      const chunks = context.sliceStream(data)\n      let index = chunks.length\n      let bufferIndex = -1\n      let size = 0\n      /** @type {boolean | undefined} */\n      let tabs\n      while (index--) {\n        const chunk = chunks[index]\n        if (typeof chunk === 'string') {\n          bufferIndex = chunk.length\n          while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n            size++\n            bufferIndex--\n          }\n          if (bufferIndex) break\n          bufferIndex = -1\n        }\n        // Number\n        else if (chunk === -2) {\n          tabs = true\n          size++\n        } else if (chunk === -1) {\n          // Empty\n        } else {\n          // Replacement character, exit.\n          index++\n          break\n        }\n      }\n      if (size) {\n        const token = {\n          type:\n            eventIndex === events.length || tabs || size < 2\n              ? 'lineSuffix'\n              : 'hardBreakTrailing',\n          start: {\n            line: data.end.line,\n            column: data.end.column - size,\n            offset: data.end.offset - size,\n            _index: data.start._index + index,\n            _bufferIndex: index\n              ? bufferIndex\n              : data.start._bufferIndex + bufferIndex\n          },\n          end: Object.assign({}, data.end)\n        }\n        data.end = Object.assign({}, token.start)\n        if (data.start.offset === data.end.offset) {\n          Object.assign(data, token)\n        } else {\n          events.splice(\n            eventIndex,\n            0,\n            ['enter', token, context],\n            ['exit', token, context]\n          )\n          eventIndex += 2\n        }\n      }\n      eventIndex++\n    }\n  }\n  return events\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {Array<{resolveAll?: Resolver | undefined}>} constructs\n *   List of constructs, optionally with `resolveAll`s.\n * @param {Array<Event>} events\n *   List of events.\n * @param {TokenizeContext} context\n *   Context used by `tokenize`.\n * @returns {Array<Event>}\n *   Changed events.\n */\nexport function resolveAll(constructs, events, context) {\n  /** @type {Array<Resolver>} */\n  const called = []\n  let index = -1\n\n  while (++index < constructs.length) {\n    const resolve = constructs[index].resolveAll\n\n    if (resolve && !called.includes(resolve)) {\n      events = resolve(events, context)\n      called.push(resolve)\n    }\n  }\n\n  return events\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenType} TokenType\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * @callback Restore\n * @returns {undefined}\n *\n * @typedef Info\n * @property {Restore} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n *   Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {undefined}\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit<Point, '_bufferIndex' | '_index'> | undefined} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n  /** @type {Point} */\n  let point = Object.assign(\n    from\n      ? Object.assign({}, from)\n      : {\n          line: 1,\n          column: 1,\n          offset: 0\n        },\n    {\n      _index: 0,\n      _bufferIndex: -1\n    }\n  )\n  /** @type {Record<string, number>} */\n  const columnStart = {}\n  /** @type {Array<Construct>} */\n  const resolveAllConstructs = []\n  /** @type {Array<Chunk>} */\n  let chunks = []\n  /** @type {Array<Token>} */\n  let stack = []\n  /** @type {boolean | undefined} */\n  let consumed = true\n\n  /**\n   * Tools used for tokenizing.\n   *\n   * @type {Effects}\n   */\n  const effects = {\n    consume,\n    enter,\n    exit,\n    attempt: constructFactory(onsuccessfulconstruct),\n    check: constructFactory(onsuccessfulcheck),\n    interrupt: constructFactory(onsuccessfulcheck, {\n      interrupt: true\n    })\n  }\n\n  /**\n   * State and tools for resolving and serializing.\n   *\n   * @type {TokenizeContext}\n   */\n  const context = {\n    previous: null,\n    code: null,\n    containerState: {},\n    events: [],\n    parser,\n    sliceStream,\n    sliceSerialize,\n    now,\n    defineSkip,\n    write\n  }\n\n  /**\n   * The state function.\n   *\n   * @type {State | undefined}\n   */\n  let state = initialize.tokenize.call(context, effects)\n\n  /**\n   * Track which character we expect to be consumed, to catch bugs.\n   *\n   * @type {Code}\n   */\n  let expectedCode\n  if (initialize.resolveAll) {\n    resolveAllConstructs.push(initialize)\n  }\n  return context\n\n  /** @type {TokenizeContext['write']} */\n  function write(slice) {\n    chunks = push(chunks, slice)\n    main()\n\n    // Exit if we’re not done, resolve might change stuff.\n    if (chunks[chunks.length - 1] !== null) {\n      return []\n    }\n    addResult(initialize, 0)\n\n    // Otherwise, resolve, and exit.\n    context.events = resolveAll(resolveAllConstructs, context.events, context)\n    return context.events\n  }\n\n  //\n  // Tools.\n  //\n\n  /** @type {TokenizeContext['sliceSerialize']} */\n  function sliceSerialize(token, expandTabs) {\n    return serializeChunks(sliceStream(token), expandTabs)\n  }\n\n  /** @type {TokenizeContext['sliceStream']} */\n  function sliceStream(token) {\n    return sliceChunks(chunks, token)\n  }\n\n  /** @type {TokenizeContext['now']} */\n  function now() {\n    // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n    const {line, column, offset, _index, _bufferIndex} = point\n    return {\n      line,\n      column,\n      offset,\n      _index,\n      _bufferIndex\n    }\n  }\n\n  /** @type {TokenizeContext['defineSkip']} */\n  function defineSkip(value) {\n    columnStart[value.line] = value.column\n    accountForPotentialSkip()\n  }\n\n  //\n  // State management.\n  //\n\n  /**\n   * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n   * `consume`).\n   * Here is where we walk through the chunks, which either include strings of\n   * several characters, or numerical character codes.\n   * The reason to do this in a loop instead of a call is so the stack can\n   * drain.\n   *\n   * @returns {undefined}\n   */\n  function main() {\n    /** @type {number} */\n    let chunkIndex\n    while (point._index < chunks.length) {\n      const chunk = chunks[point._index]\n\n      // If we’re in a buffer chunk, loop through it.\n      if (typeof chunk === 'string') {\n        chunkIndex = point._index\n        if (point._bufferIndex < 0) {\n          point._bufferIndex = 0\n        }\n        while (\n          point._index === chunkIndex &&\n          point._bufferIndex < chunk.length\n        ) {\n          go(chunk.charCodeAt(point._bufferIndex))\n        }\n      } else {\n        go(chunk)\n      }\n    }\n  }\n\n  /**\n   * Deal with one code.\n   *\n   * @param {Code} code\n   * @returns {undefined}\n   */\n  function go(code) {\n    consumed = undefined\n    expectedCode = code\n    state = state(code)\n  }\n\n  /** @type {Effects['consume']} */\n  function consume(code) {\n    if (markdownLineEnding(code)) {\n      point.line++\n      point.column = 1\n      point.offset += code === -3 ? 2 : 1\n      accountForPotentialSkip()\n    } else if (code !== -1) {\n      point.column++\n      point.offset++\n    }\n\n    // Not in a string chunk.\n    if (point._bufferIndex < 0) {\n      point._index++\n    } else {\n      point._bufferIndex++\n\n      // At end of string chunk.\n      // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n      // strings.\n      if (point._bufferIndex === chunks[point._index].length) {\n        point._bufferIndex = -1\n        point._index++\n      }\n    }\n\n    // Expose the previous character.\n    context.previous = code\n\n    // Mark as consumed.\n    consumed = true\n  }\n\n  /** @type {Effects['enter']} */\n  function enter(type, fields) {\n    /** @type {Token} */\n    // @ts-expect-error Patch instead of assign required fields to help GC.\n    const token = fields || {}\n    token.type = type\n    token.start = now()\n    context.events.push(['enter', token, context])\n    stack.push(token)\n    return token\n  }\n\n  /** @type {Effects['exit']} */\n  function exit(type) {\n    const token = stack.pop()\n    token.end = now()\n    context.events.push(['exit', token, context])\n    return token\n  }\n\n  /**\n   * Use results.\n   *\n   * @type {ReturnHandle}\n   */\n  function onsuccessfulconstruct(construct, info) {\n    addResult(construct, info.from)\n  }\n\n  /**\n   * Discard results.\n   *\n   * @type {ReturnHandle}\n   */\n  function onsuccessfulcheck(_, info) {\n    info.restore()\n  }\n\n  /**\n   * Factory to attempt/check/interrupt.\n   *\n   * @param {ReturnHandle} onreturn\n   * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n   */\n  function constructFactory(onreturn, fields) {\n    return hook\n\n    /**\n     * Handle either an object mapping codes to constructs, a list of\n     * constructs, or a single construct.\n     *\n     * @param {Array<Construct> | Construct | ConstructRecord} constructs\n     * @param {State} returnState\n     * @param {State | undefined} [bogusState]\n     * @returns {State}\n     */\n    function hook(constructs, returnState, bogusState) {\n      /** @type {Array<Construct>} */\n      let listOfConstructs\n      /** @type {number} */\n      let constructIndex\n      /** @type {Construct} */\n      let currentConstruct\n      /** @type {Info} */\n      let info\n      return Array.isArray(constructs) /* c8 ignore next 1 */\n        ? handleListOfConstructs(constructs)\n        : 'tokenize' in constructs\n        ? // @ts-expect-error Looks like a construct.\n          handleListOfConstructs([constructs])\n        : handleMapOfConstructs(constructs)\n\n      /**\n       * Handle a list of construct.\n       *\n       * @param {ConstructRecord} map\n       * @returns {State}\n       */\n      function handleMapOfConstructs(map) {\n        return start\n\n        /** @type {State} */\n        function start(code) {\n          const def = code !== null && map[code]\n          const all = code !== null && map.null\n          const list = [\n            // To do: add more extension tests.\n            /* c8 ignore next 2 */\n            ...(Array.isArray(def) ? def : def ? [def] : []),\n            ...(Array.isArray(all) ? all : all ? [all] : [])\n          ]\n          return handleListOfConstructs(list)(code)\n        }\n      }\n\n      /**\n       * Handle a list of construct.\n       *\n       * @param {Array<Construct>} list\n       * @returns {State}\n       */\n      function handleListOfConstructs(list) {\n        listOfConstructs = list\n        constructIndex = 0\n        if (list.length === 0) {\n          return bogusState\n        }\n        return handleConstruct(list[constructIndex])\n      }\n\n      /**\n       * Handle a single construct.\n       *\n       * @param {Construct} construct\n       * @returns {State}\n       */\n      function handleConstruct(construct) {\n        return start\n\n        /** @type {State} */\n        function start(code) {\n          // To do: not needed to store if there is no bogus state, probably?\n          // Currently doesn’t work because `inspect` in document does a check\n          // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n          // by not storing.\n          info = store()\n          currentConstruct = construct\n          if (!construct.partial) {\n            context.currentConstruct = construct\n          }\n\n          // Always populated by defaults.\n\n          if (\n            construct.name &&\n            context.parser.constructs.disable.null.includes(construct.name)\n          ) {\n            return nok(code)\n          }\n          return construct.tokenize.call(\n            // If we do have fields, create an object w/ `context` as its\n            // prototype.\n            // This allows a “live binding”, which is needed for `interrupt`.\n            fields ? Object.assign(Object.create(context), fields) : context,\n            effects,\n            ok,\n            nok\n          )(code)\n        }\n      }\n\n      /** @type {State} */\n      function ok(code) {\n        consumed = true\n        onreturn(currentConstruct, info)\n        return returnState\n      }\n\n      /** @type {State} */\n      function nok(code) {\n        consumed = true\n        info.restore()\n        if (++constructIndex < listOfConstructs.length) {\n          return handleConstruct(listOfConstructs[constructIndex])\n        }\n        return bogusState\n      }\n    }\n  }\n\n  /**\n   * @param {Construct} construct\n   * @param {number} from\n   * @returns {undefined}\n   */\n  function addResult(construct, from) {\n    if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n      resolveAllConstructs.push(construct)\n    }\n    if (construct.resolve) {\n      splice(\n        context.events,\n        from,\n        context.events.length - from,\n        construct.resolve(context.events.slice(from), context)\n      )\n    }\n    if (construct.resolveTo) {\n      context.events = construct.resolveTo(context.events, context)\n    }\n  }\n\n  /**\n   * Store state.\n   *\n   * @returns {Info}\n   */\n  function store() {\n    const startPoint = now()\n    const startPrevious = context.previous\n    const startCurrentConstruct = context.currentConstruct\n    const startEventsIndex = context.events.length\n    const startStack = Array.from(stack)\n    return {\n      restore,\n      from: startEventsIndex\n    }\n\n    /**\n     * Restore state.\n     *\n     * @returns {undefined}\n     */\n    function restore() {\n      point = startPoint\n      context.previous = startPrevious\n      context.currentConstruct = startCurrentConstruct\n      context.events.length = startEventsIndex\n      stack = startStack\n      accountForPotentialSkip()\n    }\n  }\n\n  /**\n   * Move the current point a bit forward in the line when it’s on a column\n   * skip.\n   *\n   * @returns {undefined}\n   */\n  function accountForPotentialSkip() {\n    if (point.line in columnStart && point.column < 2) {\n      point.column = columnStart[point.line]\n      point.offset += columnStart[point.line] - 1\n    }\n  }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Array<Chunk>} chunks\n * @param {Pick<Token, 'end' | 'start'>} token\n * @returns {Array<Chunk>}\n */\nfunction sliceChunks(chunks, token) {\n  const startIndex = token.start._index\n  const startBufferIndex = token.start._bufferIndex\n  const endIndex = token.end._index\n  const endBufferIndex = token.end._bufferIndex\n  /** @type {Array<Chunk>} */\n  let view\n  if (startIndex === endIndex) {\n    // @ts-expect-error `_bufferIndex` is used on string chunks.\n    view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n  } else {\n    view = chunks.slice(startIndex, endIndex)\n    if (startBufferIndex > -1) {\n      const head = view[0]\n      if (typeof head === 'string') {\n        view[0] = head.slice(startBufferIndex)\n      } else {\n        view.shift()\n      }\n    }\n    if (endBufferIndex > 0) {\n      // @ts-expect-error `_bufferIndex` is used on string chunks.\n      view.push(chunks[endIndex].slice(0, endBufferIndex))\n    }\n  }\n  return view\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Array<Chunk>} chunks\n * @param {boolean | undefined} [expandTabs=false]\n * @returns {string}\n */\nfunction serializeChunks(chunks, expandTabs) {\n  let index = -1\n  /** @type {Array<string>} */\n  const result = []\n  /** @type {boolean | undefined} */\n  let atTab\n  while (++index < chunks.length) {\n    const chunk = chunks[index]\n    /** @type {string} */\n    let value\n    if (typeof chunk === 'string') {\n      value = chunk\n    } else\n      switch (chunk) {\n        case -5: {\n          value = '\\r'\n          break\n        }\n        case -4: {\n          value = '\\n'\n          break\n        }\n        case -3: {\n          value = '\\r' + '\\n'\n          break\n        }\n        case -2: {\n          value = expandTabs ? ' ' : '\\t'\n          break\n        }\n        case -1: {\n          if (!expandTabs && atTab) continue\n          value = ' '\n          break\n        }\n        default: {\n          // Currently only replacement character.\n          value = String.fromCharCode(chunk)\n        }\n      }\n    atTab = chunk === -2\n    result.push(value)\n  }\n  return result.join('')\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const thematicBreak = {\n  name: 'thematicBreak',\n  tokenize: tokenizeThematicBreak\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n  let size = 0;\n  /** @type {NonNullable<Code>} */\n  let marker;\n  return start;\n\n  /**\n   * Start of thematic break.\n   *\n   * ```markdown\n   * > | ***\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter(\"thematicBreak\");\n    // To do: parse indent like `markdown-rs`.\n    return before(code);\n  }\n\n  /**\n   * After optional whitespace, at marker.\n   *\n   * ```markdown\n   * > | ***\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function before(code) {\n    marker = code;\n    return atBreak(code);\n  }\n\n  /**\n   * After something, before something else.\n   *\n   * ```markdown\n   * > | ***\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function atBreak(code) {\n    if (code === marker) {\n      effects.enter(\"thematicBreakSequence\");\n      return sequence(code);\n    }\n    if (size >= 3 && (code === null || markdownLineEnding(code))) {\n      effects.exit(\"thematicBreak\");\n      return ok(code);\n    }\n    return nok(code);\n  }\n\n  /**\n   * In sequence.\n   *\n   * ```markdown\n   * > | ***\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function sequence(code) {\n    if (code === marker) {\n      effects.consume(code);\n      size++;\n      return sequence;\n    }\n    effects.exit(\"thematicBreakSequence\");\n    return markdownSpace(code) ? factorySpace(effects, atBreak, \"whitespace\")(code) : atBreak(code);\n  }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiDigit, markdownSpace } from 'micromark-util-character';\nimport { blankLine } from './blank-line.js';\nimport { thematicBreak } from './thematic-break.js';\n\n/** @type {Construct} */\nexport const list = {\n  name: 'list',\n  tokenize: tokenizeListStart,\n  continuation: {\n    tokenize: tokenizeListContinuation\n  },\n  exit: tokenizeListEnd\n};\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n  tokenize: tokenizeListItemPrefixWhitespace,\n  partial: true\n};\n\n/** @type {Construct} */\nconst indentConstruct = {\n  tokenize: tokenizeIndent,\n  partial: true\n};\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n  const self = this;\n  const tail = self.events[self.events.length - 1];\n  let initialSize = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n  let size = 0;\n  return start;\n\n  /** @type {State} */\n  function start(code) {\n    const kind = self.containerState.type || (code === 42 || code === 43 || code === 45 ? \"listUnordered\" : \"listOrdered\");\n    if (kind === \"listUnordered\" ? !self.containerState.marker || code === self.containerState.marker : asciiDigit(code)) {\n      if (!self.containerState.type) {\n        self.containerState.type = kind;\n        effects.enter(kind, {\n          _container: true\n        });\n      }\n      if (kind === \"listUnordered\") {\n        effects.enter(\"listItemPrefix\");\n        return code === 42 || code === 45 ? effects.check(thematicBreak, nok, atMarker)(code) : atMarker(code);\n      }\n      if (!self.interrupt || code === 49) {\n        effects.enter(\"listItemPrefix\");\n        effects.enter(\"listItemValue\");\n        return inside(code);\n      }\n    }\n    return nok(code);\n  }\n\n  /** @type {State} */\n  function inside(code) {\n    if (asciiDigit(code) && ++size < 10) {\n      effects.consume(code);\n      return inside;\n    }\n    if ((!self.interrupt || size < 2) && (self.containerState.marker ? code === self.containerState.marker : code === 41 || code === 46)) {\n      effects.exit(\"listItemValue\");\n      return atMarker(code);\n    }\n    return nok(code);\n  }\n\n  /**\n   * @type {State}\n   **/\n  function atMarker(code) {\n    effects.enter(\"listItemMarker\");\n    effects.consume(code);\n    effects.exit(\"listItemMarker\");\n    self.containerState.marker = self.containerState.marker || code;\n    return effects.check(blankLine,\n    // Can’t be empty when interrupting.\n    self.interrupt ? nok : onBlank, effects.attempt(listItemPrefixWhitespaceConstruct, endOfPrefix, otherPrefix));\n  }\n\n  /** @type {State} */\n  function onBlank(code) {\n    self.containerState.initialBlankLine = true;\n    initialSize++;\n    return endOfPrefix(code);\n  }\n\n  /** @type {State} */\n  function otherPrefix(code) {\n    if (markdownSpace(code)) {\n      effects.enter(\"listItemPrefixWhitespace\");\n      effects.consume(code);\n      effects.exit(\"listItemPrefixWhitespace\");\n      return endOfPrefix;\n    }\n    return nok(code);\n  }\n\n  /** @type {State} */\n  function endOfPrefix(code) {\n    self.containerState.size = initialSize + self.sliceSerialize(effects.exit(\"listItemPrefix\"), true).length;\n    return ok(code);\n  }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n  const self = this;\n  self.containerState._closeFlow = undefined;\n  return effects.check(blankLine, onBlank, notBlank);\n\n  /** @type {State} */\n  function onBlank(code) {\n    self.containerState.furtherBlankLines = self.containerState.furtherBlankLines || self.containerState.initialBlankLine;\n\n    // We have a blank line.\n    // Still, try to consume at most the items size.\n    return factorySpace(effects, ok, \"listItemIndent\", self.containerState.size + 1)(code);\n  }\n\n  /** @type {State} */\n  function notBlank(code) {\n    if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n      self.containerState.furtherBlankLines = undefined;\n      self.containerState.initialBlankLine = undefined;\n      return notInCurrentItem(code);\n    }\n    self.containerState.furtherBlankLines = undefined;\n    self.containerState.initialBlankLine = undefined;\n    return effects.attempt(indentConstruct, ok, notInCurrentItem)(code);\n  }\n\n  /** @type {State} */\n  function notInCurrentItem(code) {\n    // While we do continue, we signal that the flow should be closed.\n    self.containerState._closeFlow = true;\n    // As we’re closing flow, we’re no longer interrupting.\n    self.interrupt = undefined;\n    // Always populated by defaults.\n\n    return factorySpace(effects, effects.attempt(list, ok, nok), \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n  }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n  const self = this;\n  return factorySpace(effects, afterPrefix, \"listItemIndent\", self.containerState.size + 1);\n\n  /** @type {State} */\n  function afterPrefix(code) {\n    const tail = self.events[self.events.length - 1];\n    return tail && tail[1].type === \"listItemIndent\" && tail[2].sliceSerialize(tail[1], true).length === self.containerState.size ? ok(code) : nok(code);\n  }\n}\n\n/**\n * @type {Exiter}\n * @this {TokenizeContext}\n */\nfunction tokenizeListEnd(effects) {\n  effects.exit(this.containerState.type);\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n  const self = this;\n\n  // Always populated by defaults.\n\n  return factorySpace(effects, afterPrefix, \"listItemPrefixWhitespace\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4 + 1);\n\n  /** @type {State} */\n  function afterPrefix(code) {\n    const tail = self.events[self.events.length - 1];\n    return !markdownSpace(code) && tail && tail[1].type === \"listItemPrefixWhitespace\" ? ok(code) : nok(code);\n  }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const blockQuote = {\n  name: 'blockQuote',\n  tokenize: tokenizeBlockQuoteStart,\n  continuation: {\n    tokenize: tokenizeBlockQuoteContinuation\n  },\n  exit\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n  const self = this;\n  return start;\n\n  /**\n   * Start of block quote.\n   *\n   * ```markdown\n   * > | > a\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    if (code === 62) {\n      const state = self.containerState;\n      if (!state.open) {\n        effects.enter(\"blockQuote\", {\n          _container: true\n        });\n        state.open = true;\n      }\n      effects.enter(\"blockQuotePrefix\");\n      effects.enter(\"blockQuoteMarker\");\n      effects.consume(code);\n      effects.exit(\"blockQuoteMarker\");\n      return after;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After `>`, before optional whitespace.\n   *\n   * ```markdown\n   * > | > a\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function after(code) {\n    if (markdownSpace(code)) {\n      effects.enter(\"blockQuotePrefixWhitespace\");\n      effects.consume(code);\n      effects.exit(\"blockQuotePrefixWhitespace\");\n      effects.exit(\"blockQuotePrefix\");\n      return ok;\n    }\n    effects.exit(\"blockQuotePrefix\");\n    return ok(code);\n  }\n}\n\n/**\n * Start of block quote continuation.\n *\n * ```markdown\n *   | > a\n * > | > b\n *     ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n  const self = this;\n  return contStart;\n\n  /**\n   * Start of block quote continuation.\n   *\n   * Also used to parse the first block quote opening.\n   *\n   * ```markdown\n   *   | > a\n   * > | > b\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function contStart(code) {\n    if (markdownSpace(code)) {\n      // Always populated by defaults.\n\n      return factorySpace(effects, contBefore, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n    }\n    return contBefore(code);\n  }\n\n  /**\n   * At `>`, after optional whitespace.\n   *\n   * Also used to parse the first block quote opening.\n   *\n   * ```markdown\n   *   | > a\n   * > | > b\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function contBefore(code) {\n    return effects.attempt(blockQuote, ok, nok)(code);\n  }\n}\n\n/** @type {Exiter} */\nfunction exit(effects) {\n  effects.exit(\"blockQuote\");\n}","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {\n  asciiControl,\n  markdownLineEndingOrSpace,\n  markdownLineEnding\n} from 'micromark-util-character'\n/**\n * Parse destinations.\n *\n * ###### Examples\n *\n * ```markdown\n * <a>\n * <a\\>b>\n * <a b>\n * <a)>\n * a\n * a\\)b\n * a(b)c\n * a(b)\n * ```\n *\n * @param {Effects} effects\n *   Context.\n * @param {State} ok\n *   State switched to when successful.\n * @param {State} nok\n *   State switched to when unsuccessful.\n * @param {TokenType} type\n *   Type for whole (`<a>` or `b`).\n * @param {TokenType} literalType\n *   Type when enclosed (`<a>`).\n * @param {TokenType} literalMarkerType\n *   Type for enclosing (`<` and `>`).\n * @param {TokenType} rawType\n *   Type when not enclosed (`b`).\n * @param {TokenType} stringType\n *   Type for the value (`a` or `b`).\n * @param {number | undefined} [max=Infinity]\n *   Depth of nested parens (inclusive).\n * @returns {State}\n *   Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryDestination(\n  effects,\n  ok,\n  nok,\n  type,\n  literalType,\n  literalMarkerType,\n  rawType,\n  stringType,\n  max\n) {\n  const limit = max || Number.POSITIVE_INFINITY\n  let balance = 0\n  return start\n\n  /**\n   * Start of destination.\n   *\n   * ```markdown\n   * > | <aa>\n   *     ^\n   * > | aa\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    if (code === 60) {\n      effects.enter(type)\n      effects.enter(literalType)\n      effects.enter(literalMarkerType)\n      effects.consume(code)\n      effects.exit(literalMarkerType)\n      return enclosedBefore\n    }\n\n    // ASCII control, space, closing paren.\n    if (code === null || code === 32 || code === 41 || asciiControl(code)) {\n      return nok(code)\n    }\n    effects.enter(type)\n    effects.enter(rawType)\n    effects.enter(stringType)\n    effects.enter('chunkString', {\n      contentType: 'string'\n    })\n    return raw(code)\n  }\n\n  /**\n   * After `<`, at an enclosed destination.\n   *\n   * ```markdown\n   * > | <aa>\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function enclosedBefore(code) {\n    if (code === 62) {\n      effects.enter(literalMarkerType)\n      effects.consume(code)\n      effects.exit(literalMarkerType)\n      effects.exit(literalType)\n      effects.exit(type)\n      return ok\n    }\n    effects.enter(stringType)\n    effects.enter('chunkString', {\n      contentType: 'string'\n    })\n    return enclosed(code)\n  }\n\n  /**\n   * In enclosed destination.\n   *\n   * ```markdown\n   * > | <aa>\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function enclosed(code) {\n    if (code === 62) {\n      effects.exit('chunkString')\n      effects.exit(stringType)\n      return enclosedBefore(code)\n    }\n    if (code === null || code === 60 || markdownLineEnding(code)) {\n      return nok(code)\n    }\n    effects.consume(code)\n    return code === 92 ? enclosedEscape : enclosed\n  }\n\n  /**\n   * After `\\`, at a special character.\n   *\n   * ```markdown\n   * > | <a\\*a>\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function enclosedEscape(code) {\n    if (code === 60 || code === 62 || code === 92) {\n      effects.consume(code)\n      return enclosed\n    }\n    return enclosed(code)\n  }\n\n  /**\n   * In raw destination.\n   *\n   * ```markdown\n   * > | aa\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function raw(code) {\n    if (\n      !balance &&\n      (code === null || code === 41 || markdownLineEndingOrSpace(code))\n    ) {\n      effects.exit('chunkString')\n      effects.exit(stringType)\n      effects.exit(rawType)\n      effects.exit(type)\n      return ok(code)\n    }\n    if (balance < limit && code === 40) {\n      effects.consume(code)\n      balance++\n      return raw\n    }\n    if (code === 41) {\n      effects.consume(code)\n      balance--\n      return raw\n    }\n\n    // ASCII control (but *not* `\\0`) and space and `(`.\n    // Note: in `markdown-rs`, `\\0` exists in codes, in `micromark-js` it\n    // doesn’t.\n    if (code === null || code === 32 || code === 40 || asciiControl(code)) {\n      return nok(code)\n    }\n    effects.consume(code)\n    return code === 92 ? rawEscape : raw\n  }\n\n  /**\n   * After `\\`, at special character.\n   *\n   * ```markdown\n   * > | a\\*a\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function rawEscape(code) {\n    if (code === 40 || code === 41 || code === 92) {\n      effects.consume(code)\n      return raw\n    }\n    return raw(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/**\n * Parse labels.\n *\n * > 👉 **Note**: labels in markdown are capped at 999 characters in the string.\n *\n * ###### Examples\n *\n * ```markdown\n * [a]\n * [a\n * b]\n * [a\\]b]\n * ```\n *\n * @this {TokenizeContext}\n *   Tokenize context.\n * @param {Effects} effects\n *   Context.\n * @param {State} ok\n *   State switched to when successful.\n * @param {State} nok\n *   State switched to when unsuccessful.\n * @param {TokenType} type\n *   Type of the whole label (`[a]`).\n * @param {TokenType} markerType\n *   Type for the markers (`[` and `]`).\n * @param {TokenType} stringType\n *   Type for the identifier (`a`).\n * @returns {State}\n *   Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n  const self = this\n  let size = 0\n  /** @type {boolean} */\n  let seen\n  return start\n\n  /**\n   * Start of label.\n   *\n   * ```markdown\n   * > | [a]\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter(type)\n    effects.enter(markerType)\n    effects.consume(code)\n    effects.exit(markerType)\n    effects.enter(stringType)\n    return atBreak\n  }\n\n  /**\n   * In label, at something, before something else.\n   *\n   * ```markdown\n   * > | [a]\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function atBreak(code) {\n    if (\n      size > 999 ||\n      code === null ||\n      code === 91 ||\n      (code === 93 && !seen) ||\n      // To do: remove in the future once we’ve switched from\n      // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n      // which doesn’t need this.\n      // Hidden footnotes hook.\n      /* c8 ignore next 3 */\n      (code === 94 &&\n        !size &&\n        '_hiddenFootnoteSupport' in self.parser.constructs)\n    ) {\n      return nok(code)\n    }\n    if (code === 93) {\n      effects.exit(stringType)\n      effects.enter(markerType)\n      effects.consume(code)\n      effects.exit(markerType)\n      effects.exit(type)\n      return ok\n    }\n\n    // To do: indent? Link chunks and EOLs together?\n    if (markdownLineEnding(code)) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      return atBreak\n    }\n    effects.enter('chunkString', {\n      contentType: 'string'\n    })\n    return labelInside(code)\n  }\n\n  /**\n   * In label, in text.\n   *\n   * ```markdown\n   * > | [a]\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function labelInside(code) {\n    if (\n      code === null ||\n      code === 91 ||\n      code === 93 ||\n      markdownLineEnding(code) ||\n      size++ > 999\n    ) {\n      effects.exit('chunkString')\n      return atBreak(code)\n    }\n    effects.consume(code)\n    if (!seen) seen = !markdownSpace(code)\n    return code === 92 ? labelEscape : labelInside\n  }\n\n  /**\n   * After `\\`, at a special character.\n   *\n   * ```markdown\n   * > | [a\\*a]\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function labelEscape(code) {\n    if (code === 91 || code === 92 || code === 93) {\n      effects.consume(code)\n      size++\n      return labelInside\n    }\n    return labelInside(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/**\n * Parse titles.\n *\n * ###### Examples\n *\n * ```markdown\n * \"a\"\n * 'b'\n * (c)\n * \"a\n * b\"\n * 'a\n *     b'\n * (a\\)b)\n * ```\n *\n * @param {Effects} effects\n *   Context.\n * @param {State} ok\n *   State switched to when successful.\n * @param {State} nok\n *   State switched to when unsuccessful.\n * @param {TokenType} type\n *   Type of the whole title (`\"a\"`, `'b'`, `(c)`).\n * @param {TokenType} markerType\n *   Type for the markers (`\"`, `'`, `(`, and `)`).\n * @param {TokenType} stringType\n *   Type for the value (`a`).\n * @returns {State}\n *   Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n  /** @type {NonNullable<Code>} */\n  let marker\n  return start\n\n  /**\n   * Start of title.\n   *\n   * ```markdown\n   * > | \"a\"\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    if (code === 34 || code === 39 || code === 40) {\n      effects.enter(type)\n      effects.enter(markerType)\n      effects.consume(code)\n      effects.exit(markerType)\n      marker = code === 40 ? 41 : code\n      return begin\n    }\n    return nok(code)\n  }\n\n  /**\n   * After opening marker.\n   *\n   * This is also used at the closing marker.\n   *\n   * ```markdown\n   * > | \"a\"\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function begin(code) {\n    if (code === marker) {\n      effects.enter(markerType)\n      effects.consume(code)\n      effects.exit(markerType)\n      effects.exit(type)\n      return ok\n    }\n    effects.enter(stringType)\n    return atBreak(code)\n  }\n\n  /**\n   * At something, before something else.\n   *\n   * ```markdown\n   * > | \"a\"\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function atBreak(code) {\n    if (code === marker) {\n      effects.exit(stringType)\n      return begin(marker)\n    }\n    if (code === null) {\n      return nok(code)\n    }\n\n    // Note: blank lines can’t exist in content.\n    if (markdownLineEnding(code)) {\n      // To do: use `space_or_tab_eol_with_options`, connect.\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      return factorySpace(effects, atBreak, 'linePrefix')\n    }\n    effects.enter('chunkString', {\n      contentType: 'string'\n    })\n    return inside(code)\n  }\n\n  /**\n   *\n   *\n   * @type {State}\n   */\n  function inside(code) {\n    if (code === marker || code === null || markdownLineEnding(code)) {\n      effects.exit('chunkString')\n      return atBreak(code)\n    }\n    effects.consume(code)\n    return code === 92 ? escape : inside\n  }\n\n  /**\n   * After `\\`, at a special character.\n   *\n   * ```markdown\n   * > | \"a\\*b\"\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function escape(code) {\n    if (code === marker || code === 92) {\n      effects.consume(code)\n      return inside\n    }\n    return inside(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * *   line endings or spaces in markdown are often optional, in which case this\n *     factory can be used and `ok` will be switched to whether spaces were found\n *     or not\n * *   one line ending or space can be detected with\n *     `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`\n *\n * @param {Effects} effects\n *   Context.\n * @param {State} ok\n *   State switched to when successful.\n * @returns {State}\n *   Start state.\n */\nexport function factoryWhitespace(effects, ok) {\n  /** @type {boolean} */\n  let seen\n  return start\n\n  /** @type {State} */\n  function start(code) {\n    if (markdownLineEnding(code)) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      seen = true\n      return start\n    }\n    if (markdownSpace(code)) {\n      return factorySpace(\n        effects,\n        start,\n        seen ? 'linePrefix' : 'lineSuffix'\n      )(code)\n    }\n    return ok(code)\n  }\n}\n","/**\n * Normalize an identifier (as found in references, definitions).\n *\n * Collapses markdown whitespace, trim, and then lower- and uppercase.\n *\n * Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their\n * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different\n * uppercase character (U+0398 (`Θ`)).\n * So, to get a canonical form, we perform both lower- and uppercase.\n *\n * Using uppercase last makes sure keys will never interact with default\n * prototypal values (such as `constructor`): nothing in the prototype of\n * `Object` is uppercase.\n *\n * @param {string} value\n *   Identifier to normalize.\n * @returns {string}\n *   Normalized identifier.\n */\nexport function normalizeIdentifier(value) {\n  return (\n    value\n      // Collapse markdown whitespace.\n      .replace(/[\\t\\n\\r ]+/g, ' ')\n      // Trim.\n      .replace(/^ | $/g, '')\n      // Some characters are considered “uppercase”, but if their lowercase\n      // counterpart is uppercased will result in a different uppercase\n      // character.\n      // Hence, to get that form, we perform both lower- and uppercase.\n      // Upper case makes sure keys will not interact with default prototypal\n      // methods: no method is uppercase.\n      .toLowerCase()\n      .toUpperCase()\n  )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factorySpace } from 'micromark-factory-space';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\n/** @type {Construct} */\nexport const definition = {\n  name: 'definition',\n  tokenize: tokenizeDefinition\n};\n\n/** @type {Construct} */\nconst titleBefore = {\n  tokenize: tokenizeTitleBefore,\n  partial: true\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinition(effects, ok, nok) {\n  const self = this;\n  /** @type {string} */\n  let identifier;\n  return start;\n\n  /**\n   * At start of a definition.\n   *\n   * ```markdown\n   * > | [a]: b \"c\"\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    // Do not interrupt paragraphs (but do follow definitions).\n    // To do: do `interrupt` the way `markdown-rs` does.\n    // To do: parse whitespace the way `markdown-rs` does.\n    effects.enter(\"definition\");\n    return before(code);\n  }\n\n  /**\n   * After optional whitespace, at `[`.\n   *\n   * ```markdown\n   * > | [a]: b \"c\"\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function before(code) {\n    // To do: parse whitespace the way `markdown-rs` does.\n\n    return factoryLabel.call(self, effects, labelAfter,\n    // Note: we don’t need to reset the way `markdown-rs` does.\n    nok, \"definitionLabel\", \"definitionLabelMarker\", \"definitionLabelString\")(code);\n  }\n\n  /**\n   * After label.\n   *\n   * ```markdown\n   * > | [a]: b \"c\"\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function labelAfter(code) {\n    identifier = normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1));\n    if (code === 58) {\n      effects.enter(\"definitionMarker\");\n      effects.consume(code);\n      effects.exit(\"definitionMarker\");\n      return markerAfter;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After marker.\n   *\n   * ```markdown\n   * > | [a]: b \"c\"\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function markerAfter(code) {\n    // Note: whitespace is optional.\n    return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, destinationBefore)(code) : destinationBefore(code);\n  }\n\n  /**\n   * Before destination.\n   *\n   * ```markdown\n   * > | [a]: b \"c\"\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function destinationBefore(code) {\n    return factoryDestination(effects, destinationAfter,\n    // Note: we don’t need to reset the way `markdown-rs` does.\n    nok, \"definitionDestination\", \"definitionDestinationLiteral\", \"definitionDestinationLiteralMarker\", \"definitionDestinationRaw\", \"definitionDestinationString\")(code);\n  }\n\n  /**\n   * After destination.\n   *\n   * ```markdown\n   * > | [a]: b \"c\"\n   *           ^\n   * ```\n   *\n   * @type {State}\n   */\n  function destinationAfter(code) {\n    return effects.attempt(titleBefore, after, after)(code);\n  }\n\n  /**\n   * After definition.\n   *\n   * ```markdown\n   * > | [a]: b\n   *           ^\n   * > | [a]: b \"c\"\n   *               ^\n   * ```\n   *\n   * @type {State}\n   */\n  function after(code) {\n    return markdownSpace(code) ? factorySpace(effects, afterWhitespace, \"whitespace\")(code) : afterWhitespace(code);\n  }\n\n  /**\n   * After definition, after optional whitespace.\n   *\n   * ```markdown\n   * > | [a]: b\n   *           ^\n   * > | [a]: b \"c\"\n   *               ^\n   * ```\n   *\n   * @type {State}\n   */\n  function afterWhitespace(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit(\"definition\");\n\n      // Note: we don’t care about uniqueness.\n      // It’s likely that that doesn’t happen very frequently.\n      // It is more likely that it wastes precious time.\n      self.parser.defined.push(identifier);\n\n      // To do: `markdown-rs` interrupt.\n      // // You’d be interrupting.\n      // tokenizer.interrupt = true\n      return ok(code);\n    }\n    return nok(code);\n  }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTitleBefore(effects, ok, nok) {\n  return titleBefore;\n\n  /**\n   * After destination, at whitespace.\n   *\n   * ```markdown\n   * > | [a]: b\n   *           ^\n   * > | [a]: b \"c\"\n   *           ^\n   * ```\n   *\n   * @type {State}\n   */\n  function titleBefore(code) {\n    return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, beforeMarker)(code) : nok(code);\n  }\n\n  /**\n   * At title.\n   *\n   * ```markdown\n   *   | [a]: b\n   * > | \"c\"\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function beforeMarker(code) {\n    return factoryTitle(effects, titleAfter, nok, \"definitionTitle\", \"definitionTitleMarker\", \"definitionTitleString\")(code);\n  }\n\n  /**\n   * After title.\n   *\n   * ```markdown\n   * > | [a]: b \"c\"\n   *               ^\n   * ```\n   *\n   * @type {State}\n   */\n  function titleAfter(code) {\n    return markdownSpace(code) ? factorySpace(effects, titleAfterOptionalWhitespace, \"whitespace\")(code) : titleAfterOptionalWhitespace(code);\n  }\n\n  /**\n   * After title, after optional whitespace.\n   *\n   * ```markdown\n   * > | [a]: b \"c\"\n   *               ^\n   * ```\n   *\n   * @type {State}\n   */\n  function titleAfterOptionalWhitespace(code) {\n    return code === null || markdownLineEnding(code) ? ok(code) : nok(code);\n  }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const codeIndented = {\n  name: 'codeIndented',\n  tokenize: tokenizeCodeIndented\n};\n\n/** @type {Construct} */\nconst furtherStart = {\n  tokenize: tokenizeFurtherStart,\n  partial: true\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeIndented(effects, ok, nok) {\n  const self = this;\n  return start;\n\n  /**\n   * Start of code (indented).\n   *\n   * > **Parsing note**: it is not needed to check if this first line is a\n   * > filled line (that it has a non-whitespace character), because blank lines\n   * > are parsed already, so we never run into that.\n   *\n   * ```markdown\n   * > |     aaa\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    // To do: manually check if interrupting like `markdown-rs`.\n\n    effects.enter(\"codeIndented\");\n    // To do: use an improved `space_or_tab` function like `markdown-rs`,\n    // so that we can drop the next state.\n    return factorySpace(effects, afterPrefix, \"linePrefix\", 4 + 1)(code);\n  }\n\n  /**\n   * At start, after 1 or 4 spaces.\n   *\n   * ```markdown\n   * > |     aaa\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function afterPrefix(code) {\n    const tail = self.events[self.events.length - 1];\n    return tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? atBreak(code) : nok(code);\n  }\n\n  /**\n   * At a break.\n   *\n   * ```markdown\n   * > |     aaa\n   *         ^  ^\n   * ```\n   *\n   * @type {State}\n   */\n  function atBreak(code) {\n    if (code === null) {\n      return after(code);\n    }\n    if (markdownLineEnding(code)) {\n      return effects.attempt(furtherStart, atBreak, after)(code);\n    }\n    effects.enter(\"codeFlowValue\");\n    return inside(code);\n  }\n\n  /**\n   * In code content.\n   *\n   * ```markdown\n   * > |     aaa\n   *         ^^^^\n   * ```\n   *\n   * @type {State}\n   */\n  function inside(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit(\"codeFlowValue\");\n      return atBreak(code);\n    }\n    effects.consume(code);\n    return inside;\n  }\n\n  /** @type {State} */\n  function after(code) {\n    effects.exit(\"codeIndented\");\n    // To do: allow interrupting like `markdown-rs`.\n    // Feel free to interrupt.\n    // tokenizer.interrupt = false\n    return ok(code);\n  }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeFurtherStart(effects, ok, nok) {\n  const self = this;\n  return furtherStart;\n\n  /**\n   * At eol, trying to parse another indent.\n   *\n   * ```markdown\n   * > |     aaa\n   *            ^\n   *   |     bbb\n   * ```\n   *\n   * @type {State}\n   */\n  function furtherStart(code) {\n    // To do: improve `lazy` / `pierce` handling.\n    // If this is a lazy line, it can’t be code.\n    if (self.parser.lazy[self.now().line]) {\n      return nok(code);\n    }\n    if (markdownLineEnding(code)) {\n      effects.enter(\"lineEnding\");\n      effects.consume(code);\n      effects.exit(\"lineEnding\");\n      return furtherStart;\n    }\n\n    // To do: the code here in `micromark-js` is a bit different from\n    // `markdown-rs` because there it can attempt spaces.\n    // We can’t yet.\n    //\n    // To do: use an improved `space_or_tab` function like `markdown-rs`,\n    // so that we can drop the next state.\n    return factorySpace(effects, afterPrefix, \"linePrefix\", 4 + 1)(code);\n  }\n\n  /**\n   * At start, after 1 or 4 spaces.\n   *\n   * ```markdown\n   * > |     aaa\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function afterPrefix(code) {\n    const tail = self.events[self.events.length - 1];\n    return tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? ok(code) : markdownLineEnding(code) ? furtherStart(code) : nok(code);\n  }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\nimport { splice } from 'micromark-util-chunked';\n/** @type {Construct} */\nexport const headingAtx = {\n  name: 'headingAtx',\n  tokenize: tokenizeHeadingAtx,\n  resolve: resolveHeadingAtx\n};\n\n/** @type {Resolver} */\nfunction resolveHeadingAtx(events, context) {\n  let contentEnd = events.length - 2;\n  let contentStart = 3;\n  /** @type {Token} */\n  let content;\n  /** @type {Token} */\n  let text;\n\n  // Prefix whitespace, part of the opening.\n  if (events[contentStart][1].type === \"whitespace\") {\n    contentStart += 2;\n  }\n\n  // Suffix whitespace, part of the closing.\n  if (contentEnd - 2 > contentStart && events[contentEnd][1].type === \"whitespace\") {\n    contentEnd -= 2;\n  }\n  if (events[contentEnd][1].type === \"atxHeadingSequence\" && (contentStart === contentEnd - 1 || contentEnd - 4 > contentStart && events[contentEnd - 2][1].type === \"whitespace\")) {\n    contentEnd -= contentStart + 1 === contentEnd ? 2 : 4;\n  }\n  if (contentEnd > contentStart) {\n    content = {\n      type: \"atxHeadingText\",\n      start: events[contentStart][1].start,\n      end: events[contentEnd][1].end\n    };\n    text = {\n      type: \"chunkText\",\n      start: events[contentStart][1].start,\n      end: events[contentEnd][1].end,\n      contentType: \"text\"\n    };\n    splice(events, contentStart, contentEnd - contentStart + 1, [['enter', content, context], ['enter', text, context], ['exit', text, context], ['exit', content, context]]);\n  }\n  return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n  let size = 0;\n  return start;\n\n  /**\n   * Start of a heading (atx).\n   *\n   * ```markdown\n   * > | ## aa\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    // To do: parse indent like `markdown-rs`.\n    effects.enter(\"atxHeading\");\n    return before(code);\n  }\n\n  /**\n   * After optional whitespace, at `#`.\n   *\n   * ```markdown\n   * > | ## aa\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function before(code) {\n    effects.enter(\"atxHeadingSequence\");\n    return sequenceOpen(code);\n  }\n\n  /**\n   * In opening sequence.\n   *\n   * ```markdown\n   * > | ## aa\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function sequenceOpen(code) {\n    if (code === 35 && size++ < 6) {\n      effects.consume(code);\n      return sequenceOpen;\n    }\n\n    // Always at least one `#`.\n    if (code === null || markdownLineEndingOrSpace(code)) {\n      effects.exit(\"atxHeadingSequence\");\n      return atBreak(code);\n    }\n    return nok(code);\n  }\n\n  /**\n   * After something, before something else.\n   *\n   * ```markdown\n   * > | ## aa\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function atBreak(code) {\n    if (code === 35) {\n      effects.enter(\"atxHeadingSequence\");\n      return sequenceFurther(code);\n    }\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit(\"atxHeading\");\n      // To do: interrupt like `markdown-rs`.\n      // // Feel free to interrupt.\n      // tokenizer.interrupt = false\n      return ok(code);\n    }\n    if (markdownSpace(code)) {\n      return factorySpace(effects, atBreak, \"whitespace\")(code);\n    }\n\n    // To do: generate `data` tokens, add the `text` token later.\n    // Needs edit map, see: `markdown.rs`.\n    effects.enter(\"atxHeadingText\");\n    return data(code);\n  }\n\n  /**\n   * In further sequence (after whitespace).\n   *\n   * Could be normal “visible” hashes in the heading or a final sequence.\n   *\n   * ```markdown\n   * > | ## aa ##\n   *           ^\n   * ```\n   *\n   * @type {State}\n   */\n  function sequenceFurther(code) {\n    if (code === 35) {\n      effects.consume(code);\n      return sequenceFurther;\n    }\n    effects.exit(\"atxHeadingSequence\");\n    return atBreak(code);\n  }\n\n  /**\n   * In text.\n   *\n   * ```markdown\n   * > | ## aa\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function data(code) {\n    if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n      effects.exit(\"atxHeadingText\");\n      return atBreak(code);\n    }\n    effects.consume(code);\n    return data;\n  }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const setextUnderline = {\n  name: 'setextUnderline',\n  tokenize: tokenizeSetextUnderline,\n  resolveTo: resolveToSetextUnderline\n};\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n  // To do: resolve like `markdown-rs`.\n  let index = events.length;\n  /** @type {number | undefined} */\n  let content;\n  /** @type {number | undefined} */\n  let text;\n  /** @type {number | undefined} */\n  let definition;\n\n  // Find the opening of the content.\n  // It’ll always exist: we don’t tokenize if it isn’t there.\n  while (index--) {\n    if (events[index][0] === 'enter') {\n      if (events[index][1].type === \"content\") {\n        content = index;\n        break;\n      }\n      if (events[index][1].type === \"paragraph\") {\n        text = index;\n      }\n    }\n    // Exit\n    else {\n      if (events[index][1].type === \"content\") {\n        // Remove the content end (if needed we’ll add it later)\n        events.splice(index, 1);\n      }\n      if (!definition && events[index][1].type === \"definition\") {\n        definition = index;\n      }\n    }\n  }\n  const heading = {\n    type: \"setextHeading\",\n    start: Object.assign({}, events[text][1].start),\n    end: Object.assign({}, events[events.length - 1][1].end)\n  };\n\n  // Change the paragraph to setext heading text.\n  events[text][1].type = \"setextHeadingText\";\n\n  // If we have definitions in the content, we’ll keep on having content,\n  // but we need move it.\n  if (definition) {\n    events.splice(text, 0, ['enter', heading, context]);\n    events.splice(definition + 1, 0, ['exit', events[content][1], context]);\n    events[content][1].end = Object.assign({}, events[definition][1].end);\n  } else {\n    events[content][1] = heading;\n  }\n\n  // Add the heading exit at the end.\n  events.push(['exit', heading, context]);\n  return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n  const self = this;\n  /** @type {NonNullable<Code>} */\n  let marker;\n  return start;\n\n  /**\n   * At start of heading (setext) underline.\n   *\n   * ```markdown\n   *   | aa\n   * > | ==\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    let index = self.events.length;\n    /** @type {boolean | undefined} */\n    let paragraph;\n    // Find an opening.\n    while (index--) {\n      // Skip enter/exit of line ending, line prefix, and content.\n      // We can now either have a definition or a paragraph.\n      if (self.events[index][1].type !== \"lineEnding\" && self.events[index][1].type !== \"linePrefix\" && self.events[index][1].type !== \"content\") {\n        paragraph = self.events[index][1].type === \"paragraph\";\n        break;\n      }\n    }\n\n    // To do: handle lazy/pierce like `markdown-rs`.\n    // To do: parse indent like `markdown-rs`.\n    if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n      effects.enter(\"setextHeadingLine\");\n      marker = code;\n      return before(code);\n    }\n    return nok(code);\n  }\n\n  /**\n   * After optional whitespace, at `-` or `=`.\n   *\n   * ```markdown\n   *   | aa\n   * > | ==\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function before(code) {\n    effects.enter(\"setextHeadingLineSequence\");\n    return inside(code);\n  }\n\n  /**\n   * In sequence.\n   *\n   * ```markdown\n   *   | aa\n   * > | ==\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function inside(code) {\n    if (code === marker) {\n      effects.consume(code);\n      return inside;\n    }\n    effects.exit(\"setextHeadingLineSequence\");\n    return markdownSpace(code) ? factorySpace(effects, after, \"lineSuffix\")(code) : after(code);\n  }\n\n  /**\n   * After sequence, after optional whitespace.\n   *\n   * ```markdown\n   *   | aa\n   * > | ==\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function after(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit(\"setextHeadingLine\");\n      return ok(code);\n    }\n    return nok(code);\n  }\n}","/**\n * List of lowercase HTML “block” tag names.\n *\n * The list, when parsing HTML (flow), results in more relaxed rules (condition\n * 6).\n * Because they are known blocks, the HTML-like syntax doesn’t have to be\n * strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `search` was added in `CommonMark@0.31`.\n */\nexport const htmlBlockNames = [\n  'address',\n  'article',\n  'aside',\n  'base',\n  'basefont',\n  'blockquote',\n  'body',\n  'caption',\n  'center',\n  'col',\n  'colgroup',\n  'dd',\n  'details',\n  'dialog',\n  'dir',\n  'div',\n  'dl',\n  'dt',\n  'fieldset',\n  'figcaption',\n  'figure',\n  'footer',\n  'form',\n  'frame',\n  'frameset',\n  'h1',\n  'h2',\n  'h3',\n  'h4',\n  'h5',\n  'h6',\n  'head',\n  'header',\n  'hr',\n  'html',\n  'iframe',\n  'legend',\n  'li',\n  'link',\n  'main',\n  'menu',\n  'menuitem',\n  'nav',\n  'noframes',\n  'ol',\n  'optgroup',\n  'option',\n  'p',\n  'param',\n  'search',\n  'section',\n  'summary',\n  'table',\n  'tbody',\n  'td',\n  'tfoot',\n  'th',\n  'thead',\n  'title',\n  'tr',\n  'track',\n  'ul'\n]\n\n/**\n * List of lowercase HTML “raw” tag names.\n *\n * The list, when parsing HTML (flow), results in HTML that can include lines\n * without exiting, until a closing tag also in this list is found (condition\n * 1).\n *\n * This module is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { asciiAlpha, asciiAlphanumeric, markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\nimport { htmlBlockNames, htmlRawNames } from 'micromark-util-html-tag-name';\nimport { blankLine } from './blank-line.js';\n\n/** @type {Construct} */\nexport const htmlFlow = {\n  name: 'htmlFlow',\n  tokenize: tokenizeHtmlFlow,\n  resolveTo: resolveToHtmlFlow,\n  concrete: true\n};\n\n/** @type {Construct} */\nconst blankLineBefore = {\n  tokenize: tokenizeBlankLineBefore,\n  partial: true\n};\nconst nonLazyContinuationStart = {\n  tokenize: tokenizeNonLazyContinuationStart,\n  partial: true\n};\n\n/** @type {Resolver} */\nfunction resolveToHtmlFlow(events) {\n  let index = events.length;\n  while (index--) {\n    if (events[index][0] === 'enter' && events[index][1].type === \"htmlFlow\") {\n      break;\n    }\n  }\n  if (index > 1 && events[index - 2][1].type === \"linePrefix\") {\n    // Add the prefix start to the HTML token.\n    events[index][1].start = events[index - 2][1].start;\n    // Add the prefix start to the HTML line token.\n    events[index + 1][1].start = events[index - 2][1].start;\n    // Remove the line prefix.\n    events.splice(index - 2, 2);\n  }\n  return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n  const self = this;\n  /** @type {number} */\n  let marker;\n  /** @type {boolean} */\n  let closingTag;\n  /** @type {string} */\n  let buffer;\n  /** @type {number} */\n  let index;\n  /** @type {Code} */\n  let markerB;\n  return start;\n\n  /**\n   * Start of HTML (flow).\n   *\n   * ```markdown\n   * > | <x />\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    // To do: parse indent like `markdown-rs`.\n    return before(code);\n  }\n\n  /**\n   * At `<`, after optional whitespace.\n   *\n   * ```markdown\n   * > | <x />\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function before(code) {\n    effects.enter(\"htmlFlow\");\n    effects.enter(\"htmlFlowData\");\n    effects.consume(code);\n    return open;\n  }\n\n  /**\n   * After `<`, at tag name or other stuff.\n   *\n   * ```markdown\n   * > | <x />\n   *      ^\n   * > | <!doctype>\n   *      ^\n   * > | <!--xxx-->\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function open(code) {\n    if (code === 33) {\n      effects.consume(code);\n      return declarationOpen;\n    }\n    if (code === 47) {\n      effects.consume(code);\n      closingTag = true;\n      return tagCloseStart;\n    }\n    if (code === 63) {\n      effects.consume(code);\n      marker = 3;\n      // To do:\n      // tokenizer.concrete = true\n      // To do: use `markdown-rs` style interrupt.\n      // While we’re in an instruction instead of a declaration, we’re on a `?`\n      // right now, so we do need to search for `>`, similar to declarations.\n      return self.interrupt ? ok : continuationDeclarationInside;\n    }\n\n    // ASCII alphabetical.\n    if (asciiAlpha(code)) {\n      effects.consume(code);\n      // @ts-expect-error: not null.\n      buffer = String.fromCharCode(code);\n      return tagName;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After `<!`, at declaration, comment, or CDATA.\n   *\n   * ```markdown\n   * > | <!doctype>\n   *       ^\n   * > | <!--xxx-->\n   *       ^\n   * > | <![CDATA[>&<]]>\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function declarationOpen(code) {\n    if (code === 45) {\n      effects.consume(code);\n      marker = 2;\n      return commentOpenInside;\n    }\n    if (code === 91) {\n      effects.consume(code);\n      marker = 5;\n      index = 0;\n      return cdataOpenInside;\n    }\n\n    // ASCII alphabetical.\n    if (asciiAlpha(code)) {\n      effects.consume(code);\n      marker = 4;\n      // // Do not form containers.\n      // tokenizer.concrete = true\n      return self.interrupt ? ok : continuationDeclarationInside;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After `<!-`, inside a comment, at another `-`.\n   *\n   * ```markdown\n   * > | <!--xxx-->\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function commentOpenInside(code) {\n    if (code === 45) {\n      effects.consume(code);\n      // // Do not form containers.\n      // tokenizer.concrete = true\n      return self.interrupt ? ok : continuationDeclarationInside;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After `<![`, inside CDATA, expecting `CDATA[`.\n   *\n   * ```markdown\n   * > | <![CDATA[>&<]]>\n   *        ^^^^^^\n   * ```\n   *\n   * @type {State}\n   */\n  function cdataOpenInside(code) {\n    const value = \"CDATA[\";\n    if (code === value.charCodeAt(index++)) {\n      effects.consume(code);\n      if (index === value.length) {\n        // // Do not form containers.\n        // tokenizer.concrete = true\n        return self.interrupt ? ok : continuation;\n      }\n      return cdataOpenInside;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After `</`, in closing tag, at tag name.\n   *\n   * ```markdown\n   * > | </x>\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagCloseStart(code) {\n    if (asciiAlpha(code)) {\n      effects.consume(code);\n      // @ts-expect-error: not null.\n      buffer = String.fromCharCode(code);\n      return tagName;\n    }\n    return nok(code);\n  }\n\n  /**\n   * In tag name.\n   *\n   * ```markdown\n   * > | <ab>\n   *      ^^\n   * > | </ab>\n   *       ^^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagName(code) {\n    if (code === null || code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n      const slash = code === 47;\n      const name = buffer.toLowerCase();\n      if (!slash && !closingTag && htmlRawNames.includes(name)) {\n        marker = 1;\n        // // Do not form containers.\n        // tokenizer.concrete = true\n        return self.interrupt ? ok(code) : continuation(code);\n      }\n      if (htmlBlockNames.includes(buffer.toLowerCase())) {\n        marker = 6;\n        if (slash) {\n          effects.consume(code);\n          return basicSelfClosing;\n        }\n\n        // // Do not form containers.\n        // tokenizer.concrete = true\n        return self.interrupt ? ok(code) : continuation(code);\n      }\n      marker = 7;\n      // Do not support complete HTML when interrupting.\n      return self.interrupt && !self.parser.lazy[self.now().line] ? nok(code) : closingTag ? completeClosingTagAfter(code) : completeAttributeNameBefore(code);\n    }\n\n    // ASCII alphanumerical and `-`.\n    if (code === 45 || asciiAlphanumeric(code)) {\n      effects.consume(code);\n      buffer += String.fromCharCode(code);\n      return tagName;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After closing slash of a basic tag name.\n   *\n   * ```markdown\n   * > | <div/>\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function basicSelfClosing(code) {\n    if (code === 62) {\n      effects.consume(code);\n      // // Do not form containers.\n      // tokenizer.concrete = true\n      return self.interrupt ? ok : continuation;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After closing slash of a complete tag name.\n   *\n   * ```markdown\n   * > | <x/>\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function completeClosingTagAfter(code) {\n    if (markdownSpace(code)) {\n      effects.consume(code);\n      return completeClosingTagAfter;\n    }\n    return completeEnd(code);\n  }\n\n  /**\n   * At an attribute name.\n   *\n   * At first, this state is used after a complete tag name, after whitespace,\n   * where it expects optional attributes or the end of the tag.\n   * It is also reused after attributes, when expecting more optional\n   * attributes.\n   *\n   * ```markdown\n   * > | <a />\n   *        ^\n   * > | <a :b>\n   *        ^\n   * > | <a _b>\n   *        ^\n   * > | <a b>\n   *        ^\n   * > | <a >\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function completeAttributeNameBefore(code) {\n    if (code === 47) {\n      effects.consume(code);\n      return completeEnd;\n    }\n\n    // ASCII alphanumerical and `:` and `_`.\n    if (code === 58 || code === 95 || asciiAlpha(code)) {\n      effects.consume(code);\n      return completeAttributeName;\n    }\n    if (markdownSpace(code)) {\n      effects.consume(code);\n      return completeAttributeNameBefore;\n    }\n    return completeEnd(code);\n  }\n\n  /**\n   * In attribute name.\n   *\n   * ```markdown\n   * > | <a :b>\n   *         ^\n   * > | <a _b>\n   *         ^\n   * > | <a b>\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function completeAttributeName(code) {\n    // ASCII alphanumerical and `-`, `.`, `:`, and `_`.\n    if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n      effects.consume(code);\n      return completeAttributeName;\n    }\n    return completeAttributeNameAfter(code);\n  }\n\n  /**\n   * After attribute name, at an optional initializer, the end of the tag, or\n   * whitespace.\n   *\n   * ```markdown\n   * > | <a b>\n   *         ^\n   * > | <a b=c>\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function completeAttributeNameAfter(code) {\n    if (code === 61) {\n      effects.consume(code);\n      return completeAttributeValueBefore;\n    }\n    if (markdownSpace(code)) {\n      effects.consume(code);\n      return completeAttributeNameAfter;\n    }\n    return completeAttributeNameBefore(code);\n  }\n\n  /**\n   * Before unquoted, double quoted, or single quoted attribute value, allowing\n   * whitespace.\n   *\n   * ```markdown\n   * > | <a b=c>\n   *          ^\n   * > | <a b=\"c\">\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function completeAttributeValueBefore(code) {\n    if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n      return nok(code);\n    }\n    if (code === 34 || code === 39) {\n      effects.consume(code);\n      markerB = code;\n      return completeAttributeValueQuoted;\n    }\n    if (markdownSpace(code)) {\n      effects.consume(code);\n      return completeAttributeValueBefore;\n    }\n    return completeAttributeValueUnquoted(code);\n  }\n\n  /**\n   * In double or single quoted attribute value.\n   *\n   * ```markdown\n   * > | <a b=\"c\">\n   *           ^\n   * > | <a b='c'>\n   *           ^\n   * ```\n   *\n   * @type {State}\n   */\n  function completeAttributeValueQuoted(code) {\n    if (code === markerB) {\n      effects.consume(code);\n      markerB = null;\n      return completeAttributeValueQuotedAfter;\n    }\n    if (code === null || markdownLineEnding(code)) {\n      return nok(code);\n    }\n    effects.consume(code);\n    return completeAttributeValueQuoted;\n  }\n\n  /**\n   * In unquoted attribute value.\n   *\n   * ```markdown\n   * > | <a b=c>\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function completeAttributeValueUnquoted(code) {\n    if (code === null || code === 34 || code === 39 || code === 47 || code === 60 || code === 61 || code === 62 || code === 96 || markdownLineEndingOrSpace(code)) {\n      return completeAttributeNameAfter(code);\n    }\n    effects.consume(code);\n    return completeAttributeValueUnquoted;\n  }\n\n  /**\n   * After double or single quoted attribute value, before whitespace or the\n   * end of the tag.\n   *\n   * ```markdown\n   * > | <a b=\"c\">\n   *            ^\n   * ```\n   *\n   * @type {State}\n   */\n  function completeAttributeValueQuotedAfter(code) {\n    if (code === 47 || code === 62 || markdownSpace(code)) {\n      return completeAttributeNameBefore(code);\n    }\n    return nok(code);\n  }\n\n  /**\n   * In certain circumstances of a complete tag where only an `>` is allowed.\n   *\n   * ```markdown\n   * > | <a b=\"c\">\n   *             ^\n   * ```\n   *\n   * @type {State}\n   */\n  function completeEnd(code) {\n    if (code === 62) {\n      effects.consume(code);\n      return completeAfter;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After `>` in a complete tag.\n   *\n   * ```markdown\n   * > | <x>\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function completeAfter(code) {\n    if (code === null || markdownLineEnding(code)) {\n      // // Do not form containers.\n      // tokenizer.concrete = true\n      return continuation(code);\n    }\n    if (markdownSpace(code)) {\n      effects.consume(code);\n      return completeAfter;\n    }\n    return nok(code);\n  }\n\n  /**\n   * In continuation of any HTML kind.\n   *\n   * ```markdown\n   * > | <!--xxx-->\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuation(code) {\n    if (code === 45 && marker === 2) {\n      effects.consume(code);\n      return continuationCommentInside;\n    }\n    if (code === 60 && marker === 1) {\n      effects.consume(code);\n      return continuationRawTagOpen;\n    }\n    if (code === 62 && marker === 4) {\n      effects.consume(code);\n      return continuationClose;\n    }\n    if (code === 63 && marker === 3) {\n      effects.consume(code);\n      return continuationDeclarationInside;\n    }\n    if (code === 93 && marker === 5) {\n      effects.consume(code);\n      return continuationCdataInside;\n    }\n    if (markdownLineEnding(code) && (marker === 6 || marker === 7)) {\n      effects.exit(\"htmlFlowData\");\n      return effects.check(blankLineBefore, continuationAfter, continuationStart)(code);\n    }\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit(\"htmlFlowData\");\n      return continuationStart(code);\n    }\n    effects.consume(code);\n    return continuation;\n  }\n\n  /**\n   * In continuation, at eol.\n   *\n   * ```markdown\n   * > | <x>\n   *        ^\n   *   | asd\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationStart(code) {\n    return effects.check(nonLazyContinuationStart, continuationStartNonLazy, continuationAfter)(code);\n  }\n\n  /**\n   * In continuation, at eol, before non-lazy content.\n   *\n   * ```markdown\n   * > | <x>\n   *        ^\n   *   | asd\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationStartNonLazy(code) {\n    effects.enter(\"lineEnding\");\n    effects.consume(code);\n    effects.exit(\"lineEnding\");\n    return continuationBefore;\n  }\n\n  /**\n   * In continuation, before non-lazy content.\n   *\n   * ```markdown\n   *   | <x>\n   * > | asd\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationBefore(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return continuationStart(code);\n    }\n    effects.enter(\"htmlFlowData\");\n    return continuation(code);\n  }\n\n  /**\n   * In comment continuation, after one `-`, expecting another.\n   *\n   * ```markdown\n   * > | <!--xxx-->\n   *             ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationCommentInside(code) {\n    if (code === 45) {\n      effects.consume(code);\n      return continuationDeclarationInside;\n    }\n    return continuation(code);\n  }\n\n  /**\n   * In raw continuation, after `<`, at `/`.\n   *\n   * ```markdown\n   * > | <script>console.log(1)</script>\n   *                            ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationRawTagOpen(code) {\n    if (code === 47) {\n      effects.consume(code);\n      buffer = '';\n      return continuationRawEndTag;\n    }\n    return continuation(code);\n  }\n\n  /**\n   * In raw continuation, after `</`, in a raw tag name.\n   *\n   * ```markdown\n   * > | <script>console.log(1)</script>\n   *                             ^^^^^^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationRawEndTag(code) {\n    if (code === 62) {\n      const name = buffer.toLowerCase();\n      if (htmlRawNames.includes(name)) {\n        effects.consume(code);\n        return continuationClose;\n      }\n      return continuation(code);\n    }\n    if (asciiAlpha(code) && buffer.length < 8) {\n      effects.consume(code);\n      // @ts-expect-error: not null.\n      buffer += String.fromCharCode(code);\n      return continuationRawEndTag;\n    }\n    return continuation(code);\n  }\n\n  /**\n   * In cdata continuation, after `]`, expecting `]>`.\n   *\n   * ```markdown\n   * > | <![CDATA[>&<]]>\n   *                  ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationCdataInside(code) {\n    if (code === 93) {\n      effects.consume(code);\n      return continuationDeclarationInside;\n    }\n    return continuation(code);\n  }\n\n  /**\n   * In declaration or instruction continuation, at `>`.\n   *\n   * ```markdown\n   * > | <!-->\n   *         ^\n   * > | <?>\n   *       ^\n   * > | <!q>\n   *        ^\n   * > | <!--ab-->\n   *             ^\n   * > | <![CDATA[>&<]]>\n   *                   ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationDeclarationInside(code) {\n    if (code === 62) {\n      effects.consume(code);\n      return continuationClose;\n    }\n\n    // More dashes.\n    if (code === 45 && marker === 2) {\n      effects.consume(code);\n      return continuationDeclarationInside;\n    }\n    return continuation(code);\n  }\n\n  /**\n   * In closed continuation: everything we get until the eol/eof is part of it.\n   *\n   * ```markdown\n   * > | <!doctype>\n   *               ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationClose(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit(\"htmlFlowData\");\n      return continuationAfter(code);\n    }\n    effects.consume(code);\n    return continuationClose;\n  }\n\n  /**\n   * Done.\n   *\n   * ```markdown\n   * > | <!doctype>\n   *               ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationAfter(code) {\n    effects.exit(\"htmlFlow\");\n    // // Feel free to interrupt.\n    // tokenizer.interrupt = false\n    // // No longer concrete.\n    // tokenizer.concrete = false\n    return ok(code);\n  }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n  const self = this;\n  return start;\n\n  /**\n   * At eol, before continuation.\n   *\n   * ```markdown\n   * > | * ```js\n   *            ^\n   *   | b\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    if (markdownLineEnding(code)) {\n      effects.enter(\"lineEnding\");\n      effects.consume(code);\n      effects.exit(\"lineEnding\");\n      return after;\n    }\n    return nok(code);\n  }\n\n  /**\n   * A continuation.\n   *\n   * ```markdown\n   *   | * ```js\n   * > | b\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function after(code) {\n    return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n  }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n  return start;\n\n  /**\n   * Before eol, expecting blank line.\n   *\n   * ```markdown\n   * > | <div>\n   *          ^\n   *   |\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter(\"lineEnding\");\n    effects.consume(code);\n    effects.exit(\"lineEnding\");\n    return effects.attempt(blankLine, ok, nok);\n  }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nconst nonLazyContinuation = {\n  tokenize: tokenizeNonLazyContinuation,\n  partial: true\n};\n\n/** @type {Construct} */\nexport const codeFenced = {\n  name: 'codeFenced',\n  tokenize: tokenizeCodeFenced,\n  concrete: true\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n  const self = this;\n  /** @type {Construct} */\n  const closeStart = {\n    tokenize: tokenizeCloseStart,\n    partial: true\n  };\n  let initialPrefix = 0;\n  let sizeOpen = 0;\n  /** @type {NonNullable<Code>} */\n  let marker;\n  return start;\n\n  /**\n   * Start of code.\n   *\n   * ```markdown\n   * > | ~~~js\n   *     ^\n   *   | alert(1)\n   *   | ~~~\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    // To do: parse whitespace like `markdown-rs`.\n    return beforeSequenceOpen(code);\n  }\n\n  /**\n   * In opening fence, after prefix, at sequence.\n   *\n   * ```markdown\n   * > | ~~~js\n   *     ^\n   *   | alert(1)\n   *   | ~~~\n   * ```\n   *\n   * @type {State}\n   */\n  function beforeSequenceOpen(code) {\n    const tail = self.events[self.events.length - 1];\n    initialPrefix = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n    marker = code;\n    effects.enter(\"codeFenced\");\n    effects.enter(\"codeFencedFence\");\n    effects.enter(\"codeFencedFenceSequence\");\n    return sequenceOpen(code);\n  }\n\n  /**\n   * In opening fence sequence.\n   *\n   * ```markdown\n   * > | ~~~js\n   *      ^\n   *   | alert(1)\n   *   | ~~~\n   * ```\n   *\n   * @type {State}\n   */\n  function sequenceOpen(code) {\n    if (code === marker) {\n      sizeOpen++;\n      effects.consume(code);\n      return sequenceOpen;\n    }\n    if (sizeOpen < 3) {\n      return nok(code);\n    }\n    effects.exit(\"codeFencedFenceSequence\");\n    return markdownSpace(code) ? factorySpace(effects, infoBefore, \"whitespace\")(code) : infoBefore(code);\n  }\n\n  /**\n   * In opening fence, after the sequence (and optional whitespace), before info.\n   *\n   * ```markdown\n   * > | ~~~js\n   *        ^\n   *   | alert(1)\n   *   | ~~~\n   * ```\n   *\n   * @type {State}\n   */\n  function infoBefore(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit(\"codeFencedFence\");\n      return self.interrupt ? ok(code) : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n    }\n    effects.enter(\"codeFencedFenceInfo\");\n    effects.enter(\"chunkString\", {\n      contentType: \"string\"\n    });\n    return info(code);\n  }\n\n  /**\n   * In info.\n   *\n   * ```markdown\n   * > | ~~~js\n   *        ^\n   *   | alert(1)\n   *   | ~~~\n   * ```\n   *\n   * @type {State}\n   */\n  function info(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit(\"chunkString\");\n      effects.exit(\"codeFencedFenceInfo\");\n      return infoBefore(code);\n    }\n    if (markdownSpace(code)) {\n      effects.exit(\"chunkString\");\n      effects.exit(\"codeFencedFenceInfo\");\n      return factorySpace(effects, metaBefore, \"whitespace\")(code);\n    }\n    if (code === 96 && code === marker) {\n      return nok(code);\n    }\n    effects.consume(code);\n    return info;\n  }\n\n  /**\n   * In opening fence, after info and whitespace, before meta.\n   *\n   * ```markdown\n   * > | ~~~js eval\n   *           ^\n   *   | alert(1)\n   *   | ~~~\n   * ```\n   *\n   * @type {State}\n   */\n  function metaBefore(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return infoBefore(code);\n    }\n    effects.enter(\"codeFencedFenceMeta\");\n    effects.enter(\"chunkString\", {\n      contentType: \"string\"\n    });\n    return meta(code);\n  }\n\n  /**\n   * In meta.\n   *\n   * ```markdown\n   * > | ~~~js eval\n   *           ^\n   *   | alert(1)\n   *   | ~~~\n   * ```\n   *\n   * @type {State}\n   */\n  function meta(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit(\"chunkString\");\n      effects.exit(\"codeFencedFenceMeta\");\n      return infoBefore(code);\n    }\n    if (code === 96 && code === marker) {\n      return nok(code);\n    }\n    effects.consume(code);\n    return meta;\n  }\n\n  /**\n   * At eol/eof in code, before a non-lazy closing fence or content.\n   *\n   * ```markdown\n   * > | ~~~js\n   *          ^\n   * > | alert(1)\n   *             ^\n   *   | ~~~\n   * ```\n   *\n   * @type {State}\n   */\n  function atNonLazyBreak(code) {\n    return effects.attempt(closeStart, after, contentBefore)(code);\n  }\n\n  /**\n   * Before code content, not a closing fence, at eol.\n   *\n   * ```markdown\n   *   | ~~~js\n   * > | alert(1)\n   *             ^\n   *   | ~~~\n   * ```\n   *\n   * @type {State}\n   */\n  function contentBefore(code) {\n    effects.enter(\"lineEnding\");\n    effects.consume(code);\n    effects.exit(\"lineEnding\");\n    return contentStart;\n  }\n\n  /**\n   * Before code content, not a closing fence.\n   *\n   * ```markdown\n   *   | ~~~js\n   * > | alert(1)\n   *     ^\n   *   | ~~~\n   * ```\n   *\n   * @type {State}\n   */\n  function contentStart(code) {\n    return initialPrefix > 0 && markdownSpace(code) ? factorySpace(effects, beforeContentChunk, \"linePrefix\", initialPrefix + 1)(code) : beforeContentChunk(code);\n  }\n\n  /**\n   * Before code content, after optional prefix.\n   *\n   * ```markdown\n   *   | ~~~js\n   * > | alert(1)\n   *     ^\n   *   | ~~~\n   * ```\n   *\n   * @type {State}\n   */\n  function beforeContentChunk(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n    }\n    effects.enter(\"codeFlowValue\");\n    return contentChunk(code);\n  }\n\n  /**\n   * In code content.\n   *\n   * ```markdown\n   *   | ~~~js\n   * > | alert(1)\n   *     ^^^^^^^^\n   *   | ~~~\n   * ```\n   *\n   * @type {State}\n   */\n  function contentChunk(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit(\"codeFlowValue\");\n      return beforeContentChunk(code);\n    }\n    effects.consume(code);\n    return contentChunk;\n  }\n\n  /**\n   * After code.\n   *\n   * ```markdown\n   *   | ~~~js\n   *   | alert(1)\n   * > | ~~~\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function after(code) {\n    effects.exit(\"codeFenced\");\n    return ok(code);\n  }\n\n  /**\n   * @this {TokenizeContext}\n   * @type {Tokenizer}\n   */\n  function tokenizeCloseStart(effects, ok, nok) {\n    let size = 0;\n    return startBefore;\n\n    /**\n     *\n     *\n     * @type {State}\n     */\n    function startBefore(code) {\n      effects.enter(\"lineEnding\");\n      effects.consume(code);\n      effects.exit(\"lineEnding\");\n      return start;\n    }\n\n    /**\n     * Before closing fence, at optional whitespace.\n     *\n     * ```markdown\n     *   | ~~~js\n     *   | alert(1)\n     * > | ~~~\n     *     ^\n     * ```\n     *\n     * @type {State}\n     */\n    function start(code) {\n      // Always populated by defaults.\n\n      // To do: `enter` here or in next state?\n      effects.enter(\"codeFencedFence\");\n      return markdownSpace(code) ? factorySpace(effects, beforeSequenceClose, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : beforeSequenceClose(code);\n    }\n\n    /**\n     * In closing fence, after optional whitespace, at sequence.\n     *\n     * ```markdown\n     *   | ~~~js\n     *   | alert(1)\n     * > | ~~~\n     *     ^\n     * ```\n     *\n     * @type {State}\n     */\n    function beforeSequenceClose(code) {\n      if (code === marker) {\n        effects.enter(\"codeFencedFenceSequence\");\n        return sequenceClose(code);\n      }\n      return nok(code);\n    }\n\n    /**\n     * In closing fence sequence.\n     *\n     * ```markdown\n     *   | ~~~js\n     *   | alert(1)\n     * > | ~~~\n     *     ^\n     * ```\n     *\n     * @type {State}\n     */\n    function sequenceClose(code) {\n      if (code === marker) {\n        size++;\n        effects.consume(code);\n        return sequenceClose;\n      }\n      if (size >= sizeOpen) {\n        effects.exit(\"codeFencedFenceSequence\");\n        return markdownSpace(code) ? factorySpace(effects, sequenceCloseAfter, \"whitespace\")(code) : sequenceCloseAfter(code);\n      }\n      return nok(code);\n    }\n\n    /**\n     * After closing fence sequence, after optional whitespace.\n     *\n     * ```markdown\n     *   | ~~~js\n     *   | alert(1)\n     * > | ~~~\n     *        ^\n     * ```\n     *\n     * @type {State}\n     */\n    function sequenceCloseAfter(code) {\n      if (code === null || markdownLineEnding(code)) {\n        effects.exit(\"codeFencedFence\");\n        return ok(code);\n      }\n      return nok(code);\n    }\n  }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n  const self = this;\n  return start;\n\n  /**\n   *\n   *\n   * @type {State}\n   */\n  function start(code) {\n    if (code === null) {\n      return nok(code);\n    }\n    effects.enter(\"lineEnding\");\n    effects.consume(code);\n    effects.exit(\"lineEnding\");\n    return lineStart;\n  }\n\n  /**\n   *\n   *\n   * @type {State}\n   */\n  function lineStart(code) {\n    return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n  }\n}","/// <reference lib=\"dom\" />\n\n/* eslint-env browser */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string|false}\n */\nexport function decodeNamedCharacterReference(value) {\n  const characterReference = '&' + value + ';'\n  element.innerHTML = characterReference\n  const char = element.textContent\n\n  // Some named character references do not require the closing semicolon\n  // (`&not`, for instance), which leads to situations where parsing the assumed\n  // named reference of `&notit;` will result in the string `¬it;`.\n  // When we encounter a trailing semicolon after parsing, and the character\n  // reference to decode was not a semicolon (`&semi;`), we can assume that the\n  // matching was not complete.\n  // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n  // yield `null`.\n  if (char.charCodeAt(char.length - 1) === 59 /* `;` */ && value !== 'semi') {\n    return false\n  }\n\n  // If the decoded string is equal to the input, the character reference was\n  // not valid.\n  // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n  // yield `null`.\n  return char === characterReference ? false : char\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { asciiAlphanumeric, asciiDigit, asciiHexDigit } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterReference = {\n  name: 'characterReference',\n  tokenize: tokenizeCharacterReference\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n  const self = this;\n  let size = 0;\n  /** @type {number} */\n  let max;\n  /** @type {(code: Code) => boolean} */\n  let test;\n  return start;\n\n  /**\n   * Start of character reference.\n   *\n   * ```markdown\n   * > | a&amp;b\n   *      ^\n   * > | a&#123;b\n   *      ^\n   * > | a&#x9;b\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter(\"characterReference\");\n    effects.enter(\"characterReferenceMarker\");\n    effects.consume(code);\n    effects.exit(\"characterReferenceMarker\");\n    return open;\n  }\n\n  /**\n   * After `&`, at `#` for numeric references or alphanumeric for named\n   * references.\n   *\n   * ```markdown\n   * > | a&amp;b\n   *       ^\n   * > | a&#123;b\n   *       ^\n   * > | a&#x9;b\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function open(code) {\n    if (code === 35) {\n      effects.enter(\"characterReferenceMarkerNumeric\");\n      effects.consume(code);\n      effects.exit(\"characterReferenceMarkerNumeric\");\n      return numeric;\n    }\n    effects.enter(\"characterReferenceValue\");\n    max = 31;\n    test = asciiAlphanumeric;\n    return value(code);\n  }\n\n  /**\n   * After `#`, at `x` for hexadecimals or digit for decimals.\n   *\n   * ```markdown\n   * > | a&#123;b\n   *        ^\n   * > | a&#x9;b\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function numeric(code) {\n    if (code === 88 || code === 120) {\n      effects.enter(\"characterReferenceMarkerHexadecimal\");\n      effects.consume(code);\n      effects.exit(\"characterReferenceMarkerHexadecimal\");\n      effects.enter(\"characterReferenceValue\");\n      max = 6;\n      test = asciiHexDigit;\n      return value;\n    }\n    effects.enter(\"characterReferenceValue\");\n    max = 7;\n    test = asciiDigit;\n    return value(code);\n  }\n\n  /**\n   * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n   *\n   * The character reference kind defines what and how many characters are\n   * allowed.\n   *\n   * ```markdown\n   * > | a&amp;b\n   *       ^^^\n   * > | a&#123;b\n   *        ^^^\n   * > | a&#x9;b\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function value(code) {\n    if (code === 59 && size) {\n      const token = effects.exit(\"characterReferenceValue\");\n      if (test === asciiAlphanumeric && !decodeNamedCharacterReference(self.sliceSerialize(token))) {\n        return nok(code);\n      }\n\n      // To do: `markdown-rs` uses a different name:\n      // `CharacterReferenceMarkerSemi`.\n      effects.enter(\"characterReferenceMarker\");\n      effects.consume(code);\n      effects.exit(\"characterReferenceMarker\");\n      effects.exit(\"characterReference\");\n      return ok;\n    }\n    if (test(code) && size++ < max) {\n      effects.consume(code);\n      return value;\n    }\n    return nok(code);\n  }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { asciiPunctuation } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterEscape = {\n  name: 'characterEscape',\n  tokenize: tokenizeCharacterEscape\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n  return start;\n\n  /**\n   * Start of character escape.\n   *\n   * ```markdown\n   * > | a\\*b\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter(\"characterEscape\");\n    effects.enter(\"escapeMarker\");\n    effects.consume(code);\n    effects.exit(\"escapeMarker\");\n    return inside;\n  }\n\n  /**\n   * After `\\`, at punctuation.\n   *\n   * ```markdown\n   * > | a\\*b\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function inside(code) {\n    // ASCII punctuation.\n    if (asciiPunctuation(code)) {\n      effects.enter(\"characterEscapeValue\");\n      effects.consume(code);\n      effects.exit(\"characterEscapeValue\");\n      effects.exit(\"characterEscape\");\n      return ok;\n    }\n    return nok(code);\n  }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const lineEnding = {\n  name: 'lineEnding',\n  tokenize: tokenizeLineEnding\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n  return start;\n\n  /** @type {State} */\n  function start(code) {\n    effects.enter(\"lineEnding\");\n    effects.consume(code);\n    effects.exit(\"lineEnding\");\n    return factorySpace(effects, ok, \"linePrefix\");\n  }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const labelEnd = {\n  name: 'labelEnd',\n  tokenize: tokenizeLabelEnd,\n  resolveTo: resolveToLabelEnd,\n  resolveAll: resolveAllLabelEnd\n};\n\n/** @type {Construct} */\nconst resourceConstruct = {\n  tokenize: tokenizeResource\n};\n/** @type {Construct} */\nconst referenceFullConstruct = {\n  tokenize: tokenizeReferenceFull\n};\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n  tokenize: tokenizeReferenceCollapsed\n};\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n  let index = -1;\n  while (++index < events.length) {\n    const token = events[index][1];\n    if (token.type === \"labelImage\" || token.type === \"labelLink\" || token.type === \"labelEnd\") {\n      // Remove the marker.\n      events.splice(index + 1, token.type === \"labelImage\" ? 4 : 2);\n      token.type = \"data\";\n      index++;\n    }\n  }\n  return events;\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n  let index = events.length;\n  let offset = 0;\n  /** @type {Token} */\n  let token;\n  /** @type {number | undefined} */\n  let open;\n  /** @type {number | undefined} */\n  let close;\n  /** @type {Array<Event>} */\n  let media;\n\n  // Find an opening.\n  while (index--) {\n    token = events[index][1];\n    if (open) {\n      // If we see another link, or inactive link label, we’ve been here before.\n      if (token.type === \"link\" || token.type === \"labelLink\" && token._inactive) {\n        break;\n      }\n\n      // Mark other link openings as inactive, as we can’t have links in\n      // links.\n      if (events[index][0] === 'enter' && token.type === \"labelLink\") {\n        token._inactive = true;\n      }\n    } else if (close) {\n      if (events[index][0] === 'enter' && (token.type === \"labelImage\" || token.type === \"labelLink\") && !token._balanced) {\n        open = index;\n        if (token.type !== \"labelLink\") {\n          offset = 2;\n          break;\n        }\n      }\n    } else if (token.type === \"labelEnd\") {\n      close = index;\n    }\n  }\n  const group = {\n    type: events[open][1].type === \"labelLink\" ? \"link\" : \"image\",\n    start: Object.assign({}, events[open][1].start),\n    end: Object.assign({}, events[events.length - 1][1].end)\n  };\n  const label = {\n    type: \"label\",\n    start: Object.assign({}, events[open][1].start),\n    end: Object.assign({}, events[close][1].end)\n  };\n  const text = {\n    type: \"labelText\",\n    start: Object.assign({}, events[open + offset + 2][1].end),\n    end: Object.assign({}, events[close - 2][1].start)\n  };\n  media = [['enter', group, context], ['enter', label, context]];\n\n  // Opening marker.\n  media = push(media, events.slice(open + 1, open + offset + 3));\n\n  // Text open.\n  media = push(media, [['enter', text, context]]);\n\n  // Always populated by defaults.\n\n  // Between.\n  media = push(media, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context));\n\n  // Text close, marker close, label close.\n  media = push(media, [['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context]]);\n\n  // Reference, resource, or so.\n  media = push(media, events.slice(close + 1));\n\n  // Media close.\n  media = push(media, [['exit', group, context]]);\n  splice(events, open, events.length, media);\n  return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n  const self = this;\n  let index = self.events.length;\n  /** @type {Token} */\n  let labelStart;\n  /** @type {boolean} */\n  let defined;\n\n  // Find an opening.\n  while (index--) {\n    if ((self.events[index][1].type === \"labelImage\" || self.events[index][1].type === \"labelLink\") && !self.events[index][1]._balanced) {\n      labelStart = self.events[index][1];\n      break;\n    }\n  }\n  return start;\n\n  /**\n   * Start of label end.\n   *\n   * ```markdown\n   * > | [a](b) c\n   *       ^\n   * > | [a][b] c\n   *       ^\n   * > | [a][] b\n   *       ^\n   * > | [a] b\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    // If there is not an okay opening.\n    if (!labelStart) {\n      return nok(code);\n    }\n\n    // If the corresponding label (link) start is marked as inactive,\n    // it means we’d be wrapping a link, like this:\n    //\n    // ```markdown\n    // > | a [b [c](d) e](f) g.\n    //                  ^\n    // ```\n    //\n    // We can’t have that, so it’s just balanced brackets.\n    if (labelStart._inactive) {\n      return labelEndNok(code);\n    }\n    defined = self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize({\n      start: labelStart.end,\n      end: self.now()\n    })));\n    effects.enter(\"labelEnd\");\n    effects.enter(\"labelMarker\");\n    effects.consume(code);\n    effects.exit(\"labelMarker\");\n    effects.exit(\"labelEnd\");\n    return after;\n  }\n\n  /**\n   * After `]`.\n   *\n   * ```markdown\n   * > | [a](b) c\n   *       ^\n   * > | [a][b] c\n   *       ^\n   * > | [a][] b\n   *       ^\n   * > | [a] b\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function after(code) {\n    // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n    // an extension.\n\n    // Resource (`[asd](fgh)`)?\n    if (code === 40) {\n      return effects.attempt(resourceConstruct, labelEndOk, defined ? labelEndOk : labelEndNok)(code);\n    }\n\n    // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n    if (code === 91) {\n      return effects.attempt(referenceFullConstruct, labelEndOk, defined ? referenceNotFull : labelEndNok)(code);\n    }\n\n    // Shortcut (`[asd]`) reference?\n    return defined ? labelEndOk(code) : labelEndNok(code);\n  }\n\n  /**\n   * After `]`, at `[`, but not at a full reference.\n   *\n   * > 👉 **Note**: we only get here if the label is defined.\n   *\n   * ```markdown\n   * > | [a][] b\n   *        ^\n   * > | [a] b\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function referenceNotFull(code) {\n    return effects.attempt(referenceCollapsedConstruct, labelEndOk, labelEndNok)(code);\n  }\n\n  /**\n   * Done, we found something.\n   *\n   * ```markdown\n   * > | [a](b) c\n   *           ^\n   * > | [a][b] c\n   *           ^\n   * > | [a][] b\n   *          ^\n   * > | [a] b\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function labelEndOk(code) {\n    // Note: `markdown-rs` does a bunch of stuff here.\n    return ok(code);\n  }\n\n  /**\n   * Done, it’s nothing.\n   *\n   * There was an okay opening, but we didn’t match anything.\n   *\n   * ```markdown\n   * > | [a](b c\n   *        ^\n   * > | [a][b c\n   *        ^\n   * > | [a] b\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function labelEndNok(code) {\n    labelStart._balanced = true;\n    return nok(code);\n  }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n  return resourceStart;\n\n  /**\n   * At a resource.\n   *\n   * ```markdown\n   * > | [a](b) c\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function resourceStart(code) {\n    effects.enter(\"resource\");\n    effects.enter(\"resourceMarker\");\n    effects.consume(code);\n    effects.exit(\"resourceMarker\");\n    return resourceBefore;\n  }\n\n  /**\n   * In resource, after `(`, at optional whitespace.\n   *\n   * ```markdown\n   * > | [a](b) c\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function resourceBefore(code) {\n    return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceOpen)(code) : resourceOpen(code);\n  }\n\n  /**\n   * In resource, after optional whitespace, at `)` or a destination.\n   *\n   * ```markdown\n   * > | [a](b) c\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function resourceOpen(code) {\n    if (code === 41) {\n      return resourceEnd(code);\n    }\n    return factoryDestination(effects, resourceDestinationAfter, resourceDestinationMissing, \"resourceDestination\", \"resourceDestinationLiteral\", \"resourceDestinationLiteralMarker\", \"resourceDestinationRaw\", \"resourceDestinationString\", 32)(code);\n  }\n\n  /**\n   * In resource, after destination, at optional whitespace.\n   *\n   * ```markdown\n   * > | [a](b) c\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function resourceDestinationAfter(code) {\n    return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceBetween)(code) : resourceEnd(code);\n  }\n\n  /**\n   * At invalid destination.\n   *\n   * ```markdown\n   * > | [a](<<) b\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function resourceDestinationMissing(code) {\n    return nok(code);\n  }\n\n  /**\n   * In resource, after destination and whitespace, at `(` or title.\n   *\n   * ```markdown\n   * > | [a](b ) c\n   *           ^\n   * ```\n   *\n   * @type {State}\n   */\n  function resourceBetween(code) {\n    if (code === 34 || code === 39 || code === 40) {\n      return factoryTitle(effects, resourceTitleAfter, nok, \"resourceTitle\", \"resourceTitleMarker\", \"resourceTitleString\")(code);\n    }\n    return resourceEnd(code);\n  }\n\n  /**\n   * In resource, after title, at optional whitespace.\n   *\n   * ```markdown\n   * > | [a](b \"c\") d\n   *              ^\n   * ```\n   *\n   * @type {State}\n   */\n  function resourceTitleAfter(code) {\n    return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceEnd)(code) : resourceEnd(code);\n  }\n\n  /**\n   * In resource, at `)`.\n   *\n   * ```markdown\n   * > | [a](b) d\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function resourceEnd(code) {\n    if (code === 41) {\n      effects.enter(\"resourceMarker\");\n      effects.consume(code);\n      effects.exit(\"resourceMarker\");\n      effects.exit(\"resource\");\n      return ok;\n    }\n    return nok(code);\n  }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n  const self = this;\n  return referenceFull;\n\n  /**\n   * In a reference (full), at the `[`.\n   *\n   * ```markdown\n   * > | [a][b] d\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function referenceFull(code) {\n    return factoryLabel.call(self, effects, referenceFullAfter, referenceFullMissing, \"reference\", \"referenceMarker\", \"referenceString\")(code);\n  }\n\n  /**\n   * In a reference (full), after `]`.\n   *\n   * ```markdown\n   * > | [a][b] d\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function referenceFullAfter(code) {\n    return self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1))) ? ok(code) : nok(code);\n  }\n\n  /**\n   * In reference (full) that was missing.\n   *\n   * ```markdown\n   * > | [a][b d\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function referenceFullMissing(code) {\n    return nok(code);\n  }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n  return referenceCollapsedStart;\n\n  /**\n   * In reference (collapsed), at `[`.\n   *\n   * > 👉 **Note**: we only get here if the label is defined.\n   *\n   * ```markdown\n   * > | [a][] d\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function referenceCollapsedStart(code) {\n    // We only attempt a collapsed label if there’s a `[`.\n\n    effects.enter(\"reference\");\n    effects.enter(\"referenceMarker\");\n    effects.consume(code);\n    effects.exit(\"referenceMarker\");\n    return referenceCollapsedOpen;\n  }\n\n  /**\n   * In reference (collapsed), at `]`.\n   *\n   * > 👉 **Note**: we only get here if the label is defined.\n   *\n   * ```markdown\n   * > | [a][] d\n   *         ^\n   * ```\n   *\n   *  @type {State}\n   */\n  function referenceCollapsedOpen(code) {\n    if (code === 93) {\n      effects.enter(\"referenceMarker\");\n      effects.consume(code);\n      effects.exit(\"referenceMarker\");\n      effects.exit(\"reference\");\n      return ok;\n    }\n    return nok(code);\n  }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartImage = {\n  name: 'labelStartImage',\n  tokenize: tokenizeLabelStartImage,\n  resolveAll: labelEnd.resolveAll\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n  const self = this;\n  return start;\n\n  /**\n   * Start of label (image) start.\n   *\n   * ```markdown\n   * > | a ![b] c\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter(\"labelImage\");\n    effects.enter(\"labelImageMarker\");\n    effects.consume(code);\n    effects.exit(\"labelImageMarker\");\n    return open;\n  }\n\n  /**\n   * After `!`, at `[`.\n   *\n   * ```markdown\n   * > | a ![b] c\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function open(code) {\n    if (code === 91) {\n      effects.enter(\"labelMarker\");\n      effects.consume(code);\n      effects.exit(\"labelMarker\");\n      effects.exit(\"labelImage\");\n      return after;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After `![`.\n   *\n   * ```markdown\n   * > | a ![b] c\n   *         ^\n   * ```\n   *\n   * This is needed in because, when GFM footnotes are enabled, images never\n   * form when started with a `^`.\n   * Instead, links form:\n   *\n   * ```markdown\n   * ![^a](b)\n   *\n   * ![^a][b]\n   *\n   * [b]: c\n   * ```\n   *\n   * ```html\n   * <p>!<a href=\\\"b\\\">^a</a></p>\n   * <p>!<a href=\\\"c\\\">^a</a></p>\n   * ```\n   *\n   * @type {State}\n   */\n  function after(code) {\n    // To do: use a new field to do this, this is still needed for\n    // `micromark-extension-gfm-footnote`, but the `label-start-link`\n    // behavior isn’t.\n    // Hidden footnotes hook.\n    /* c8 ignore next 3 */\n    return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n  }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {\n  markdownLineEndingOrSpace,\n  unicodePunctuation,\n  unicodeWhitespace\n} from 'micromark-util-character'\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n *   Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n *   Group.\n */\nexport function classifyCharacter(code) {\n  if (\n    code === null ||\n    markdownLineEndingOrSpace(code) ||\n    unicodeWhitespace(code)\n  ) {\n    return 1\n  }\n  if (unicodePunctuation(code)) {\n    return 2\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { push, splice } from 'micromark-util-chunked';\nimport { classifyCharacter } from 'micromark-util-classify-character';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const attention = {\n  name: 'attention',\n  tokenize: tokenizeAttention,\n  resolveAll: resolveAllAttention\n};\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n// eslint-disable-next-line complexity\nfunction resolveAllAttention(events, context) {\n  let index = -1;\n  /** @type {number} */\n  let open;\n  /** @type {Token} */\n  let group;\n  /** @type {Token} */\n  let text;\n  /** @type {Token} */\n  let openingSequence;\n  /** @type {Token} */\n  let closingSequence;\n  /** @type {number} */\n  let use;\n  /** @type {Array<Event>} */\n  let nextEvents;\n  /** @type {number} */\n  let offset;\n\n  // Walk through all events.\n  //\n  // Note: performance of this is fine on an mb of normal markdown, but it’s\n  // a bottleneck for malicious stuff.\n  while (++index < events.length) {\n    // Find a token that can close.\n    if (events[index][0] === 'enter' && events[index][1].type === 'attentionSequence' && events[index][1]._close) {\n      open = index;\n\n      // Now walk back to find an opener.\n      while (open--) {\n        // Find a token that can open the closer.\n        if (events[open][0] === 'exit' && events[open][1].type === 'attentionSequence' && events[open][1]._open &&\n        // If the markers are the same:\n        context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index][1]).charCodeAt(0)) {\n          // If the opening can close or the closing can open,\n          // and the close size *is not* a multiple of three,\n          // but the sum of the opening and closing size *is* multiple of three,\n          // then don’t match.\n          if ((events[open][1]._close || events[index][1]._open) && (events[index][1].end.offset - events[index][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index][1].end.offset - events[index][1].start.offset) % 3)) {\n            continue;\n          }\n\n          // Number of markers to use from the sequence.\n          use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index][1].end.offset - events[index][1].start.offset > 1 ? 2 : 1;\n          const start = Object.assign({}, events[open][1].end);\n          const end = Object.assign({}, events[index][1].start);\n          movePoint(start, -use);\n          movePoint(end, use);\n          openingSequence = {\n            type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n            start,\n            end: Object.assign({}, events[open][1].end)\n          };\n          closingSequence = {\n            type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n            start: Object.assign({}, events[index][1].start),\n            end\n          };\n          text = {\n            type: use > 1 ? \"strongText\" : \"emphasisText\",\n            start: Object.assign({}, events[open][1].end),\n            end: Object.assign({}, events[index][1].start)\n          };\n          group = {\n            type: use > 1 ? \"strong\" : \"emphasis\",\n            start: Object.assign({}, openingSequence.start),\n            end: Object.assign({}, closingSequence.end)\n          };\n          events[open][1].end = Object.assign({}, openingSequence.start);\n          events[index][1].start = Object.assign({}, closingSequence.end);\n          nextEvents = [];\n\n          // If there are more markers in the opening, add them before.\n          if (events[open][1].end.offset - events[open][1].start.offset) {\n            nextEvents = push(nextEvents, [['enter', events[open][1], context], ['exit', events[open][1], context]]);\n          }\n\n          // Opening.\n          nextEvents = push(nextEvents, [['enter', group, context], ['enter', openingSequence, context], ['exit', openingSequence, context], ['enter', text, context]]);\n\n          // Always populated by defaults.\n\n          // Between.\n          nextEvents = push(nextEvents, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + 1, index), context));\n\n          // Closing.\n          nextEvents = push(nextEvents, [['exit', text, context], ['enter', closingSequence, context], ['exit', closingSequence, context], ['exit', group, context]]);\n\n          // If there are more markers in the closing, add them after.\n          if (events[index][1].end.offset - events[index][1].start.offset) {\n            offset = 2;\n            nextEvents = push(nextEvents, [['enter', events[index][1], context], ['exit', events[index][1], context]]);\n          } else {\n            offset = 0;\n          }\n          splice(events, open - 1, index - open + 3, nextEvents);\n          index = open + nextEvents.length - offset - 2;\n          break;\n        }\n      }\n    }\n  }\n\n  // Remove remaining sequences.\n  index = -1;\n  while (++index < events.length) {\n    if (events[index][1].type === 'attentionSequence') {\n      events[index][1].type = 'data';\n    }\n  }\n  return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n  const attentionMarkers = this.parser.constructs.attentionMarkers.null;\n  const previous = this.previous;\n  const before = classifyCharacter(previous);\n\n  /** @type {NonNullable<Code>} */\n  let marker;\n  return start;\n\n  /**\n   * Before a sequence.\n   *\n   * ```markdown\n   * > | **\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    marker = code;\n    effects.enter('attentionSequence');\n    return inside(code);\n  }\n\n  /**\n   * In a sequence.\n   *\n   * ```markdown\n   * > | **\n   *     ^^\n   * ```\n   *\n   * @type {State}\n   */\n  function inside(code) {\n    if (code === marker) {\n      effects.consume(code);\n      return inside;\n    }\n    const token = effects.exit('attentionSequence');\n\n    // To do: next major: move this to resolver, just like `markdown-rs`.\n    const after = classifyCharacter(code);\n\n    // Always populated by defaults.\n\n    const open = !after || after === 2 && before || attentionMarkers.includes(code);\n    const close = !before || before === 2 && after || attentionMarkers.includes(previous);\n    token._open = Boolean(marker === 42 ? open : open && (before || !close));\n    token._close = Boolean(marker === 42 ? close : close && (after || !open));\n    return ok(code);\n  }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {undefined}\n */\nfunction movePoint(point, offset) {\n  point.column += offset;\n  point.offset += offset;\n  point._bufferIndex += offset;\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { asciiAlpha, asciiAlphanumeric, asciiAtext, asciiControl } from 'micromark-util-character';\n/** @type {Construct} */\nexport const autolink = {\n  name: 'autolink',\n  tokenize: tokenizeAutolink\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n  let size = 0;\n  return start;\n\n  /**\n   * Start of an autolink.\n   *\n   * ```markdown\n   * > | a<https://example.com>b\n   *      ^\n   * > | a<user@example.com>b\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter(\"autolink\");\n    effects.enter(\"autolinkMarker\");\n    effects.consume(code);\n    effects.exit(\"autolinkMarker\");\n    effects.enter(\"autolinkProtocol\");\n    return open;\n  }\n\n  /**\n   * After `<`, at protocol or atext.\n   *\n   * ```markdown\n   * > | a<https://example.com>b\n   *       ^\n   * > | a<user@example.com>b\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function open(code) {\n    if (asciiAlpha(code)) {\n      effects.consume(code);\n      return schemeOrEmailAtext;\n    }\n    if (code === 64) {\n      return nok(code);\n    }\n    return emailAtext(code);\n  }\n\n  /**\n   * At second byte of protocol or atext.\n   *\n   * ```markdown\n   * > | a<https://example.com>b\n   *        ^\n   * > | a<user@example.com>b\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function schemeOrEmailAtext(code) {\n    // ASCII alphanumeric and `+`, `-`, and `.`.\n    if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n      // Count the previous alphabetical from `open` too.\n      size = 1;\n      return schemeInsideOrEmailAtext(code);\n    }\n    return emailAtext(code);\n  }\n\n  /**\n   * In ambiguous protocol or atext.\n   *\n   * ```markdown\n   * > | a<https://example.com>b\n   *        ^\n   * > | a<user@example.com>b\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function schemeInsideOrEmailAtext(code) {\n    if (code === 58) {\n      effects.consume(code);\n      size = 0;\n      return urlInside;\n    }\n\n    // ASCII alphanumeric and `+`, `-`, and `.`.\n    if ((code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) && size++ < 32) {\n      effects.consume(code);\n      return schemeInsideOrEmailAtext;\n    }\n    size = 0;\n    return emailAtext(code);\n  }\n\n  /**\n   * After protocol, in URL.\n   *\n   * ```markdown\n   * > | a<https://example.com>b\n   *             ^\n   * ```\n   *\n   * @type {State}\n   */\n  function urlInside(code) {\n    if (code === 62) {\n      effects.exit(\"autolinkProtocol\");\n      effects.enter(\"autolinkMarker\");\n      effects.consume(code);\n      effects.exit(\"autolinkMarker\");\n      effects.exit(\"autolink\");\n      return ok;\n    }\n\n    // ASCII control, space, or `<`.\n    if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n      return nok(code);\n    }\n    effects.consume(code);\n    return urlInside;\n  }\n\n  /**\n   * In email atext.\n   *\n   * ```markdown\n   * > | a<user.name@example.com>b\n   *              ^\n   * ```\n   *\n   * @type {State}\n   */\n  function emailAtext(code) {\n    if (code === 64) {\n      effects.consume(code);\n      return emailAtSignOrDot;\n    }\n    if (asciiAtext(code)) {\n      effects.consume(code);\n      return emailAtext;\n    }\n    return nok(code);\n  }\n\n  /**\n   * In label, after at-sign or dot.\n   *\n   * ```markdown\n   * > | a<user.name@example.com>b\n   *                 ^       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function emailAtSignOrDot(code) {\n    return asciiAlphanumeric(code) ? emailLabel(code) : nok(code);\n  }\n\n  /**\n   * In label, where `.` and `>` are allowed.\n   *\n   * ```markdown\n   * > | a<user.name@example.com>b\n   *                   ^\n   * ```\n   *\n   * @type {State}\n   */\n  function emailLabel(code) {\n    if (code === 46) {\n      effects.consume(code);\n      size = 0;\n      return emailAtSignOrDot;\n    }\n    if (code === 62) {\n      // Exit, then change the token type.\n      effects.exit(\"autolinkProtocol\").type = \"autolinkEmail\";\n      effects.enter(\"autolinkMarker\");\n      effects.consume(code);\n      effects.exit(\"autolinkMarker\");\n      effects.exit(\"autolink\");\n      return ok;\n    }\n    return emailValue(code);\n  }\n\n  /**\n   * In label, where `.` and `>` are *not* allowed.\n   *\n   * Though, this is also used in `emailLabel` to parse other values.\n   *\n   * ```markdown\n   * > | a<user.name@ex-ample.com>b\n   *                    ^\n   * ```\n   *\n   * @type {State}\n   */\n  function emailValue(code) {\n    // ASCII alphanumeric or `-`.\n    if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n      const next = code === 45 ? emailValue : emailLabel;\n      effects.consume(code);\n      return next;\n    }\n    return nok(code);\n  }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiAlpha, asciiAlphanumeric, markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const htmlText = {\n  name: 'htmlText',\n  tokenize: tokenizeHtmlText\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n  const self = this;\n  /** @type {NonNullable<Code> | undefined} */\n  let marker;\n  /** @type {number} */\n  let index;\n  /** @type {State} */\n  let returnState;\n  return start;\n\n  /**\n   * Start of HTML (text).\n   *\n   * ```markdown\n   * > | a <b> c\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter(\"htmlText\");\n    effects.enter(\"htmlTextData\");\n    effects.consume(code);\n    return open;\n  }\n\n  /**\n   * After `<`, at tag name or other stuff.\n   *\n   * ```markdown\n   * > | a <b> c\n   *        ^\n   * > | a <!doctype> c\n   *        ^\n   * > | a <!--b--> c\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function open(code) {\n    if (code === 33) {\n      effects.consume(code);\n      return declarationOpen;\n    }\n    if (code === 47) {\n      effects.consume(code);\n      return tagCloseStart;\n    }\n    if (code === 63) {\n      effects.consume(code);\n      return instruction;\n    }\n\n    // ASCII alphabetical.\n    if (asciiAlpha(code)) {\n      effects.consume(code);\n      return tagOpen;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After `<!`, at declaration, comment, or CDATA.\n   *\n   * ```markdown\n   * > | a <!doctype> c\n   *         ^\n   * > | a <!--b--> c\n   *         ^\n   * > | a <![CDATA[>&<]]> c\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function declarationOpen(code) {\n    if (code === 45) {\n      effects.consume(code);\n      return commentOpenInside;\n    }\n    if (code === 91) {\n      effects.consume(code);\n      index = 0;\n      return cdataOpenInside;\n    }\n    if (asciiAlpha(code)) {\n      effects.consume(code);\n      return declaration;\n    }\n    return nok(code);\n  }\n\n  /**\n   * In a comment, after `<!-`, at another `-`.\n   *\n   * ```markdown\n   * > | a <!--b--> c\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function commentOpenInside(code) {\n    if (code === 45) {\n      effects.consume(code);\n      return commentEnd;\n    }\n    return nok(code);\n  }\n\n  /**\n   * In comment.\n   *\n   * ```markdown\n   * > | a <!--b--> c\n   *           ^\n   * ```\n   *\n   * @type {State}\n   */\n  function comment(code) {\n    if (code === null) {\n      return nok(code);\n    }\n    if (code === 45) {\n      effects.consume(code);\n      return commentClose;\n    }\n    if (markdownLineEnding(code)) {\n      returnState = comment;\n      return lineEndingBefore(code);\n    }\n    effects.consume(code);\n    return comment;\n  }\n\n  /**\n   * In comment, after `-`.\n   *\n   * ```markdown\n   * > | a <!--b--> c\n   *             ^\n   * ```\n   *\n   * @type {State}\n   */\n  function commentClose(code) {\n    if (code === 45) {\n      effects.consume(code);\n      return commentEnd;\n    }\n    return comment(code);\n  }\n\n  /**\n   * In comment, after `--`.\n   *\n   * ```markdown\n   * > | a <!--b--> c\n   *              ^\n   * ```\n   *\n   * @type {State}\n   */\n  function commentEnd(code) {\n    return code === 62 ? end(code) : code === 45 ? commentClose(code) : comment(code);\n  }\n\n  /**\n   * After `<![`, in CDATA, expecting `CDATA[`.\n   *\n   * ```markdown\n   * > | a <![CDATA[>&<]]> b\n   *          ^^^^^^\n   * ```\n   *\n   * @type {State}\n   */\n  function cdataOpenInside(code) {\n    const value = \"CDATA[\";\n    if (code === value.charCodeAt(index++)) {\n      effects.consume(code);\n      return index === value.length ? cdata : cdataOpenInside;\n    }\n    return nok(code);\n  }\n\n  /**\n   * In CDATA.\n   *\n   * ```markdown\n   * > | a <![CDATA[>&<]]> b\n   *                ^^^\n   * ```\n   *\n   * @type {State}\n   */\n  function cdata(code) {\n    if (code === null) {\n      return nok(code);\n    }\n    if (code === 93) {\n      effects.consume(code);\n      return cdataClose;\n    }\n    if (markdownLineEnding(code)) {\n      returnState = cdata;\n      return lineEndingBefore(code);\n    }\n    effects.consume(code);\n    return cdata;\n  }\n\n  /**\n   * In CDATA, after `]`, at another `]`.\n   *\n   * ```markdown\n   * > | a <![CDATA[>&<]]> b\n   *                    ^\n   * ```\n   *\n   * @type {State}\n   */\n  function cdataClose(code) {\n    if (code === 93) {\n      effects.consume(code);\n      return cdataEnd;\n    }\n    return cdata(code);\n  }\n\n  /**\n   * In CDATA, after `]]`, at `>`.\n   *\n   * ```markdown\n   * > | a <![CDATA[>&<]]> b\n   *                     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function cdataEnd(code) {\n    if (code === 62) {\n      return end(code);\n    }\n    if (code === 93) {\n      effects.consume(code);\n      return cdataEnd;\n    }\n    return cdata(code);\n  }\n\n  /**\n   * In declaration.\n   *\n   * ```markdown\n   * > | a <!b> c\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function declaration(code) {\n    if (code === null || code === 62) {\n      return end(code);\n    }\n    if (markdownLineEnding(code)) {\n      returnState = declaration;\n      return lineEndingBefore(code);\n    }\n    effects.consume(code);\n    return declaration;\n  }\n\n  /**\n   * In instruction.\n   *\n   * ```markdown\n   * > | a <?b?> c\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function instruction(code) {\n    if (code === null) {\n      return nok(code);\n    }\n    if (code === 63) {\n      effects.consume(code);\n      return instructionClose;\n    }\n    if (markdownLineEnding(code)) {\n      returnState = instruction;\n      return lineEndingBefore(code);\n    }\n    effects.consume(code);\n    return instruction;\n  }\n\n  /**\n   * In instruction, after `?`, at `>`.\n   *\n   * ```markdown\n   * > | a <?b?> c\n   *           ^\n   * ```\n   *\n   * @type {State}\n   */\n  function instructionClose(code) {\n    return code === 62 ? end(code) : instruction(code);\n  }\n\n  /**\n   * After `</`, in closing tag, at tag name.\n   *\n   * ```markdown\n   * > | a </b> c\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagCloseStart(code) {\n    // ASCII alphabetical.\n    if (asciiAlpha(code)) {\n      effects.consume(code);\n      return tagClose;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After `</x`, in a tag name.\n   *\n   * ```markdown\n   * > | a </b> c\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagClose(code) {\n    // ASCII alphanumerical and `-`.\n    if (code === 45 || asciiAlphanumeric(code)) {\n      effects.consume(code);\n      return tagClose;\n    }\n    return tagCloseBetween(code);\n  }\n\n  /**\n   * In closing tag, after tag name.\n   *\n   * ```markdown\n   * > | a </b> c\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagCloseBetween(code) {\n    if (markdownLineEnding(code)) {\n      returnState = tagCloseBetween;\n      return lineEndingBefore(code);\n    }\n    if (markdownSpace(code)) {\n      effects.consume(code);\n      return tagCloseBetween;\n    }\n    return end(code);\n  }\n\n  /**\n   * After `<x`, in opening tag name.\n   *\n   * ```markdown\n   * > | a <b> c\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagOpen(code) {\n    // ASCII alphanumerical and `-`.\n    if (code === 45 || asciiAlphanumeric(code)) {\n      effects.consume(code);\n      return tagOpen;\n    }\n    if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n      return tagOpenBetween(code);\n    }\n    return nok(code);\n  }\n\n  /**\n   * In opening tag, after tag name.\n   *\n   * ```markdown\n   * > | a <b> c\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagOpenBetween(code) {\n    if (code === 47) {\n      effects.consume(code);\n      return end;\n    }\n\n    // ASCII alphabetical and `:` and `_`.\n    if (code === 58 || code === 95 || asciiAlpha(code)) {\n      effects.consume(code);\n      return tagOpenAttributeName;\n    }\n    if (markdownLineEnding(code)) {\n      returnState = tagOpenBetween;\n      return lineEndingBefore(code);\n    }\n    if (markdownSpace(code)) {\n      effects.consume(code);\n      return tagOpenBetween;\n    }\n    return end(code);\n  }\n\n  /**\n   * In attribute name.\n   *\n   * ```markdown\n   * > | a <b c> d\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagOpenAttributeName(code) {\n    // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n    if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n      effects.consume(code);\n      return tagOpenAttributeName;\n    }\n    return tagOpenAttributeNameAfter(code);\n  }\n\n  /**\n   * After attribute name, before initializer, the end of the tag, or\n   * whitespace.\n   *\n   * ```markdown\n   * > | a <b c> d\n   *           ^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagOpenAttributeNameAfter(code) {\n    if (code === 61) {\n      effects.consume(code);\n      return tagOpenAttributeValueBefore;\n    }\n    if (markdownLineEnding(code)) {\n      returnState = tagOpenAttributeNameAfter;\n      return lineEndingBefore(code);\n    }\n    if (markdownSpace(code)) {\n      effects.consume(code);\n      return tagOpenAttributeNameAfter;\n    }\n    return tagOpenBetween(code);\n  }\n\n  /**\n   * Before unquoted, double quoted, or single quoted attribute value, allowing\n   * whitespace.\n   *\n   * ```markdown\n   * > | a <b c=d> e\n   *            ^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagOpenAttributeValueBefore(code) {\n    if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n      return nok(code);\n    }\n    if (code === 34 || code === 39) {\n      effects.consume(code);\n      marker = code;\n      return tagOpenAttributeValueQuoted;\n    }\n    if (markdownLineEnding(code)) {\n      returnState = tagOpenAttributeValueBefore;\n      return lineEndingBefore(code);\n    }\n    if (markdownSpace(code)) {\n      effects.consume(code);\n      return tagOpenAttributeValueBefore;\n    }\n    effects.consume(code);\n    return tagOpenAttributeValueUnquoted;\n  }\n\n  /**\n   * In double or single quoted attribute value.\n   *\n   * ```markdown\n   * > | a <b c=\"d\"> e\n   *             ^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagOpenAttributeValueQuoted(code) {\n    if (code === marker) {\n      effects.consume(code);\n      marker = undefined;\n      return tagOpenAttributeValueQuotedAfter;\n    }\n    if (code === null) {\n      return nok(code);\n    }\n    if (markdownLineEnding(code)) {\n      returnState = tagOpenAttributeValueQuoted;\n      return lineEndingBefore(code);\n    }\n    effects.consume(code);\n    return tagOpenAttributeValueQuoted;\n  }\n\n  /**\n   * In unquoted attribute value.\n   *\n   * ```markdown\n   * > | a <b c=d> e\n   *            ^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagOpenAttributeValueUnquoted(code) {\n    if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) {\n      return nok(code);\n    }\n    if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n      return tagOpenBetween(code);\n    }\n    effects.consume(code);\n    return tagOpenAttributeValueUnquoted;\n  }\n\n  /**\n   * After double or single quoted attribute value, before whitespace or the end\n   * of the tag.\n   *\n   * ```markdown\n   * > | a <b c=\"d\"> e\n   *               ^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagOpenAttributeValueQuotedAfter(code) {\n    if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n      return tagOpenBetween(code);\n    }\n    return nok(code);\n  }\n\n  /**\n   * In certain circumstances of a tag where only an `>` is allowed.\n   *\n   * ```markdown\n   * > | a <b c=\"d\"> e\n   *               ^\n   * ```\n   *\n   * @type {State}\n   */\n  function end(code) {\n    if (code === 62) {\n      effects.consume(code);\n      effects.exit(\"htmlTextData\");\n      effects.exit(\"htmlText\");\n      return ok;\n    }\n    return nok(code);\n  }\n\n  /**\n   * At eol.\n   *\n   * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n   * > empty tokens.\n   *\n   * ```markdown\n   * > | a <!--a\n   *            ^\n   *   | b-->\n   * ```\n   *\n   * @type {State}\n   */\n  function lineEndingBefore(code) {\n    effects.exit(\"htmlTextData\");\n    effects.enter(\"lineEnding\");\n    effects.consume(code);\n    effects.exit(\"lineEnding\");\n    return lineEndingAfter;\n  }\n\n  /**\n   * After eol, at optional whitespace.\n   *\n   * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n   * > empty tokens.\n   *\n   * ```markdown\n   *   | a <!--a\n   * > | b-->\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function lineEndingAfter(code) {\n    // Always populated by defaults.\n\n    return markdownSpace(code) ? factorySpace(effects, lineEndingAfterPrefix, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : lineEndingAfterPrefix(code);\n  }\n\n  /**\n   * After eol, after optional whitespace.\n   *\n   * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n   * > empty tokens.\n   *\n   * ```markdown\n   *   | a <!--a\n   * > | b-->\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function lineEndingAfterPrefix(code) {\n    effects.enter(\"htmlTextData\");\n    return returnState(code);\n  }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartLink = {\n  name: 'labelStartLink',\n  tokenize: tokenizeLabelStartLink,\n  resolveAll: labelEnd.resolveAll\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n  const self = this;\n  return start;\n\n  /**\n   * Start of label (link) start.\n   *\n   * ```markdown\n   * > | a [b] c\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter(\"labelLink\");\n    effects.enter(\"labelMarker\");\n    effects.consume(code);\n    effects.exit(\"labelMarker\");\n    effects.exit(\"labelLink\");\n    return after;\n  }\n\n  /** @type {State} */\n  function after(code) {\n    // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n    // remove.\n    // Hidden footnotes hook.\n    /* c8 ignore next 3 */\n    return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n  }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const hardBreakEscape = {\n  name: 'hardBreakEscape',\n  tokenize: tokenizeHardBreakEscape\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n  return start;\n\n  /**\n   * Start of a hard break (escape).\n   *\n   * ```markdown\n   * > | a\\\n   *      ^\n   *   | b\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter(\"hardBreakEscape\");\n    effects.consume(code);\n    return after;\n  }\n\n  /**\n   * After `\\`, at eol.\n   *\n   * ```markdown\n   * > | a\\\n   *       ^\n   *   | b\n   * ```\n   *\n   *  @type {State}\n   */\n  function after(code) {\n    if (markdownLineEnding(code)) {\n      effects.exit(\"hardBreakEscape\");\n      return ok(code);\n    }\n    return nok(code);\n  }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const codeText = {\n  name: 'codeText',\n  tokenize: tokenizeCodeText,\n  resolve: resolveCodeText,\n  previous\n};\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n  let tailExitIndex = events.length - 4;\n  let headEnterIndex = 3;\n  /** @type {number} */\n  let index;\n  /** @type {number | undefined} */\n  let enter;\n\n  // If we start and end with an EOL or a space.\n  if ((events[headEnterIndex][1].type === \"lineEnding\" || events[headEnterIndex][1].type === 'space') && (events[tailExitIndex][1].type === \"lineEnding\" || events[tailExitIndex][1].type === 'space')) {\n    index = headEnterIndex;\n\n    // And we have data.\n    while (++index < tailExitIndex) {\n      if (events[index][1].type === \"codeTextData\") {\n        // Then we have padding.\n        events[headEnterIndex][1].type = \"codeTextPadding\";\n        events[tailExitIndex][1].type = \"codeTextPadding\";\n        headEnterIndex += 2;\n        tailExitIndex -= 2;\n        break;\n      }\n    }\n  }\n\n  // Merge adjacent spaces and data.\n  index = headEnterIndex - 1;\n  tailExitIndex++;\n  while (++index <= tailExitIndex) {\n    if (enter === undefined) {\n      if (index !== tailExitIndex && events[index][1].type !== \"lineEnding\") {\n        enter = index;\n      }\n    } else if (index === tailExitIndex || events[index][1].type === \"lineEnding\") {\n      events[enter][1].type = \"codeTextData\";\n      if (index !== enter + 2) {\n        events[enter][1].end = events[index - 1][1].end;\n        events.splice(enter + 2, index - enter - 2);\n        tailExitIndex -= index - enter - 2;\n        index = enter + 2;\n      }\n      enter = undefined;\n    }\n  }\n  return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previous(code) {\n  // If there is a previous code, there will always be a tail.\n  return code !== 96 || this.events[this.events.length - 1][1].type === \"characterEscape\";\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n  const self = this;\n  let sizeOpen = 0;\n  /** @type {number} */\n  let size;\n  /** @type {Token} */\n  let token;\n  return start;\n\n  /**\n   * Start of code (text).\n   *\n   * ```markdown\n   * > | `a`\n   *     ^\n   * > | \\`a`\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter(\"codeText\");\n    effects.enter(\"codeTextSequence\");\n    return sequenceOpen(code);\n  }\n\n  /**\n   * In opening sequence.\n   *\n   * ```markdown\n   * > | `a`\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function sequenceOpen(code) {\n    if (code === 96) {\n      effects.consume(code);\n      sizeOpen++;\n      return sequenceOpen;\n    }\n    effects.exit(\"codeTextSequence\");\n    return between(code);\n  }\n\n  /**\n   * Between something and something else.\n   *\n   * ```markdown\n   * > | `a`\n   *      ^^\n   * ```\n   *\n   * @type {State}\n   */\n  function between(code) {\n    // EOF.\n    if (code === null) {\n      return nok(code);\n    }\n\n    // To do: next major: don’t do spaces in resolve, but when compiling,\n    // like `markdown-rs`.\n    // Tabs don’t work, and virtual spaces don’t make sense.\n    if (code === 32) {\n      effects.enter('space');\n      effects.consume(code);\n      effects.exit('space');\n      return between;\n    }\n\n    // Closing fence? Could also be data.\n    if (code === 96) {\n      token = effects.enter(\"codeTextSequence\");\n      size = 0;\n      return sequenceClose(code);\n    }\n    if (markdownLineEnding(code)) {\n      effects.enter(\"lineEnding\");\n      effects.consume(code);\n      effects.exit(\"lineEnding\");\n      return between;\n    }\n\n    // Data.\n    effects.enter(\"codeTextData\");\n    return data(code);\n  }\n\n  /**\n   * In data.\n   *\n   * ```markdown\n   * > | `a`\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function data(code) {\n    if (code === null || code === 32 || code === 96 || markdownLineEnding(code)) {\n      effects.exit(\"codeTextData\");\n      return between(code);\n    }\n    effects.consume(code);\n    return data;\n  }\n\n  /**\n   * In closing sequence.\n   *\n   * ```markdown\n   * > | `a`\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function sequenceClose(code) {\n    // More.\n    if (code === 96) {\n      effects.consume(code);\n      size++;\n      return sequenceClose;\n    }\n\n    // Done!\n    if (size === sizeOpen) {\n      effects.exit(\"codeTextSequence\");\n      effects.exit(\"codeText\");\n      return ok(code);\n    }\n\n    // More or less accents: mark as data.\n    token.type = \"codeTextData\";\n    return data(code);\n  }\n}","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\n\nimport {\n  attention,\n  autolink,\n  blockQuote,\n  characterEscape,\n  characterReference,\n  codeFenced,\n  codeIndented,\n  codeText,\n  definition,\n  hardBreakEscape,\n  headingAtx,\n  htmlFlow,\n  htmlText,\n  labelEnd,\n  labelStartImage,\n  labelStartLink,\n  lineEnding,\n  list,\n  setextUnderline,\n  thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n  [42]: list,\n  [43]: list,\n  [45]: list,\n  [48]: list,\n  [49]: list,\n  [50]: list,\n  [51]: list,\n  [52]: list,\n  [53]: list,\n  [54]: list,\n  [55]: list,\n  [56]: list,\n  [57]: list,\n  [62]: blockQuote\n}\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n  [91]: definition\n}\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n  [-2]: codeIndented,\n  [-1]: codeIndented,\n  [32]: codeIndented\n}\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n  [35]: headingAtx,\n  [42]: thematicBreak,\n  [45]: [setextUnderline, thematicBreak],\n  [60]: htmlFlow,\n  [61]: setextUnderline,\n  [95]: thematicBreak,\n  [96]: codeFenced,\n  [126]: codeFenced\n}\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n  [38]: characterReference,\n  [92]: characterEscape\n}\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n  [-5]: lineEnding,\n  [-4]: lineEnding,\n  [-3]: lineEnding,\n  [33]: labelStartImage,\n  [38]: characterReference,\n  [42]: attention,\n  [60]: [autolink, htmlText],\n  [91]: labelStartLink,\n  [92]: [hardBreakEscape, characterEscape],\n  [93]: labelEnd,\n  [95]: attention,\n  [96]: codeText\n}\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n  null: [attention, resolveText]\n}\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n  null: [42, 95]\n}\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n  null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {boolean | null | undefined} [end=false]\n * @returns {Array<Chunk>}\n */\n\nconst search = /[\\0\\t\\n\\r]/g\n\n/**\n * @returns {Preprocessor}\n */\nexport function preprocess() {\n  let column = 1\n  let buffer = ''\n  /** @type {boolean | undefined} */\n  let start = true\n  /** @type {boolean | undefined} */\n  let atCarriageReturn\n  return preprocessor\n\n  /** @type {Preprocessor} */\n  // eslint-disable-next-line complexity\n  function preprocessor(value, encoding, end) {\n    /** @type {Array<Chunk>} */\n    const chunks = []\n    /** @type {RegExpMatchArray | null} */\n    let match\n    /** @type {number} */\n    let next\n    /** @type {number} */\n    let startPosition\n    /** @type {number} */\n    let endPosition\n    /** @type {Code} */\n    let code\n    value =\n      buffer +\n      (typeof value === 'string'\n        ? value.toString()\n        : new TextDecoder(encoding || undefined).decode(value))\n    startPosition = 0\n    buffer = ''\n    if (start) {\n      // To do: `markdown-rs` actually parses BOMs (byte order mark).\n      if (value.charCodeAt(0) === 65279) {\n        startPosition++\n      }\n      start = undefined\n    }\n    while (startPosition < value.length) {\n      search.lastIndex = startPosition\n      match = search.exec(value)\n      endPosition =\n        match && match.index !== undefined ? match.index : value.length\n      code = value.charCodeAt(endPosition)\n      if (!match) {\n        buffer = value.slice(startPosition)\n        break\n      }\n      if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n        chunks.push(-3)\n        atCarriageReturn = undefined\n      } else {\n        if (atCarriageReturn) {\n          chunks.push(-5)\n          atCarriageReturn = undefined\n        }\n        if (startPosition < endPosition) {\n          chunks.push(value.slice(startPosition, endPosition))\n          column += endPosition - startPosition\n        }\n        switch (code) {\n          case 0: {\n            chunks.push(65533)\n            column++\n            break\n          }\n          case 9: {\n            next = Math.ceil(column / 4) * 4\n            chunks.push(-2)\n            while (column++ < next) chunks.push(-1)\n            break\n          }\n          case 10: {\n            chunks.push(-4)\n            column = 1\n            break\n          }\n          default: {\n            atCarriageReturn = true\n            column = 1\n          }\n        }\n      }\n      startPosition = endPosition + 1\n    }\n    if (end) {\n      if (atCarriageReturn) chunks.push(-5)\n      if (buffer) chunks.push(buffer)\n      chunks.push(null)\n    }\n    return chunks\n  }\n}\n","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCodePoint(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n *   Value to decode.\n * @param {number} base\n *   Numeric base.\n * @returns {string}\n *   Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n  const code = Number.parseInt(value, base);\n  if (\n  // C0 except for HT, LF, FF, CR, space.\n  code < 9 || code === 11 || code > 13 && code < 32 ||\n  // Control character (DEL) of C0, and C1 controls.\n  code > 126 && code < 160 ||\n  // Lone high surrogates and low surrogates.\n  code > 55_295 && code < 57_344 ||\n  // Noncharacters.\n  code > 64_975 && code < 65_008 || /* eslint-disable no-bitwise */\n  (code & 65_535) === 65_535 || (code & 65_535) === 65_534 || /* eslint-enable no-bitwise */\n  // Out of range\n  code > 1_114_111) {\n    return \"\\uFFFD\";\n  }\n  return String.fromCodePoint(code);\n}","import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n  /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n *   Value to decode.\n * @returns {string}\n *   Decoded value.\n */\nexport function decodeString(value) {\n  return value.replace(characterEscapeOrReference, decode)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\nfunction decode($0, $1, $2) {\n  if ($1) {\n    // Escape.\n    return $1\n  }\n\n  // Reference.\n  const head = $2.charCodeAt(0)\n  if (head === 35) {\n    const head = $2.charCodeAt(1)\n    const hex = head === 120 || head === 88\n    return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n  }\n  return decodeNamedCharacterReference($2) || $0\n}\n","/**\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').Html} Html\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').ReferenceType} ReferenceType\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n *\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n *\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Omit<Parent, 'children' | 'type'> & {type: 'fragment', children: Array<PhrasingContent>}} Fragment\n */\n\n/**\n * @callback Transform\n *   Extra transform, to change the AST afterwards.\n * @param {Root} tree\n *   Tree to transform.\n * @returns {Root | null | undefined | void}\n *   New tree or nothing (in which case the current tree is used).\n *\n * @callback Handle\n *   Handle a token.\n * @param {CompileContext} this\n *   Context.\n * @param {Token} token\n *   Current token.\n * @returns {undefined | void}\n *   Nothing.\n *\n * @typedef {Record<string, Handle>} Handles\n *   Token types mapping to handles\n *\n * @callback OnEnterError\n *   Handle the case where the `right` token is open, but it is closed (by the\n *   `left` token) or because we reached the end of the document.\n * @param {Omit<CompileContext, 'sliceSerialize'>} this\n *   Context.\n * @param {Token | undefined} left\n *   Left token.\n * @param {Token} right\n *   Right token.\n * @returns {undefined}\n *   Nothing.\n *\n * @callback OnExitError\n *   Handle the case where the `right` token is open but it is closed by\n *   exiting the `left` token.\n * @param {Omit<CompileContext, 'sliceSerialize'>} this\n *   Context.\n * @param {Token} left\n *   Left token.\n * @param {Token} right\n *   Right token.\n * @returns {undefined}\n *   Nothing.\n *\n * @typedef {[Token, OnEnterError | undefined]} TokenTuple\n *   Open token on the stack, with an optional error handler for when\n *   that token isn’t closed properly.\n */\n\n/**\n * @typedef Config\n *   Configuration.\n *\n *   We have our defaults, but extensions will add more.\n * @property {Array<string>} canContainEols\n *   Token types where line endings are used.\n * @property {Handles} enter\n *   Opening handles.\n * @property {Handles} exit\n *   Closing handles.\n * @property {Array<Transform>} transforms\n *   Tree transforms.\n *\n * @typedef {Partial<Config>} Extension\n *   Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n *   mdast compiler context.\n * @property {Array<Fragment | Nodes>} stack\n *   Stack of nodes.\n * @property {Array<TokenTuple>} tokenStack\n *   Stack of tokens.\n * @property {(this: CompileContext) => undefined} buffer\n *   Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n *   Stop capturing and access the output data.\n * @property {(this: CompileContext, node: Nodes, token: Token, onError?: OnEnterError) => undefined} enter\n *   Enter a node.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => undefined} exit\n *   Exit a node.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n *   Get the string value of a token.\n * @property {Config} config\n *   Configuration.\n * @property {CompileData} data\n *   Info passed around; key/value store.\n *\n * @typedef FromMarkdownOptions\n *   Configuration for how to build mdast.\n * @property {Array<Extension | Array<Extension>> | null | undefined} [mdastExtensions]\n *   Extensions for this utility to change how tokens are turned into a tree.\n *\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n *   Configuration.\n */\n\nimport { toString } from 'mdast-util-to-string';\nimport { parse, postprocess, preprocess } from 'micromark';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nimport { decodeString } from 'micromark-util-decode-string';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { stringifyPosition } from 'unist-util-stringify-position';\nconst own = {}.hasOwnProperty;\n\n/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n *   Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n *   Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n *   Configuration.\n * @returns {Root}\n *   mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n  if (typeof encoding !== 'string') {\n    options = encoding;\n    encoding = undefined;\n  }\n  return compiler(options)(postprocess(parse(options).document().write(preprocess()(value, encoding, true))));\n}\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n  /** @type {Config} */\n  const config = {\n    transforms: [],\n    canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n    enter: {\n      autolink: opener(link),\n      autolinkProtocol: onenterdata,\n      autolinkEmail: onenterdata,\n      atxHeading: opener(heading),\n      blockQuote: opener(blockQuote),\n      characterEscape: onenterdata,\n      characterReference: onenterdata,\n      codeFenced: opener(codeFlow),\n      codeFencedFenceInfo: buffer,\n      codeFencedFenceMeta: buffer,\n      codeIndented: opener(codeFlow, buffer),\n      codeText: opener(codeText, buffer),\n      codeTextData: onenterdata,\n      data: onenterdata,\n      codeFlowValue: onenterdata,\n      definition: opener(definition),\n      definitionDestinationString: buffer,\n      definitionLabelString: buffer,\n      definitionTitleString: buffer,\n      emphasis: opener(emphasis),\n      hardBreakEscape: opener(hardBreak),\n      hardBreakTrailing: opener(hardBreak),\n      htmlFlow: opener(html, buffer),\n      htmlFlowData: onenterdata,\n      htmlText: opener(html, buffer),\n      htmlTextData: onenterdata,\n      image: opener(image),\n      label: buffer,\n      link: opener(link),\n      listItem: opener(listItem),\n      listItemValue: onenterlistitemvalue,\n      listOrdered: opener(list, onenterlistordered),\n      listUnordered: opener(list),\n      paragraph: opener(paragraph),\n      reference: onenterreference,\n      referenceString: buffer,\n      resourceDestinationString: buffer,\n      resourceTitleString: buffer,\n      setextHeading: opener(heading),\n      strong: opener(strong),\n      thematicBreak: opener(thematicBreak)\n    },\n    exit: {\n      atxHeading: closer(),\n      atxHeadingSequence: onexitatxheadingsequence,\n      autolink: closer(),\n      autolinkEmail: onexitautolinkemail,\n      autolinkProtocol: onexitautolinkprotocol,\n      blockQuote: closer(),\n      characterEscapeValue: onexitdata,\n      characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n      characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n      characterReferenceValue: onexitcharacterreferencevalue,\n      characterReference: onexitcharacterreference,\n      codeFenced: closer(onexitcodefenced),\n      codeFencedFence: onexitcodefencedfence,\n      codeFencedFenceInfo: onexitcodefencedfenceinfo,\n      codeFencedFenceMeta: onexitcodefencedfencemeta,\n      codeFlowValue: onexitdata,\n      codeIndented: closer(onexitcodeindented),\n      codeText: closer(onexitcodetext),\n      codeTextData: onexitdata,\n      data: onexitdata,\n      definition: closer(),\n      definitionDestinationString: onexitdefinitiondestinationstring,\n      definitionLabelString: onexitdefinitionlabelstring,\n      definitionTitleString: onexitdefinitiontitlestring,\n      emphasis: closer(),\n      hardBreakEscape: closer(onexithardbreak),\n      hardBreakTrailing: closer(onexithardbreak),\n      htmlFlow: closer(onexithtmlflow),\n      htmlFlowData: onexitdata,\n      htmlText: closer(onexithtmltext),\n      htmlTextData: onexitdata,\n      image: closer(onexitimage),\n      label: onexitlabel,\n      labelText: onexitlabeltext,\n      lineEnding: onexitlineending,\n      link: closer(onexitlink),\n      listItem: closer(),\n      listOrdered: closer(),\n      listUnordered: closer(),\n      paragraph: closer(),\n      referenceString: onexitreferencestring,\n      resourceDestinationString: onexitresourcedestinationstring,\n      resourceTitleString: onexitresourcetitlestring,\n      resource: onexitresource,\n      setextHeading: closer(onexitsetextheading),\n      setextHeadingLineSequence: onexitsetextheadinglinesequence,\n      setextHeadingText: onexitsetextheadingtext,\n      strong: closer(),\n      thematicBreak: closer()\n    }\n  };\n  configure(config, (options || {}).mdastExtensions || []);\n\n  /** @type {CompileData} */\n  const data = {};\n  return compile;\n\n  /**\n   * Turn micromark events into an mdast tree.\n   *\n   * @param {Array<Event>} events\n   *   Events.\n   * @returns {Root}\n   *   mdast tree.\n   */\n  function compile(events) {\n    /** @type {Root} */\n    let tree = {\n      type: 'root',\n      children: []\n    };\n    /** @type {Omit<CompileContext, 'sliceSerialize'>} */\n    const context = {\n      stack: [tree],\n      tokenStack: [],\n      config,\n      enter,\n      exit,\n      buffer,\n      resume,\n      data\n    };\n    /** @type {Array<number>} */\n    const listStack = [];\n    let index = -1;\n    while (++index < events.length) {\n      // We preprocess lists to add `listItem` tokens, and to infer whether\n      // items the list itself are spread out.\n      if (events[index][1].type === \"listOrdered\" || events[index][1].type === \"listUnordered\") {\n        if (events[index][0] === 'enter') {\n          listStack.push(index);\n        } else {\n          const tail = listStack.pop();\n          index = prepareList(events, tail, index);\n        }\n      }\n    }\n    index = -1;\n    while (++index < events.length) {\n      const handler = config[events[index][0]];\n      if (own.call(handler, events[index][1].type)) {\n        handler[events[index][1].type].call(Object.assign({\n          sliceSerialize: events[index][2].sliceSerialize\n        }, context), events[index][1]);\n      }\n    }\n\n    // Handle tokens still being open.\n    if (context.tokenStack.length > 0) {\n      const tail = context.tokenStack[context.tokenStack.length - 1];\n      const handler = tail[1] || defaultOnError;\n      handler.call(context, undefined, tail[0]);\n    }\n\n    // Figure out `root` position.\n    tree.position = {\n      start: point(events.length > 0 ? events[0][1].start : {\n        line: 1,\n        column: 1,\n        offset: 0\n      }),\n      end: point(events.length > 0 ? events[events.length - 2][1].end : {\n        line: 1,\n        column: 1,\n        offset: 0\n      })\n    };\n\n    // Call transforms.\n    index = -1;\n    while (++index < config.transforms.length) {\n      tree = config.transforms[index](tree) || tree;\n    }\n    return tree;\n  }\n\n  /**\n   * @param {Array<Event>} events\n   * @param {number} start\n   * @param {number} length\n   * @returns {number}\n   */\n  function prepareList(events, start, length) {\n    let index = start - 1;\n    let containerBalance = -1;\n    let listSpread = false;\n    /** @type {Token | undefined} */\n    let listItem;\n    /** @type {number | undefined} */\n    let lineIndex;\n    /** @type {number | undefined} */\n    let firstBlankLineIndex;\n    /** @type {boolean | undefined} */\n    let atMarker;\n    while (++index <= length) {\n      const event = events[index];\n      switch (event[1].type) {\n        case \"listUnordered\":\n        case \"listOrdered\":\n        case \"blockQuote\":\n          {\n            if (event[0] === 'enter') {\n              containerBalance++;\n            } else {\n              containerBalance--;\n            }\n            atMarker = undefined;\n            break;\n          }\n        case \"lineEndingBlank\":\n          {\n            if (event[0] === 'enter') {\n              if (listItem && !atMarker && !containerBalance && !firstBlankLineIndex) {\n                firstBlankLineIndex = index;\n              }\n              atMarker = undefined;\n            }\n            break;\n          }\n        case \"linePrefix\":\n        case \"listItemValue\":\n        case \"listItemMarker\":\n        case \"listItemPrefix\":\n        case \"listItemPrefixWhitespace\":\n          {\n            // Empty.\n\n            break;\n          }\n        default:\n          {\n            atMarker = undefined;\n          }\n      }\n      if (!containerBalance && event[0] === 'enter' && event[1].type === \"listItemPrefix\" || containerBalance === -1 && event[0] === 'exit' && (event[1].type === \"listUnordered\" || event[1].type === \"listOrdered\")) {\n        if (listItem) {\n          let tailIndex = index;\n          lineIndex = undefined;\n          while (tailIndex--) {\n            const tailEvent = events[tailIndex];\n            if (tailEvent[1].type === \"lineEnding\" || tailEvent[1].type === \"lineEndingBlank\") {\n              if (tailEvent[0] === 'exit') continue;\n              if (lineIndex) {\n                events[lineIndex][1].type = \"lineEndingBlank\";\n                listSpread = true;\n              }\n              tailEvent[1].type = \"lineEnding\";\n              lineIndex = tailIndex;\n            } else if (tailEvent[1].type === \"linePrefix\" || tailEvent[1].type === \"blockQuotePrefix\" || tailEvent[1].type === \"blockQuotePrefixWhitespace\" || tailEvent[1].type === \"blockQuoteMarker\" || tailEvent[1].type === \"listItemIndent\") {\n              // Empty\n            } else {\n              break;\n            }\n          }\n          if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {\n            listItem._spread = true;\n          }\n\n          // Fix position.\n          listItem.end = Object.assign({}, lineIndex ? events[lineIndex][1].start : event[1].end);\n          events.splice(lineIndex || index, 0, ['exit', listItem, event[2]]);\n          index++;\n          length++;\n        }\n\n        // Create a new list item.\n        if (event[1].type === \"listItemPrefix\") {\n          /** @type {Token} */\n          const item = {\n            type: 'listItem',\n            _spread: false,\n            start: Object.assign({}, event[1].start),\n            // @ts-expect-error: we’ll add `end` in a second.\n            end: undefined\n          };\n          listItem = item;\n          events.splice(index, 0, ['enter', item, event[2]]);\n          index++;\n          length++;\n          firstBlankLineIndex = undefined;\n          atMarker = true;\n        }\n      }\n    }\n    events[start][1]._spread = listSpread;\n    return length;\n  }\n\n  /**\n   * Create an opener handle.\n   *\n   * @param {(token: Token) => Nodes} create\n   *   Create a node.\n   * @param {Handle | undefined} [and]\n   *   Optional function to also run.\n   * @returns {Handle}\n   *   Handle.\n   */\n  function opener(create, and) {\n    return open;\n\n    /**\n     * @this {CompileContext}\n     * @param {Token} token\n     * @returns {undefined}\n     */\n    function open(token) {\n      enter.call(this, create(token), token);\n      if (and) and.call(this, token);\n    }\n  }\n\n  /**\n   * @this {CompileContext}\n   * @returns {undefined}\n   */\n  function buffer() {\n    this.stack.push({\n      type: 'fragment',\n      children: []\n    });\n  }\n\n  /**\n   * @this {CompileContext}\n   *   Context.\n   * @param {Nodes} node\n   *   Node to enter.\n   * @param {Token} token\n   *   Corresponding token.\n   * @param {OnEnterError | undefined} [errorHandler]\n   *   Handle the case where this token is open, but it is closed by something else.\n   * @returns {undefined}\n   *   Nothing.\n   */\n  function enter(node, token, errorHandler) {\n    const parent = this.stack[this.stack.length - 1];\n    /** @type {Array<Nodes>} */\n    const siblings = parent.children;\n    siblings.push(node);\n    this.stack.push(node);\n    this.tokenStack.push([token, errorHandler]);\n    node.position = {\n      start: point(token.start),\n      // @ts-expect-error: `end` will be patched later.\n      end: undefined\n    };\n  }\n\n  /**\n   * Create a closer handle.\n   *\n   * @param {Handle | undefined} [and]\n   *   Optional function to also run.\n   * @returns {Handle}\n   *   Handle.\n   */\n  function closer(and) {\n    return close;\n\n    /**\n     * @this {CompileContext}\n     * @param {Token} token\n     * @returns {undefined}\n     */\n    function close(token) {\n      if (and) and.call(this, token);\n      exit.call(this, token);\n    }\n  }\n\n  /**\n   * @this {CompileContext}\n   *   Context.\n   * @param {Token} token\n   *   Corresponding token.\n   * @param {OnExitError | undefined} [onExitError]\n   *   Handle the case where another token is open.\n   * @returns {undefined}\n   *   Nothing.\n   */\n  function exit(token, onExitError) {\n    const node = this.stack.pop();\n    const open = this.tokenStack.pop();\n    if (!open) {\n      throw new Error('Cannot close `' + token.type + '` (' + stringifyPosition({\n        start: token.start,\n        end: token.end\n      }) + '): it’s not open');\n    } else if (open[0].type !== token.type) {\n      if (onExitError) {\n        onExitError.call(this, token, open[0]);\n      } else {\n        const handler = open[1] || defaultOnError;\n        handler.call(this, token, open[0]);\n      }\n    }\n    node.position.end = point(token.end);\n  }\n\n  /**\n   * @this {CompileContext}\n   * @returns {string}\n   */\n  function resume() {\n    return toString(this.stack.pop());\n  }\n\n  //\n  // Handlers.\n  //\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onenterlistordered() {\n    this.data.expectingFirstListItemValue = true;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onenterlistitemvalue(token) {\n    if (this.data.expectingFirstListItemValue) {\n      const ancestor = this.stack[this.stack.length - 2];\n      ancestor.start = Number.parseInt(this.sliceSerialize(token), 10);\n      this.data.expectingFirstListItemValue = undefined;\n    }\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitcodefencedfenceinfo() {\n    const data = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    node.lang = data;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitcodefencedfencemeta() {\n    const data = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    node.meta = data;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitcodefencedfence() {\n    // Exit if this is the closing fence.\n    if (this.data.flowCodeInside) return;\n    this.buffer();\n    this.data.flowCodeInside = true;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitcodefenced() {\n    const data = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '');\n    this.data.flowCodeInside = undefined;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitcodeindented() {\n    const data = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    node.value = data.replace(/(\\r?\\n|\\r)$/g, '');\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitdefinitionlabelstring(token) {\n    const label = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    node.label = label;\n    node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitdefinitiontitlestring() {\n    const data = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    node.title = data;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitdefinitiondestinationstring() {\n    const data = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    node.url = data;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitatxheadingsequence(token) {\n    const node = this.stack[this.stack.length - 1];\n    if (!node.depth) {\n      const depth = this.sliceSerialize(token).length;\n      node.depth = depth;\n    }\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitsetextheadingtext() {\n    this.data.setextHeadingSlurpLineEnding = true;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitsetextheadinglinesequence(token) {\n    const node = this.stack[this.stack.length - 1];\n    node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitsetextheading() {\n    this.data.setextHeadingSlurpLineEnding = undefined;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onenterdata(token) {\n    const node = this.stack[this.stack.length - 1];\n    /** @type {Array<Nodes>} */\n    const siblings = node.children;\n    let tail = siblings[siblings.length - 1];\n    if (!tail || tail.type !== 'text') {\n      // Add a new text node.\n      tail = text();\n      tail.position = {\n        start: point(token.start),\n        // @ts-expect-error: we’ll add `end` later.\n        end: undefined\n      };\n      siblings.push(tail);\n    }\n    this.stack.push(tail);\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexitdata(token) {\n    const tail = this.stack.pop();\n    tail.value += this.sliceSerialize(token);\n    tail.position.end = point(token.end);\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexitlineending(token) {\n    const context = this.stack[this.stack.length - 1];\n    // If we’re at a hard break, include the line ending in there.\n    if (this.data.atHardBreak) {\n      const tail = context.children[context.children.length - 1];\n      tail.position.end = point(token.end);\n      this.data.atHardBreak = undefined;\n      return;\n    }\n    if (!this.data.setextHeadingSlurpLineEnding && config.canContainEols.includes(context.type)) {\n      onenterdata.call(this, token);\n      onexitdata.call(this, token);\n    }\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexithardbreak() {\n    this.data.atHardBreak = true;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexithtmlflow() {\n    const data = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    node.value = data;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexithtmltext() {\n    const data = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    node.value = data;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexitcodetext() {\n    const data = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    node.value = data;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexitlink() {\n    const node = this.stack[this.stack.length - 1];\n    // Note: there are also `identifier` and `label` fields on this link node!\n    // These are used / cleaned here.\n\n    // To do: clean.\n    if (this.data.inReference) {\n      /** @type {ReferenceType} */\n      const referenceType = this.data.referenceType || 'shortcut';\n      node.type += 'Reference';\n      // @ts-expect-error: mutate.\n      node.referenceType = referenceType;\n      // @ts-expect-error: mutate.\n      delete node.url;\n      delete node.title;\n    } else {\n      // @ts-expect-error: mutate.\n      delete node.identifier;\n      // @ts-expect-error: mutate.\n      delete node.label;\n    }\n    this.data.referenceType = undefined;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexitimage() {\n    const node = this.stack[this.stack.length - 1];\n    // Note: there are also `identifier` and `label` fields on this link node!\n    // These are used / cleaned here.\n\n    // To do: clean.\n    if (this.data.inReference) {\n      /** @type {ReferenceType} */\n      const referenceType = this.data.referenceType || 'shortcut';\n      node.type += 'Reference';\n      // @ts-expect-error: mutate.\n      node.referenceType = referenceType;\n      // @ts-expect-error: mutate.\n      delete node.url;\n      delete node.title;\n    } else {\n      // @ts-expect-error: mutate.\n      delete node.identifier;\n      // @ts-expect-error: mutate.\n      delete node.label;\n    }\n    this.data.referenceType = undefined;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexitlabeltext(token) {\n    const string = this.sliceSerialize(token);\n    const ancestor = this.stack[this.stack.length - 2];\n    // @ts-expect-error: stash this on the node, as it might become a reference\n    // later.\n    ancestor.label = decodeString(string);\n    // @ts-expect-error: same as above.\n    ancestor.identifier = normalizeIdentifier(string).toLowerCase();\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexitlabel() {\n    const fragment = this.stack[this.stack.length - 1];\n    const value = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    // Assume a reference.\n    this.data.inReference = true;\n    if (node.type === 'link') {\n      /** @type {Array<PhrasingContent>} */\n      const children = fragment.children;\n      node.children = children;\n    } else {\n      node.alt = value;\n    }\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexitresourcedestinationstring() {\n    const data = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    node.url = data;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexitresourcetitlestring() {\n    const data = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    node.title = data;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexitresource() {\n    this.data.inReference = undefined;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onenterreference() {\n    this.data.referenceType = 'collapsed';\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexitreferencestring(token) {\n    const label = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    // @ts-expect-error: stash this on the node, as it might become a reference\n    // later.\n    node.label = label;\n    // @ts-expect-error: same as above.\n    node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n    this.data.referenceType = 'full';\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexitcharacterreferencemarker(token) {\n    this.data.characterReferenceType = token.type;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitcharacterreferencevalue(token) {\n    const data = this.sliceSerialize(token);\n    const type = this.data.characterReferenceType;\n    /** @type {string} */\n    let value;\n    if (type) {\n      value = decodeNumericCharacterReference(data, type === \"characterReferenceMarkerNumeric\" ? 10 : 16);\n      this.data.characterReferenceType = undefined;\n    } else {\n      const result = decodeNamedCharacterReference(data);\n      value = result;\n    }\n    const tail = this.stack[this.stack.length - 1];\n    tail.value += value;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitcharacterreference(token) {\n    const tail = this.stack.pop();\n    tail.position.end = point(token.end);\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitautolinkprotocol(token) {\n    onexitdata.call(this, token);\n    const node = this.stack[this.stack.length - 1];\n    node.url = this.sliceSerialize(token);\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitautolinkemail(token) {\n    onexitdata.call(this, token);\n    const node = this.stack[this.stack.length - 1];\n    node.url = 'mailto:' + this.sliceSerialize(token);\n  }\n\n  //\n  // Creaters.\n  //\n\n  /** @returns {Blockquote} */\n  function blockQuote() {\n    return {\n      type: 'blockquote',\n      children: []\n    };\n  }\n\n  /** @returns {Code} */\n  function codeFlow() {\n    return {\n      type: 'code',\n      lang: null,\n      meta: null,\n      value: ''\n    };\n  }\n\n  /** @returns {InlineCode} */\n  function codeText() {\n    return {\n      type: 'inlineCode',\n      value: ''\n    };\n  }\n\n  /** @returns {Definition} */\n  function definition() {\n    return {\n      type: 'definition',\n      identifier: '',\n      label: null,\n      title: null,\n      url: ''\n    };\n  }\n\n  /** @returns {Emphasis} */\n  function emphasis() {\n    return {\n      type: 'emphasis',\n      children: []\n    };\n  }\n\n  /** @returns {Heading} */\n  function heading() {\n    return {\n      type: 'heading',\n      // @ts-expect-error `depth` will be set later.\n      depth: 0,\n      children: []\n    };\n  }\n\n  /** @returns {Break} */\n  function hardBreak() {\n    return {\n      type: 'break'\n    };\n  }\n\n  /** @returns {Html} */\n  function html() {\n    return {\n      type: 'html',\n      value: ''\n    };\n  }\n\n  /** @returns {Image} */\n  function image() {\n    return {\n      type: 'image',\n      title: null,\n      url: '',\n      alt: null\n    };\n  }\n\n  /** @returns {Link} */\n  function link() {\n    return {\n      type: 'link',\n      title: null,\n      url: '',\n      children: []\n    };\n  }\n\n  /**\n   * @param {Token} token\n   * @returns {List}\n   */\n  function list(token) {\n    return {\n      type: 'list',\n      ordered: token.type === 'listOrdered',\n      start: null,\n      spread: token._spread,\n      children: []\n    };\n  }\n\n  /**\n   * @param {Token} token\n   * @returns {ListItem}\n   */\n  function listItem(token) {\n    return {\n      type: 'listItem',\n      spread: token._spread,\n      checked: null,\n      children: []\n    };\n  }\n\n  /** @returns {Paragraph} */\n  function paragraph() {\n    return {\n      type: 'paragraph',\n      children: []\n    };\n  }\n\n  /** @returns {Strong} */\n  function strong() {\n    return {\n      type: 'strong',\n      children: []\n    };\n  }\n\n  /** @returns {Text} */\n  function text() {\n    return {\n      type: 'text',\n      value: ''\n    };\n  }\n\n  /** @returns {ThematicBreak} */\n  function thematicBreak() {\n    return {\n      type: 'thematicBreak'\n    };\n  }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n *   Point-like value.\n * @returns {Point}\n *   unist point.\n */\nfunction point(d) {\n  return {\n    line: d.line,\n    column: d.column,\n    offset: d.offset\n  };\n}\n\n/**\n * @param {Config} combined\n * @param {Array<Array<Extension> | Extension>} extensions\n * @returns {undefined}\n */\nfunction configure(combined, extensions) {\n  let index = -1;\n  while (++index < extensions.length) {\n    const value = extensions[index];\n    if (Array.isArray(value)) {\n      configure(combined, value);\n    } else {\n      extension(combined, value);\n    }\n  }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */\nfunction extension(combined, extension) {\n  /** @type {keyof Extension} */\n  let key;\n  for (key in extension) {\n    if (own.call(extension, key)) {\n      switch (key) {\n        case 'canContainEols':\n          {\n            const right = extension[key];\n            if (right) {\n              combined[key].push(...right);\n            }\n            break;\n          }\n        case 'transforms':\n          {\n            const right = extension[key];\n            if (right) {\n              combined[key].push(...right);\n            }\n            break;\n          }\n        case 'enter':\n        case 'exit':\n          {\n            const right = extension[key];\n            if (right) {\n              Object.assign(combined[key], right);\n            }\n            break;\n          }\n        // No default\n      }\n    }\n  }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n  if (left) {\n    throw new Error('Cannot close `' + left.type + '` (' + stringifyPosition({\n      start: left.start,\n      end: left.end\n    }) + '): a different token (`' + right.type + '`, ' + stringifyPosition({\n      start: right.start,\n      end: right.end\n    }) + ') is open');\n  } else {\n    throw new Error('Cannot close document, a token (`' + right.type + '`, ' + stringifyPosition({\n      start: right.start,\n      end: right.end\n    }) + ') is still open');\n  }\n}","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * @param {Array<Event>} events\n * @returns {Array<Event>}\n */\nexport function postprocess(events) {\n  while (!subtokenize(events)) {\n    // Empty\n  }\n  return events\n}\n","/**\n * @typedef {import('micromark-util-types').Create} Create\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n */\n\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {string, text} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * @returns {ParseContext}\n */\nexport function parse(options) {\n  const settings = options || {}\n  const constructs =\n    /** @type {FullNormalizedExtension} */\n    combineExtensions([defaultConstructs, ...(settings.extensions || [])])\n\n  /** @type {ParseContext} */\n  const parser = {\n    defined: [],\n    lazy: {},\n    constructs,\n    content: create(content),\n    document: create(document),\n    flow: create(flow),\n    string: create(string),\n    text: create(text)\n  }\n  return parser\n\n  /**\n   * @param {InitialConstruct} initial\n   */\n  function create(initial) {\n    return creator\n    /** @type {Create} */\n    function creator(from) {\n      return createTokenizer(parser, initial, from)\n    }\n  }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser<Root>} Parser\n * @typedef {import('unified').Processor<Root>} Processor\n */\n\n/**\n * @typedef {Omit<FromMarkdownOptions, 'extensions' | 'mdastExtensions'>} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly<Options> | null | undefined} [options]\n *   Configuration (optional).\n * @returns {undefined}\n *   Nothing.\n */\nexport default function remarkParse(options) {\n  /** @type {Processor} */\n  // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n  const self = this\n\n  self.parser = parser\n\n  /**\n   * @type {Parser}\n   */\n  function parser(doc) {\n    return fromMarkdown(doc, {\n      ...self.data('settings'),\n      ...options,\n      // Note: these options are not in the readme.\n      // The goal is for them to be set by plugins on `data` instead of being\n      // passed by users.\n      extensions: self.data('micromarkExtensions') || [],\n      mdastExtensions: self.data('fromMarkdownExtensions') || []\n    })\n  }\n}\n","export const VOID       = -1;\nexport const PRIMITIVE  = 0;\nexport const ARRAY      = 1;\nexport const OBJECT     = 2;\nexport const DATE       = 3;\nexport const REGEXP     = 4;\nexport const MAP        = 5;\nexport const SET        = 6;\nexport const ERROR      = 7;\nexport const BIGINT     = 8;\n// export const SYMBOL = 9;\n","import {\n  VOID, PRIMITIVE,\n  ARRAY, OBJECT,\n  DATE, REGEXP, MAP, SET,\n  ERROR, BIGINT\n} from './types.js';\n\nconst env = typeof self === 'object' ? self : globalThis;\n\nconst deserializer = ($, _) => {\n  const as = (out, index) => {\n    $.set(index, out);\n    return out;\n  };\n\n  const unpair = index => {\n    if ($.has(index))\n      return $.get(index);\n\n    const [type, value] = _[index];\n    switch (type) {\n      case PRIMITIVE:\n      case VOID:\n        return as(value, index);\n      case ARRAY: {\n        const arr = as([], index);\n        for (const index of value)\n          arr.push(unpair(index));\n        return arr;\n      }\n      case OBJECT: {\n        const object = as({}, index);\n        for (const [key, index] of value)\n          object[unpair(key)] = unpair(index);\n        return object;\n      }\n      case DATE:\n        return as(new Date(value), index);\n      case REGEXP: {\n        const {source, flags} = value;\n        return as(new RegExp(source, flags), index);\n      }\n      case MAP: {\n        const map = as(new Map, index);\n        for (const [key, index] of value)\n          map.set(unpair(key), unpair(index));\n        return map;\n      }\n      case SET: {\n        const set = as(new Set, index);\n        for (const index of value)\n          set.add(unpair(index));\n        return set;\n      }\n      case ERROR: {\n        const {name, message} = value;\n        return as(new env[name](message), index);\n      }\n      case BIGINT:\n        return as(BigInt(value), index);\n      case 'BigInt':\n        return as(Object(BigInt(value)), index);\n    }\n    return as(new env[type](value), index);\n  };\n\n  return unpair;\n};\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns a deserialized value from a serialized array of Records.\n * @param {Record[]} serialized a previously serialized value.\n * @returns {any}\n */\nexport const deserialize = serialized => deserializer(new Map, serialized)(0);\n","import {\n  VOID, PRIMITIVE,\n  ARRAY, OBJECT,\n  DATE, REGEXP, MAP, SET,\n  ERROR, BIGINT\n} from './types.js';\n\nconst EMPTY = '';\n\nconst {toString} = {};\nconst {keys} = Object;\n\nconst typeOf = value => {\n  const type = typeof value;\n  if (type !== 'object' || !value)\n    return [PRIMITIVE, type];\n\n  const asString = toString.call(value).slice(8, -1);\n  switch (asString) {\n    case 'Array':\n      return [ARRAY, EMPTY];\n    case 'Object':\n      return [OBJECT, EMPTY];\n    case 'Date':\n      return [DATE, EMPTY];\n    case 'RegExp':\n      return [REGEXP, EMPTY];\n    case 'Map':\n      return [MAP, EMPTY];\n    case 'Set':\n      return [SET, EMPTY];\n  }\n\n  if (asString.includes('Array'))\n    return [ARRAY, asString];\n\n  if (asString.includes('Error'))\n    return [ERROR, asString];\n\n  return [OBJECT, asString];\n};\n\nconst shouldSkip = ([TYPE, type]) => (\n  TYPE === PRIMITIVE &&\n  (type === 'function' || type === 'symbol')\n);\n\nconst serializer = (strict, json, $, _) => {\n\n  const as = (out, value) => {\n    const index = _.push(out) - 1;\n    $.set(value, index);\n    return index;\n  };\n\n  const pair = value => {\n    if ($.has(value))\n      return $.get(value);\n\n    let [TYPE, type] = typeOf(value);\n    switch (TYPE) {\n      case PRIMITIVE: {\n        let entry = value;\n        switch (type) {\n          case 'bigint':\n            TYPE = BIGINT;\n            entry = value.toString();\n            break;\n          case 'function':\n          case 'symbol':\n            if (strict)\n              throw new TypeError('unable to serialize ' + type);\n            entry = null;\n            break;\n          case 'undefined':\n            return as([VOID], value);\n        }\n        return as([TYPE, entry], value);\n      }\n      case ARRAY: {\n        if (type)\n          return as([type, [...value]], value);\n  \n        const arr = [];\n        const index = as([TYPE, arr], value);\n        for (const entry of value)\n          arr.push(pair(entry));\n        return index;\n      }\n      case OBJECT: {\n        if (type) {\n          switch (type) {\n            case 'BigInt':\n              return as([type, value.toString()], value);\n            case 'Boolean':\n            case 'Number':\n            case 'String':\n              return as([type, value.valueOf()], value);\n          }\n        }\n\n        if (json && ('toJSON' in value))\n          return pair(value.toJSON());\n\n        const entries = [];\n        const index = as([TYPE, entries], value);\n        for (const key of keys(value)) {\n          if (strict || !shouldSkip(typeOf(value[key])))\n            entries.push([pair(key), pair(value[key])]);\n        }\n        return index;\n      }\n      case DATE:\n        return as([TYPE, value.toISOString()], value);\n      case REGEXP: {\n        const {source, flags} = value;\n        return as([TYPE, {source, flags}], value);\n      }\n      case MAP: {\n        const entries = [];\n        const index = as([TYPE, entries], value);\n        for (const [key, entry] of value) {\n          if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry))))\n            entries.push([pair(key), pair(entry)]);\n        }\n        return index;\n      }\n      case SET: {\n        const entries = [];\n        const index = as([TYPE, entries], value);\n        for (const entry of value) {\n          if (strict || !shouldSkip(typeOf(entry)))\n            entries.push(pair(entry));\n        }\n        return index;\n      }\n    }\n\n    const {message} = value;\n    return as([TYPE, {name: type, message}], value);\n  };\n\n  return pair;\n};\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} value a serializable value.\n * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that,\n *  if `true`, will not throw errors on incompatible types, and behave more\n *  like JSON stringify would behave. Symbol and Function will be discarded.\n * @returns {Record[]}\n */\n export const serialize = (value, {json, lossy} = {}) => {\n  const _ = [];\n  return serializer(!(json || lossy), !!json, new Map, _)(value), _;\n};\n","import {deserialize} from './deserialize.js';\nimport {serialize} from './serialize.js';\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} any a serializable value.\n * @param {{transfer?: any[], json?: boolean, lossy?: boolean}?} options an object with\n * a transfer option (ignored when polyfilled) and/or non standard fields that\n * fallback to the polyfill if present.\n * @returns {Record[]}\n */\nexport default typeof structuredClone === \"function\" ?\n  /* c8 ignore start */\n  (any, options) => (\n    options && ('json' in options || 'lossy' in options) ?\n      deserialize(serialize(any, options)) : structuredClone(any)\n  ) :\n  (any, options) => deserialize(serialize(any, options));\n  /* c8 ignore stop */\n\nexport {deserialize, serialize};\n","import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | null | undefined} url\n *   URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n *   Allowed protocols.\n * @returns {string}\n *   Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n  const value = encode(normalizeUri(url || ''))\n  if (!protocol) {\n    return value\n  }\n  const colon = value.indexOf(':')\n  const questionMark = value.indexOf('?')\n  const numberSign = value.indexOf('#')\n  const slash = value.indexOf('/')\n  if (\n    // If there is no protocol, it’s relative.\n    colon < 0 ||\n    // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n    (slash > -1 && colon > slash) ||\n    (questionMark > -1 && colon > questionMark) ||\n    (numberSign > -1 && colon > numberSign) ||\n    // It is a protocol, it should be allowed.\n    protocol.test(value.slice(0, colon))\n  ) {\n    return value\n  }\n  return ''\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n *   URI to normalize.\n * @returns {string}\n *   Normalized URI.\n */\nexport function normalizeUri(value) {\n  /** @type {Array<string>} */\n  const result = []\n  let index = -1\n  let start = 0\n  let skip = 0\n  while (++index < value.length) {\n    const code = value.charCodeAt(index)\n    /** @type {string} */\n    let replace = ''\n\n    // A correct percent encoded value.\n    if (\n      code === 37 &&\n      asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n      asciiAlphanumeric(value.charCodeAt(index + 2))\n    ) {\n      skip = 2\n    }\n    // ASCII.\n    else if (code < 128) {\n      if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n        replace = String.fromCharCode(code)\n      }\n    }\n    // Astral.\n    else if (code > 55_295 && code < 57_344) {\n      const next = value.charCodeAt(index + 1)\n\n      // A correct surrogate pair.\n      if (code < 56_320 && next > 56_319 && next < 57_344) {\n        replace = String.fromCharCode(code, next)\n        skip = 1\n      }\n      // Lone surrogate.\n      else {\n        replace = '\\uFFFD'\n      }\n    }\n    // Unicode.\n    else {\n      replace = String.fromCharCode(code)\n    }\n    if (replace) {\n      result.push(value.slice(start, index), encodeURIComponent(replace))\n      start = index + skip + 1\n      replace = ''\n    }\n    if (skip) {\n      index += skip\n      skip = 0\n    }\n  }\n  return result.join('') + value.slice(start)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n *   Generate content for the backreference dynamically.\n *\n *   For the following markdown:\n *\n *   ```markdown\n *   Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n *   [^remark]: things about remark\n *   [^micromark]: things about micromark\n *   ```\n *\n *   This function will be called with:\n *\n *   *  `0` and `0` for the backreference from `things about micromark` to\n *      `alpha`, as it is the first used definition, and the first call to it\n *   *  `0` and `1` for the backreference from `things about micromark` to\n *      `bravo`, as it is the first used definition, and the second call to it\n *   *  `1` and `0` for the backreference from `things about remark` to\n *      `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {Array<ElementContent> | ElementContent | string}\n *   Content for the backreference when linking back from definitions to their\n *   reference.\n *\n * @callback FootnoteBackLabelTemplate\n *   Generate a back label dynamically.\n *\n *   For the following markdown:\n *\n *   ```markdown\n *   Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n *   [^remark]: things about remark\n *   [^micromark]: things about micromark\n *   ```\n *\n *   This function will be called with:\n *\n *   *  `0` and `0` for the backreference from `things about micromark` to\n *      `alpha`, as it is the first used definition, and the first call to it\n *   *  `0` and `1` for the backreference from `things about micromark` to\n *      `bravo`, as it is the first used definition, and the second call to it\n *   *  `1` and `0` for the backreference from `things about remark` to\n *      `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {string}\n *   Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {Array<ElementContent>}\n *   Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n  /** @type {Array<ElementContent>} */\n  const result = [{type: 'text', value: '↩'}]\n\n  if (rereferenceIndex > 1) {\n    result.push({\n      type: 'element',\n      tagName: 'sup',\n      properties: {},\n      children: [{type: 'text', value: String(rereferenceIndex)}]\n    })\n  }\n\n  return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {string}\n *   Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n  return (\n    'Back to reference ' +\n    (referenceIndex + 1) +\n    (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n  )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n *   Info passed around.\n * @returns {Element | undefined}\n *   `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const footnoteBackContent =\n    state.options.footnoteBackContent || defaultFootnoteBackContent\n  const footnoteBackLabel =\n    state.options.footnoteBackLabel || defaultFootnoteBackLabel\n  const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n  const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n  const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n    className: ['sr-only']\n  }\n  /** @type {Array<ElementContent>} */\n  const listItems = []\n  let referenceIndex = -1\n\n  while (++referenceIndex < state.footnoteOrder.length) {\n    const definition = state.footnoteById.get(\n      state.footnoteOrder[referenceIndex]\n    )\n\n    if (!definition) {\n      continue\n    }\n\n    const content = state.all(definition)\n    const id = String(definition.identifier).toUpperCase()\n    const safeId = normalizeUri(id.toLowerCase())\n    let rereferenceIndex = 0\n    /** @type {Array<ElementContent>} */\n    const backReferences = []\n    const counts = state.footnoteCounts.get(id)\n\n    // eslint-disable-next-line no-unmodified-loop-condition\n    while (counts !== undefined && ++rereferenceIndex <= counts) {\n      if (backReferences.length > 0) {\n        backReferences.push({type: 'text', value: ' '})\n      }\n\n      let children =\n        typeof footnoteBackContent === 'string'\n          ? footnoteBackContent\n          : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n      if (typeof children === 'string') {\n        children = {type: 'text', value: children}\n      }\n\n      backReferences.push({\n        type: 'element',\n        tagName: 'a',\n        properties: {\n          href:\n            '#' +\n            clobberPrefix +\n            'fnref-' +\n            safeId +\n            (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n          dataFootnoteBackref: '',\n          ariaLabel:\n            typeof footnoteBackLabel === 'string'\n              ? footnoteBackLabel\n              : footnoteBackLabel(referenceIndex, rereferenceIndex),\n          className: ['data-footnote-backref']\n        },\n        children: Array.isArray(children) ? children : [children]\n      })\n    }\n\n    const tail = content[content.length - 1]\n\n    if (tail && tail.type === 'element' && tail.tagName === 'p') {\n      const tailTail = tail.children[tail.children.length - 1]\n      if (tailTail && tailTail.type === 'text') {\n        tailTail.value += ' '\n      } else {\n        tail.children.push({type: 'text', value: ' '})\n      }\n\n      tail.children.push(...backReferences)\n    } else {\n      content.push(...backReferences)\n    }\n\n    /** @type {Element} */\n    const listItem = {\n      type: 'element',\n      tagName: 'li',\n      properties: {id: clobberPrefix + 'fn-' + safeId},\n      children: state.wrap(content, true)\n    }\n\n    state.patch(definition, listItem)\n\n    listItems.push(listItem)\n  }\n\n  if (listItems.length === 0) {\n    return\n  }\n\n  return {\n    type: 'element',\n    tagName: 'section',\n    properties: {dataFootnotes: true, className: ['footnotes']},\n    children: [\n      {\n        type: 'element',\n        tagName: footnoteLabelTagName,\n        properties: {\n          ...structuredClone(footnoteLabelProperties),\n          id: 'footnote-label'\n        },\n        children: [{type: 'text', value: footnoteLabel}]\n      },\n      {type: 'text', value: '\\n'},\n      {\n        type: 'element',\n        tagName: 'ol',\n        properties: {},\n        children: state.wrap(listItems, true)\n      },\n      {type: 'text', value: '\\n'}\n    ]\n  }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n *   Check that an arbitrary value is a node.\n * @param {unknown} this\n *   The given context.\n * @param {unknown} [node]\n *   Anything (typically a node).\n * @param {number | null | undefined} [index]\n *   The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n *   The node’s parent.\n * @returns {boolean}\n *   Whether this is a node and passes a test.\n *\n * @typedef {Record<string, unknown> | Node} Props\n *   Object to check for equivalence.\n *\n *   Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array<Props | TestFunction | string> | Props | TestFunction | string | null | undefined} Test\n *   Check for an arbitrary node.\n *\n * @callback TestFunction\n *   Check if a node passes a test.\n * @param {unknown} this\n *   The given context.\n * @param {Node} node\n *   A node.\n * @param {number | undefined} [index]\n *   The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n *   The node’s parent.\n * @returns {boolean | undefined | void}\n *   Whether this node passes the test.\n *\n *   Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n *   Thing to check, typically `Node`.\n * @param {Test} test\n *   A check for a specific node.\n * @param {number | null | undefined} index\n *   The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n *   The node’s parent.\n * @param {unknown} context\n *   Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n *   Whether `node` is a node and passes a test.\n */\nexport const is =\n  // Note: overloads in JSDoc can’t yet use different `@template`s.\n  /**\n   * @type {(\n   *   (<Condition extends string>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n   *   (<Condition extends Props>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n   *   (<Condition extends TestFunction>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n   *   ((node?: null | undefined) => false) &\n   *   ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n   *   ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n   * )}\n   */\n  (\n    /**\n     * @param {unknown} [node]\n     * @param {Test} [test]\n     * @param {number | null | undefined} [index]\n     * @param {Parent | null | undefined} [parent]\n     * @param {unknown} [context]\n     * @returns {boolean}\n     */\n    // eslint-disable-next-line max-params\n    function (node, test, index, parent, context) {\n      const check = convert(test)\n\n      if (\n        index !== undefined &&\n        index !== null &&\n        (typeof index !== 'number' ||\n          index < 0 ||\n          index === Number.POSITIVE_INFINITY)\n      ) {\n        throw new Error('Expected positive finite index')\n      }\n\n      if (\n        parent !== undefined &&\n        parent !== null &&\n        (!is(parent) || !parent.children)\n      ) {\n        throw new Error('Expected parent node')\n      }\n\n      if (\n        (parent === undefined || parent === null) !==\n        (index === undefined || index === null)\n      ) {\n        throw new Error('Expected both parent and index')\n      }\n\n      return looksLikeANode(node)\n        ? check.call(context, node, index, parent)\n        : false\n    }\n  )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n *   *   when nullish, checks if `node` is a `Node`.\n *   *   when `string`, works like passing `(node) => node.type === test`.\n *   *   when `function` checks if function passed the node is true.\n *   *   when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n *   *   when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n *   An assertion.\n */\nexport const convert =\n  // Note: overloads in JSDoc can’t yet use different `@template`s.\n  /**\n   * @type {(\n   *   (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n   *   (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n   *   (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n   *   ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n   *   ((test?: Test) => Check)\n   * )}\n   */\n  (\n    /**\n     * @param {Test} [test]\n     * @returns {Check}\n     */\n    function (test) {\n      if (test === null || test === undefined) {\n        return ok\n      }\n\n      if (typeof test === 'function') {\n        return castFactory(test)\n      }\n\n      if (typeof test === 'object') {\n        return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n      }\n\n      if (typeof test === 'string') {\n        return typeFactory(test)\n      }\n\n      throw new Error('Expected function, string, or object as test')\n    }\n  )\n\n/**\n * @param {Array<Props | TestFunction | string>} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n  /** @type {Array<Check>} */\n  const checks = []\n  let index = -1\n\n  while (++index < tests.length) {\n    checks[index] = convert(tests[index])\n  }\n\n  return castFactory(any)\n\n  /**\n   * @this {unknown}\n   * @type {TestFunction}\n   */\n  function any(...parameters) {\n    let index = -1\n\n    while (++index < checks.length) {\n      if (checks[index].apply(this, parameters)) return true\n    }\n\n    return false\n  }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propsFactory(check) {\n  const checkAsRecord = /** @type {Record<string, unknown>} */ (check)\n\n  return castFactory(all)\n\n  /**\n   * @param {Node} node\n   * @returns {boolean}\n   */\n  function all(node) {\n    const nodeAsRecord = /** @type {Record<string, unknown>} */ (\n      /** @type {unknown} */ (node)\n    )\n\n    /** @type {string} */\n    let key\n\n    for (key in check) {\n      if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n    }\n\n    return true\n  }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n  return castFactory(type)\n\n  /**\n   * @param {Node} node\n   */\n  function type(node) {\n    return node && node.type === check\n  }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n  return check\n\n  /**\n   * @this {unknown}\n   * @type {Check}\n   */\n  function check(value, index, parent) {\n    return Boolean(\n      looksLikeANode(value) &&\n        testFunction.call(\n          this,\n          value,\n          typeof index === 'number' ? index : undefined,\n          parent || undefined\n        )\n    )\n  }\n}\n\nfunction ok() {\n  return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n  return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n *   Test from `unist-util-is`.\n *\n *   Note: we have remove and add `undefined`, because otherwise when generating\n *   automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n *   which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n *   Fn extends (value: any) => value is infer Thing\n *   ? Thing\n *   : Fallback\n * )} Predicate\n *   Get the value of a type guard `Fn`.\n * @template Fn\n *   Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n *   Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n *   Check extends null | undefined // No test.\n *   ? Value\n *   : Value extends {type: Check} // String (type) test.\n *   ? Value\n *   : Value extends Check // Partial test.\n *   ? Value\n *   : Check extends Function // Function test.\n *   ? Predicate<Check, Value> extends Value\n *     ? Predicate<Check, Value>\n *     : never\n *   : never // Some other test?\n * )} MatchesOne\n *   Check whether a node matches a primitive check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n *   Check extends Array<any>\n *   ? MatchesOne<Value, Check[keyof Check]>\n *   : MatchesOne<Value, Check>\n * )} Matches\n *   Check whether a node matches a check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n *   Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n *   Increment a number in the type system.\n * @template {Uint} [I=0]\n *   Index.\n */\n\n/**\n * @typedef {(\n *   Node extends UnistParent\n *   ? Node extends {children: Array<infer Children>}\n *     ? Child extends Children ? Node : never\n *     : never\n *   : never\n * )} InternalParent\n *   Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n *   Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {(\n *   Depth extends Max\n *   ? never\n *   :\n *     | InternalParent<Node, Child>\n *     | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n *   Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @typedef {InternalAncestor<InclusiveDescendant<Tree>, Child>} Ancestor\n *   Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {(\n *   Tree extends UnistParent\n *     ? Depth extends Max\n *       ? Tree\n *       : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n *     : Tree\n * )} InclusiveDescendant\n *   Collect all (inclusive) descendants of `Tree`.\n *\n *   > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n *   > recurse without actually running into an infinite loop, which the\n *   > previous version did.\n *   >\n *   > Practically, a max of `2` is typically enough assuming a `Root` is\n *   > passed, but it doesn’t improve performance.\n *   > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n *   > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n *   Tree type.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n *   Union of the action types.\n *\n * @typedef {number} Index\n *   Move to the sibling at `index` next (after node itself is completely\n *   traversed).\n *\n *   Useful if mutating the tree, such as removing the node the visitor is\n *   currently on, or any of its previous siblings.\n *   Results less than 0 or greater than or equal to `children.length` stop\n *   traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n *   List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n *   Any value that can be returned from a visitor.\n */\n\n/**\n * @callback Visitor\n *   Handle a node (matching `test`, if given).\n *\n *   Visitors are free to transform `node`.\n *   They can also transform the parent of node (the last of `ancestors`).\n *\n *   Replacing `node` itself, if `SKIP` is not returned, still causes its\n *   descendants to be walked (which is a bug).\n *\n *   When adding or removing previous siblings of `node` (or next siblings, in\n *   case of reverse), the `Visitor` should return a new `Index` to specify the\n *   sibling to traverse after `node` is traversed.\n *   Adding or removing next siblings of `node` (or previous siblings, in case\n *   of reverse) is handled as expected without needing to return a new `Index`.\n *\n *   Removing the children property of an ancestor still results in them being\n *   traversed.\n * @param {Visited} node\n *   Found node.\n * @param {Array<VisitedParents>} ancestors\n *   Ancestors of `node`.\n * @returns {VisitorResult}\n *   What to do next.\n *\n *   An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n *   An `Action` is treated as a tuple of `[Action]`.\n *\n *   Passing a tuple back only makes sense if the `Action` is `SKIP`.\n *   When the `Action` is `EXIT`, that action can be returned.\n *   When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n *   Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n *   Ancestor type.\n */\n\n/**\n * @typedef {Visitor<Matches<InclusiveDescendant<Tree>, Check>, Ancestor<Tree, Matches<InclusiveDescendant<Tree>, Check>>>} BuildVisitor\n *   Build a typed `Visitor` function from a tree and a test.\n *\n *   It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n *   Tree type.\n * @template {Test} [Check=Test]\n *   Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly<ActionTuple>} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n *   Tree to traverse.\n * @param {Visitor | Test} test\n *   `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n *   Handle each node.\n * @param {boolean | null | undefined} [reverse]\n *   Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n *   Nothing.\n *\n * @template {UnistNode} Tree\n *   Node type.\n * @template {Test} Check\n *   `unist-util-is`-compatible test.\n */\nexport function visitParents(tree, test, visitor, reverse) {\n  /** @type {Test} */\n  let check\n\n  if (typeof test === 'function' && typeof visitor !== 'function') {\n    reverse = visitor\n    // @ts-expect-error no visitor given, so `visitor` is test.\n    visitor = test\n  } else {\n    // @ts-expect-error visitor given, so `test` isn’t a visitor.\n    check = test\n  }\n\n  const is = convert(check)\n  const step = reverse ? -1 : 1\n\n  factory(tree, undefined, [])()\n\n  /**\n   * @param {UnistNode} node\n   * @param {number | undefined} index\n   * @param {Array<UnistParent>} parents\n   */\n  function factory(node, index, parents) {\n    const value = /** @type {Record<string, unknown>} */ (\n      node && typeof node === 'object' ? node : {}\n    )\n\n    if (typeof value.type === 'string') {\n      const name =\n        // `hast`\n        typeof value.tagName === 'string'\n          ? value.tagName\n          : // `xast`\n          typeof value.name === 'string'\n          ? value.name\n          : undefined\n\n      Object.defineProperty(visit, 'name', {\n        value:\n          'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n      })\n    }\n\n    return visit\n\n    function visit() {\n      /** @type {Readonly<ActionTuple>} */\n      let result = empty\n      /** @type {Readonly<ActionTuple>} */\n      let subresult\n      /** @type {number} */\n      let offset\n      /** @type {Array<UnistParent>} */\n      let grandparents\n\n      if (!test || is(node, index, parents[parents.length - 1] || undefined)) {\n        // @ts-expect-error: `visitor` is now a visitor.\n        result = toResult(visitor(node, parents))\n\n        if (result[0] === EXIT) {\n          return result\n        }\n      }\n\n      if ('children' in node && node.children) {\n        const nodeAsParent = /** @type {UnistParent} */ (node)\n\n        if (nodeAsParent.children && result[0] !== SKIP) {\n          offset = (reverse ? nodeAsParent.children.length : -1) + step\n          grandparents = parents.concat(nodeAsParent)\n\n          while (offset > -1 && offset < nodeAsParent.children.length) {\n            const child = nodeAsParent.children[offset]\n\n            subresult = factory(child, offset, grandparents)()\n\n            if (subresult[0] === EXIT) {\n              return subresult\n            }\n\n            offset =\n              typeof subresult[1] === 'number' ? subresult[1] : offset + step\n          }\n        }\n      }\n\n      return result\n    }\n  }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n *   Valid return values from visitors.\n * @returns {Readonly<ActionTuple>}\n *   Clean result.\n */\nfunction toResult(value) {\n  if (Array.isArray(value)) {\n    return value\n  }\n\n  if (typeof value === 'number') {\n    return [CONTINUE, value]\n  }\n\n  return value === null || value === undefined ? empty : [value]\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n *   Test from `unist-util-is`.\n *\n *   Note: we have remove and add `undefined`, because otherwise when generating\n *   automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n *   which doesn’t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it’s released.\n\n/**\n * @typedef {(\n *   Fn extends (value: any) => value is infer Thing\n *   ? Thing\n *   : Fallback\n * )} Predicate\n *   Get the value of a type guard `Fn`.\n * @template Fn\n *   Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n *   Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n *   Check extends null | undefined // No test.\n *   ? Value\n *   : Value extends {type: Check} // String (type) test.\n *   ? Value\n *   : Value extends Check // Partial test.\n *   ? Value\n *   : Check extends Function // Function test.\n *   ? Predicate<Check, Value> extends Value\n *     ? Predicate<Check, Value>\n *     : never\n *   : never // Some other test?\n * )} MatchesOne\n *   Check whether a node matches a primitive check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n *   Check extends Array<any>\n *   ? MatchesOne<Value, Check[keyof Check]>\n *   : MatchesOne<Value, Check>\n * )} Matches\n *   Check whether a node matches a check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n *   Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n *   Increment a number in the type system.\n * @template {Uint} [I=0]\n *   Index.\n */\n\n/**\n * @typedef {(\n *   Node extends UnistParent\n *   ? Node extends {children: Array<infer Children>}\n *     ? Child extends Children ? Node : never\n *     : never\n *   : never\n * )} InternalParent\n *   Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n *   Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {(\n *   Depth extends Max\n *   ? never\n *   :\n *     | InternalParent<Node, Child>\n *     | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n *   Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @typedef {(\n *   Tree extends UnistParent\n *     ? Depth extends Max\n *       ? Tree\n *       : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n *     : Tree\n * )} InclusiveDescendant\n *   Collect all (inclusive) descendants of `Tree`.\n *\n *   > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n *   > recurse without actually running into an infinite loop, which the\n *   > previous version did.\n *   >\n *   > Practically, a max of `2` is typically enough assuming a `Root` is\n *   > passed, but it doesn’t improve performance.\n *   > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n *   > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n *   Tree type.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @callback Visitor\n *   Handle a node (matching `test`, if given).\n *\n *   Visitors are free to transform `node`.\n *   They can also transform `parent`.\n *\n *   Replacing `node` itself, if `SKIP` is not returned, still causes its\n *   descendants to be walked (which is a bug).\n *\n *   When adding or removing previous siblings of `node` (or next siblings, in\n *   case of reverse), the `Visitor` should return a new `Index` to specify the\n *   sibling to traverse after `node` is traversed.\n *   Adding or removing next siblings of `node` (or previous siblings, in case\n *   of reverse) is handled as expected without needing to return a new `Index`.\n *\n *   Removing the children property of `parent` still results in them being\n *   traversed.\n * @param {Visited} node\n *   Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n *   Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n *   Parent of `node`.\n * @returns {VisitorResult}\n *   What to do next.\n *\n *   An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n *   An `Action` is treated as a tuple of `[Action]`.\n *\n *   Passing a tuple back only makes sense if the `Action` is `SKIP`.\n *   When the `Action` is `EXIT`, that action can be returned.\n *   When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n *   Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n *   Ancestor type.\n */\n\n/**\n * @typedef {Visitor<Visited, Parent<Ancestor, Visited>>} BuildVisitorFromMatch\n *   Build a typed `Visitor` function from a node and all possible parents.\n *\n *   It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n *   Node type.\n * @template {UnistParent} Ancestor\n *   Parent type.\n */\n\n/**\n * @typedef {(\n *   BuildVisitorFromMatch<\n *     Matches<Descendant, Check>,\n *     Extract<Descendant, UnistParent>\n *   >\n * )} BuildVisitorFromDescendants\n *   Build a typed `Visitor` function from a list of descendants and a test.\n *\n *   It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n *   Node type.\n * @template {Test} Check\n *   Test type.\n */\n\n/**\n * @typedef {(\n *   BuildVisitorFromDescendants<\n *     InclusiveDescendant<Tree>,\n *     Check\n *   >\n * )} BuildVisitor\n *   Build a typed `Visitor` function from a tree and a test.\n *\n *   It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n *   Node type.\n * @template {Test} [Check=Test]\n *   Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n *   Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n *   `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n *   Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n *   Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n *   Nothing.\n *\n * @template {UnistNode} Tree\n *   Node type.\n * @template {Test} Check\n *   `unist-util-is`-compatible test.\n */\nexport function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n  /** @type {boolean | null | undefined} */\n  let reverse\n  /** @type {Test} */\n  let test\n  /** @type {Visitor} */\n  let visitor\n\n  if (\n    typeof testOrVisitor === 'function' &&\n    typeof visitorOrReverse !== 'function'\n  ) {\n    test = undefined\n    visitor = testOrVisitor\n    reverse = visitorOrReverse\n  } else {\n    // @ts-expect-error: assume the overload with test was given.\n    test = testOrVisitor\n    // @ts-expect-error: assume the overload with test was given.\n    visitor = visitorOrReverse\n    reverse = maybeReverse\n  }\n\n  visitParents(tree, test, overload, reverse)\n\n  /**\n   * @param {UnistNode} node\n   * @param {Array<UnistParent>} parents\n   */\n  function overload(node, parents) {\n    const parent = parents[parents.length - 1]\n    const index = parent ? parent.children.indexOf(node) : undefined\n    return visitor(node, index, parent)\n  }\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Reference} Reference\n *\n * @typedef {import('./state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Extract<Nodes, Reference>} node\n *   Reference node (image, link).\n * @returns {Array<ElementContent>}\n *   hast content.\n */\nexport function revert(state, node) {\n  const subtype = node.referenceType\n  let suffix = ']'\n\n  if (subtype === 'collapsed') {\n    suffix += '[]'\n  } else if (subtype === 'full') {\n    suffix += '[' + (node.label || node.identifier) + ']'\n  }\n\n  if (node.type === 'imageReference') {\n    return [{type: 'text', value: '![' + node.alt + suffix}]\n  }\n\n  const contents = state.all(node)\n  const head = contents[0]\n\n  if (head && head.type === 'text') {\n    head.value = '[' + head.value\n  } else {\n    contents.unshift({type: 'text', value: '['})\n  }\n\n  const tail = contents[contents.length - 1]\n\n  if (tail && tail.type === 'text') {\n    tail.value += suffix\n  } else {\n    contents.push({type: 'text', value: suffix})\n  }\n\n  return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ListItem} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function listItem(state, node, parent) {\n  const results = state.all(node)\n  const loose = parent ? listLoose(parent) : listItemLoose(node)\n  /** @type {Properties} */\n  const properties = {}\n  /** @type {Array<ElementContent>} */\n  const children = []\n\n  if (typeof node.checked === 'boolean') {\n    const head = results[0]\n    /** @type {Element} */\n    let paragraph\n\n    if (head && head.type === 'element' && head.tagName === 'p') {\n      paragraph = head\n    } else {\n      paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n      results.unshift(paragraph)\n    }\n\n    if (paragraph.children.length > 0) {\n      paragraph.children.unshift({type: 'text', value: ' '})\n    }\n\n    paragraph.children.unshift({\n      type: 'element',\n      tagName: 'input',\n      properties: {type: 'checkbox', checked: node.checked, disabled: true},\n      children: []\n    })\n\n    // According to github-markdown-css, this class hides bullet.\n    // See: <https://github.com/sindresorhus/github-markdown-css>.\n    properties.className = ['task-list-item']\n  }\n\n  let index = -1\n\n  while (++index < results.length) {\n    const child = results[index]\n\n    // Add eols before nodes, except if this is a loose, first paragraph.\n    if (\n      loose ||\n      index !== 0 ||\n      child.type !== 'element' ||\n      child.tagName !== 'p'\n    ) {\n      children.push({type: 'text', value: '\\n'})\n    }\n\n    if (child.type === 'element' && child.tagName === 'p' && !loose) {\n      children.push(...child.children)\n    } else {\n      children.push(child)\n    }\n  }\n\n  const tail = results[results.length - 1]\n\n  // Add a final eol.\n  if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n    children.push({type: 'text', value: '\\n'})\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'li', properties, children}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n  let loose = false\n  if (node.type === 'list') {\n    loose = node.spread || false\n    const children = node.children\n    let index = -1\n\n    while (!loose && ++index < children.length) {\n      loose = listItemLoose(children[index])\n    }\n  }\n\n  return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n  const spread = node.spread\n\n  return spread === null || spread === undefined\n    ? node.children.length > 1\n    : spread\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n *   Value to trim.\n * @returns {string}\n *   Trimmed value.\n */\nexport function trimLines(value) {\n  const source = String(value)\n  const search = /\\r?\\n|\\r/g\n  let match = search.exec(source)\n  let last = 0\n  /** @type {Array<string>} */\n  const lines = []\n\n  while (match) {\n    lines.push(\n      trimLine(source.slice(last, match.index), last > 0, true),\n      match[0]\n    )\n\n    last = match.index + match[0].length\n    match = search.exec(source)\n  }\n\n  lines.push(trimLine(source.slice(last), last > 0, false))\n\n  return lines.join('')\n}\n\n/**\n * @param {string} value\n *   Line to trim.\n * @param {boolean} start\n *   Whether to trim the start of the line.\n * @param {boolean} end\n *   Whether to trim the end of the line.\n * @returns {string}\n *   Trimmed line.\n */\nfunction trimLine(value, start, end) {\n  let startIndex = 0\n  let endIndex = value.length\n\n  if (start) {\n    let code = value.codePointAt(startIndex)\n\n    while (code === tab || code === space) {\n      startIndex++\n      code = value.codePointAt(startIndex)\n    }\n  }\n\n  if (end) {\n    let code = value.codePointAt(endIndex - 1)\n\n    while (code === tab || code === space) {\n      endIndex--\n      code = value.codePointAt(endIndex - 1)\n    }\n  }\n\n  return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {import('../state.js').Handlers}\n */\nexport const handlers = {\n  blockquote,\n  break: hardBreak,\n  code,\n  delete: strikethrough,\n  emphasis,\n  footnoteReference,\n  heading,\n  html,\n  imageReference,\n  image,\n  inlineCode,\n  linkReference,\n  link,\n  listItem,\n  list,\n  paragraph,\n  // @ts-expect-error: root is different, but hard to type.\n  root,\n  strong,\n  table,\n  tableCell,\n  tableRow,\n  text,\n  thematicBreak,\n  toml: ignore,\n  yaml: ignore,\n  definition: ignore,\n  footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n  return undefined\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Blockquote} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function blockquote(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'blockquote',\n    properties: {},\n    children: state.wrap(state.all(node), true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Break} node\n *   mdast node.\n * @returns {Array<Element | Text>}\n *   hast element content.\n */\nexport function hardBreak(state, node) {\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n  state.patch(node, result)\n  return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Code} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function code(state, node) {\n  const value = node.value ? node.value + '\\n' : ''\n  /** @type {Properties} */\n  const properties = {}\n\n  if (node.lang) {\n    properties.className = ['language-' + node.lang]\n  }\n\n  // Create `<code>`.\n  /** @type {Element} */\n  let result = {\n    type: 'element',\n    tagName: 'code',\n    properties,\n    children: [{type: 'text', value}]\n  }\n\n  if (node.meta) {\n    result.data = {meta: node.meta}\n  }\n\n  state.patch(node, result)\n  result = state.applyData(node, result)\n\n  // Create `<pre>`.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {FootnoteReference} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnoteReference(state, node) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const id = String(node.identifier).toUpperCase()\n  const safeId = normalizeUri(id.toLowerCase())\n  const index = state.footnoteOrder.indexOf(id)\n  /** @type {number} */\n  let counter\n\n  let reuseCounter = state.footnoteCounts.get(id)\n\n  if (reuseCounter === undefined) {\n    reuseCounter = 0\n    state.footnoteOrder.push(id)\n    counter = state.footnoteOrder.length\n  } else {\n    counter = index + 1\n  }\n\n  reuseCounter += 1\n  state.footnoteCounts.set(id, reuseCounter)\n\n  /** @type {Element} */\n  const link = {\n    type: 'element',\n    tagName: 'a',\n    properties: {\n      href: '#' + clobberPrefix + 'fn-' + safeId,\n      id:\n        clobberPrefix +\n        'fnref-' +\n        safeId +\n        (reuseCounter > 1 ? '-' + reuseCounter : ''),\n      dataFootnoteRef: true,\n      ariaDescribedBy: ['footnote-label']\n    },\n    children: [{type: 'text', value: String(counter)}]\n  }\n  state.patch(node, link)\n\n  /** @type {Element} */\n  const sup = {\n    type: 'element',\n    tagName: 'sup',\n    properties: {},\n    children: [link]\n  }\n  state.patch(node, sup)\n  return state.applyData(node, sup)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Html} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Element | Raw | undefined}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.options.allowDangerousHtml) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  return undefined\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {Array<ElementContent> | ElementContent}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(definition.url || ''), alt: node.alt}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {Array<ElementContent> | ElementContent}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(definition.url || '')}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Parents} HastParents\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastParents}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointEnd, pointStart} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array<Element>} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start && end) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  // To do: option to use `style`?\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array<ElementContent>} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(cell, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastElement | HastText}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').RootContent} HastRootContent\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('mdast').Parents} MdastParents\n *\n * @typedef {import('vfile').VFile} VFile\n *\n * @typedef {import('./footer.js').FootnoteBackContentTemplate} FootnoteBackContentTemplate\n * @typedef {import('./footer.js').FootnoteBackLabelTemplate} FootnoteBackLabelTemplate\n */\n\n/**\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | undefined} parent\n *   Parent of `node`.\n * @returns {Array<HastElementContent> | HastElementContent | undefined}\n *   hast node.\n *\n * @typedef {Partial<Record<MdastNodes['type'], Handler>>} Handlers\n *   Handle nodes.\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree (default:\n *   `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` property on footnotes to prevent them from\n *   *clobbering* (default: `'user-content-'`).\n *\n *   Pass `''` for trusted markdown and when you are careful with\n *   polyfilling.\n *   You could pass a different prefix.\n *\n *   DOM clobbering is this:\n *\n *   ```html\n *   <p id=\"x\"></p>\n *   <script>alert(x) // `x` now refers to the `p#x` DOM element</script>\n *   ```\n *\n *   The above example shows that elements are made available by browsers, by\n *   their ID, on the `window` object.\n *   This is a security risk because you might be expecting some other variable\n *   at that place.\n *   It can also break polyfills.\n *   Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n *   Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n *   Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n *   The default value is:\n *\n *   ```js\n *   function defaultFootnoteBackContent(_, rereferenceIndex) {\n *     const result = [{type: 'text', value: '↩'}]\n *\n *     if (rereferenceIndex > 1) {\n *       result.push({\n *         type: 'element',\n *         tagName: 'sup',\n *         properties: {},\n *         children: [{type: 'text', value: String(rereferenceIndex)}]\n *       })\n *     }\n *\n *     return result\n *   }\n *   ```\n *\n *   This content is used in the `a` element of each backreference (the `↩`\n *   links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n *   Label to describe the backreference back to references (default:\n *   `defaultFootnoteBackLabel`).\n *\n *   The default value is:\n *\n *   ```js\n *   function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n *    return (\n *      'Back to reference ' +\n *      (referenceIndex + 1) +\n *      (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n *    )\n *   }\n *   ```\n *\n *   Change it when the markdown is not in English.\n *\n *   This label is used in the `ariaLabel` property on each backreference\n *   (the `↩` links).\n *   It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n *   Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n *   Change it when the markdown is not in English.\n *\n *   This label is typically hidden visually (assuming a `sr-only` CSS class\n *   is defined that does that) and so affects screen readers only.\n *   If you do have such a class, but want to show this section to everyone,\n *   pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n *   Properties to use on the footnote label (default: `{className:\n *   ['sr-only']}`).\n *\n *   Change it to show the label and add other properties.\n *\n *   This label is typically hidden visually (assuming an `sr-only` CSS class\n *   is defined that does that) and so affects screen readers only.\n *   If you do have such a class, but want to show this section to everyone,\n *   pass an empty string.\n *   You can also add different properties.\n *\n *   > **Note**: `id: 'footnote-label'` is always added, because footnote\n *   > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n *   HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n *   Change it to match your document structure.\n *\n *   This label is typically hidden visually (assuming a `sr-only` CSS class\n *   is defined that does that) and so affects screen readers only.\n *   If you do have such a class, but want to show this section to everyone,\n *   pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n *   Extra handlers for nodes (optional).\n * @property {Array<MdastNodes['type']> | null | undefined} [passThrough]\n *   List of custom mdast node types to pass through (keep) in hast (note that\n *   the node itself is passed, but eventual children are transformed)\n *   (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n *   Handler for all unknown nodes (optional).\n *\n * @typedef State\n *   Info passed around.\n * @property {(node: MdastNodes) => Array<HastElementContent>} all\n *   Transform the children of an mdast parent to hast.\n * @property {<Type extends HastNodes>(from: MdastNodes, to: Type) => HastElement | Type} applyData\n *   Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map<string, MdastDefinition>} definitionById\n *   Definitions by their identifier.\n * @property {Map<string, MdastFootnoteDefinition>} footnoteById\n *   Footnote definitions by their identifier.\n * @property {Map<string, number>} footnoteCounts\n *   Counts for how often the same footnote was called.\n * @property {Array<string>} footnoteOrder\n *   Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n *   Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array<HastElementContent> | HastElementContent | undefined} one\n *   Transform an mdast node to hast.\n * @property {Options} options\n *   Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n *   Copy a node’s positional info.\n * @property {<Type extends HastRootContent>(nodes: Array<Type>, loose?: boolean | undefined) => Array<HastText | Type>} wrap\n *   Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n *   mdast node to transform.\n * @param {Options | null | undefined} [options]\n *   Configuration (optional).\n * @returns {State}\n *   `state` function.\n */\nexport function createState(tree, options) {\n  const settings = options || emptyOptions\n  /** @type {Map<string, MdastDefinition>} */\n  const definitionById = new Map()\n  /** @type {Map<string, MdastFootnoteDefinition>} */\n  const footnoteById = new Map()\n  /** @type {Map<string, number>} */\n  const footnoteCounts = new Map()\n  /** @type {Handlers} */\n  // @ts-expect-error: the root handler returns a root.\n  // Hard to type.\n  const handlers = {...defaultHandlers, ...settings.handlers}\n\n  /** @type {State} */\n  const state = {\n    all,\n    applyData,\n    definitionById,\n    footnoteById,\n    footnoteCounts,\n    footnoteOrder: [],\n    handlers,\n    one,\n    options: settings,\n    patch,\n    wrap\n  }\n\n  visit(tree, function (node) {\n    if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n      const map = node.type === 'definition' ? definitionById : footnoteById\n      const id = String(node.identifier).toUpperCase()\n\n      // Mimick CM behavior of link definitions.\n      // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/9032189/lib/index.js#L20-L21>.\n      if (!map.has(id)) {\n        // @ts-expect-error: node type matches map.\n        map.set(id, node)\n      }\n    }\n  })\n\n  return state\n\n  /**\n   * Transform an mdast node into a hast node.\n   *\n   * @param {MdastNodes} node\n   *   mdast node.\n   * @param {MdastParents | undefined} [parent]\n   *   Parent of `node`.\n   * @returns {Array<HastElementContent> | HastElementContent | undefined}\n   *   Resulting hast node.\n   */\n  function one(node, parent) {\n    const type = node.type\n    const handle = state.handlers[type]\n\n    if (own.call(state.handlers, type) && handle) {\n      return handle(state, node, parent)\n    }\n\n    if (state.options.passThrough && state.options.passThrough.includes(type)) {\n      if ('children' in node) {\n        const {children, ...shallow} = node\n        const result = structuredClone(shallow)\n        // @ts-expect-error: TS doesn’t understand…\n        result.children = state.all(node)\n        // @ts-expect-error: TS doesn’t understand…\n        return result\n      }\n\n      // @ts-expect-error: it’s custom.\n      return structuredClone(node)\n    }\n\n    const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n    return unknown(state, node, parent)\n  }\n\n  /**\n   * Transform the children of an mdast node into hast nodes.\n   *\n   * @param {MdastNodes} parent\n   *   mdast node to compile\n   * @returns {Array<HastElementContent>}\n   *   Resulting hast nodes.\n   */\n  function all(parent) {\n    /** @type {Array<HastElementContent>} */\n    const values = []\n\n    if ('children' in parent) {\n      const nodes = parent.children\n      let index = -1\n      while (++index < nodes.length) {\n        const result = state.one(nodes[index], parent)\n\n        // To do: see if we van clean this? Can we merge texts?\n        if (result) {\n          if (index && nodes[index - 1].type === 'break') {\n            if (!Array.isArray(result) && result.type === 'text') {\n              result.value = trimMarkdownSpaceStart(result.value)\n            }\n\n            if (!Array.isArray(result) && result.type === 'element') {\n              const head = result.children[0]\n\n              if (head && head.type === 'text') {\n                head.value = trimMarkdownSpaceStart(head.value)\n              }\n            }\n          }\n\n          if (Array.isArray(result)) {\n            values.push(...result)\n          } else {\n            values.push(result)\n          }\n        }\n      }\n    }\n\n    return values\n  }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n *   mdast node to copy from.\n * @param {HastNodes} to\n *   hast node to copy into.\n * @returns {undefined}\n *   Nothing.\n */\nfunction patch(from, to) {\n  if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n *   Node type.\n * @param {MdastNodes} from\n *   mdast node to use data from.\n * @param {Type} to\n *   hast node to change.\n * @returns {HastElement | Type}\n *   Nothing.\n */\nfunction applyData(from, to) {\n  /** @type {HastElement | Type} */\n  let result = to\n\n  // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n  if (from && from.data) {\n    const hName = from.data.hName\n    const hChildren = from.data.hChildren\n    const hProperties = from.data.hProperties\n\n    if (typeof hName === 'string') {\n      // Transforming the node resulted in an element with a different name\n      // than wanted:\n      if (result.type === 'element') {\n        result.tagName = hName\n      }\n      // Transforming the node resulted in a non-element, which happens for\n      // raw, text, and root nodes (unless custom handlers are passed).\n      // The intent of `hName` is to create an element, but likely also to keep\n      // the content around (otherwise: pass `hChildren`).\n      else {\n        /** @type {Array<HastElementContent>} */\n        // @ts-expect-error: assume no doctypes in `root`.\n        const children = 'children' in result ? result.children : [result]\n        result = {type: 'element', tagName: hName, properties: {}, children}\n      }\n    }\n\n    if (result.type === 'element' && hProperties) {\n      Object.assign(result.properties, structuredClone(hProperties))\n    }\n\n    if (\n      'children' in result &&\n      result.children &&\n      hChildren !== null &&\n      hChildren !== undefined\n    ) {\n      result.children = hChildren\n    }\n  }\n\n  return result\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} node\n *   Unknown mdast node.\n * @returns {HastElement | HastText}\n *   Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n  const data = node.data || {}\n  /** @type {HastElement | HastText} */\n  const result =\n    'value' in node &&\n    !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n      ? {type: 'text', value: node.value}\n      : {\n          type: 'element',\n          tagName: 'div',\n          properties: {},\n          children: state.all(node)\n        }\n\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n *   Node type.\n * @param {Array<Type>} nodes\n *   List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n *   Whether to add line endings at start and end (default: `false`).\n * @returns {Array<HastText | Type>}\n *   Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n  /** @type {Array<HastText | Type>} */\n  const result = []\n  let index = -1\n\n  if (loose) {\n    result.push({type: 'text', value: '\\n'})\n  }\n\n  while (++index < nodes.length) {\n    if (index) result.push({type: 'text', value: '\\n'})\n    result.push(nodes[index])\n  }\n\n  if (loose && nodes.length > 0) {\n    result.push({type: 'text', value: '\\n'})\n  }\n\n  return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n *   Value to trim.\n * @returns {string}\n *   Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n  let index = 0\n  let code = value.charCodeAt(index)\n\n  while (code === 9 || code === 32) {\n    index++\n    code = value.charCodeAt(index)\n  }\n\n  return value.slice(index)\n}\n","/**\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('./state.js').Options} Options\n */\n\nimport {ok as assert} from 'devlop'\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * *   `hast-util-to-html` also has an option `allowDangerousHtml` which will\n *     output the raw HTML.\n *     This is typically discouraged as noted by the option name but is useful\n *     if you completely trust authors\n * *   `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n *     into standard hast nodes (`element`, `text`, etc).\n *     This is a heavy task as it needs a full HTML parser, but it is the only\n *     way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * *   when the node has a `value` (and doesn’t have `data.hName`,\n *     `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n *     node\n * *   otherwise, create a `<div>` element (which could be changed with\n *     `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n *   mdast tree.\n * @param {Options | null | undefined} [options]\n *   Configuration (optional).\n * @returns {HastNodes}\n *   hast tree.\n */\nexport function toHast(tree, options) {\n  const state = createState(tree, options)\n  const node = state.one(tree, undefined)\n  const foot = footer(state)\n  /** @type {HastNodes} */\n  const result = Array.isArray(node)\n    ? {type: 'root', children: node}\n    : node || {type: 'root', children: []}\n\n  if (foot) {\n    // If there’s a footer, there were definitions, meaning block\n    // content.\n    // So `result` is a parent node.\n    assert('children' in result)\n    result.children.push({type: 'text', value: '\\n'}, foot)\n  }\n\n  return result\n}\n","// Include `data` fields in mdast and `raw` nodes in hast.\n/// <reference types=\"mdast-util-to-hast\" />\n\n/**\n * @import {Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {Options as ToHastOptions} from 'mdast-util-to-hast'\n * @import {Processor} from 'unified'\n * @import {VFile} from 'vfile'\n */\n\n/**\n * @typedef {Omit<ToHastOptions, 'file'>} Options\n *\n * @callback TransformBridge\n *   Bridge-mode.\n *\n *   Runs the destination with the new hast tree.\n *   Discards result.\n * @param {MdastRoot} tree\n *   Tree.\n * @param {VFile} file\n *   File.\n * @returns {Promise<undefined>}\n *   Nothing.\n *\n * @callback TransformMutate\n *  Mutate-mode.\n *\n *  Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n *   Tree.\n * @param {VFile} file\n *   File.\n * @returns {HastRoot}\n *   Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * *   if a processor is given, runs the (rehype) plugins used on it with a\n *     hast tree, then discards the result (*bridge mode*)\n * *   otherwise, returns a hast tree, the plugins used after `remarkRehype`\n *     are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**: It’s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don’t:\n *\n * *   `rehype-stringify` also has an option `allowDangerousHtml` which will\n *     output the raw HTML.\n *     This is typically discouraged as noted by the option name but is useful if\n *     you completely trust authors\n * *   `rehype-raw` can handle the raw embedded HTML strings by parsing them\n *     into standard hast nodes (`element`, `text`, etc).\n *     This is a heavy task as it needs a full HTML parser, but it is the only way\n *     to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * *   when the node has a `value` (and doesn’t have `data.hName`,\n *     `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n *     node\n * *   otherwise, create a `<div>` element (which could be changed with\n *     `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @param {Readonly<Options> | Processor | null | undefined} [destination]\n *   Processor or configuration (optional).\n * @param {Readonly<Options> | null | undefined} [options]\n *   When a processor was given, configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n *   Transform.\n */\nexport default function remarkRehype(destination, options) {\n  if (destination && 'run' in destination) {\n    /**\n     * @type {TransformBridge}\n     */\n    return async function (tree, file) {\n      // Cast because root in -> root out.\n      const hastTree = /** @type {HastRoot} */ (\n        toHast(tree, {file, ...options})\n      )\n      await destination.run(hastTree, file)\n    }\n  }\n\n  /**\n   * @type {TransformMutate}\n   */\n  return function (tree, file) {\n    // Cast because root in -> root out.\n    // To do: in the future, disallow ` || options` fallback.\n    // With `unified-engine`, `destination` can be `undefined` but\n    // `options` will be the file set.\n    // We should not pass that as `options`.\n    return /** @type {HastRoot} */ (\n      toHast(tree, {file, ...(destination || options)})\n    )\n  }\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n *   Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n  if (error) {\n    throw error\n  }\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","// A derivative work based on:\n// <https://github.com/browserify/path-browserify>.\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// <https://github.com/nodejs/node/blob/master/lib/path.js>.\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const minpath = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n *   File path.\n * @param {string | null | undefined} [extname]\n *   Extension to strip.\n * @returns {string}\n *   Stem or basename.\n */\nfunction basename(path, extname) {\n  if (extname !== undefined && typeof extname !== 'string') {\n    throw new TypeError('\"ext\" argument must be a string')\n  }\n\n  assertPath(path)\n  let start = 0\n  let end = -1\n  let index = path.length\n  /** @type {boolean | undefined} */\n  let seenNonSlash\n\n  if (\n    extname === undefined ||\n    extname.length === 0 ||\n    extname.length > path.length\n  ) {\n    while (index--) {\n      if (path.codePointAt(index) === 47 /* `/` */) {\n        // If we reached a path separator that was not part of a set of path\n        // separators at the end of the string, stop now.\n        if (seenNonSlash) {\n          start = index + 1\n          break\n        }\n      } else if (end < 0) {\n        // We saw the first non-path separator, mark this as the end of our\n        // path component.\n        seenNonSlash = true\n        end = index + 1\n      }\n    }\n\n    return end < 0 ? '' : path.slice(start, end)\n  }\n\n  if (extname === path) {\n    return ''\n  }\n\n  let firstNonSlashEnd = -1\n  let extnameIndex = extname.length - 1\n\n  while (index--) {\n    if (path.codePointAt(index) === 47 /* `/` */) {\n      // If we reached a path separator that was not part of a set of path\n      // separators at the end of the string, stop now.\n      if (seenNonSlash) {\n        start = index + 1\n        break\n      }\n    } else {\n      if (firstNonSlashEnd < 0) {\n        // We saw the first non-path separator, remember this index in case\n        // we need it if the extension ends up not matching.\n        seenNonSlash = true\n        firstNonSlashEnd = index + 1\n      }\n\n      if (extnameIndex > -1) {\n        // Try to match the explicit extension.\n        if (path.codePointAt(index) === extname.codePointAt(extnameIndex--)) {\n          if (extnameIndex < 0) {\n            // We matched the extension, so mark this as the end of our path\n            // component\n            end = index\n          }\n        } else {\n          // Extension does not match, so our result is the entire path\n          // component\n          extnameIndex = -1\n          end = firstNonSlashEnd\n        }\n      }\n    }\n  }\n\n  if (start === end) {\n    end = firstNonSlashEnd\n  } else if (end < 0) {\n    end = path.length\n  }\n\n  return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n *   File path.\n * @returns {string}\n *   File path.\n */\nfunction dirname(path) {\n  assertPath(path)\n\n  if (path.length === 0) {\n    return '.'\n  }\n\n  let end = -1\n  let index = path.length\n  /** @type {boolean | undefined} */\n  let unmatchedSlash\n\n  // Prefix `--` is important to not run on `0`.\n  while (--index) {\n    if (path.codePointAt(index) === 47 /* `/` */) {\n      if (unmatchedSlash) {\n        end = index\n        break\n      }\n    } else if (!unmatchedSlash) {\n      // We saw the first non-path separator\n      unmatchedSlash = true\n    }\n  }\n\n  return end < 0\n    ? path.codePointAt(0) === 47 /* `/` */\n      ? '/'\n      : '.'\n    : end === 1 && path.codePointAt(0) === 47 /* `/` */\n      ? '//'\n      : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n *   File path.\n * @returns {string}\n *   Extname.\n */\nfunction extname(path) {\n  assertPath(path)\n\n  let index = path.length\n\n  let end = -1\n  let startPart = 0\n  let startDot = -1\n  // Track the state of characters (if any) we see before our first dot and\n  // after any path separator we find.\n  let preDotState = 0\n  /** @type {boolean | undefined} */\n  let unmatchedSlash\n\n  while (index--) {\n    const code = path.codePointAt(index)\n\n    if (code === 47 /* `/` */) {\n      // If we reached a path separator that was not part of a set of path\n      // separators at the end of the string, stop now.\n      if (unmatchedSlash) {\n        startPart = index + 1\n        break\n      }\n\n      continue\n    }\n\n    if (end < 0) {\n      // We saw the first non-path separator, mark this as the end of our\n      // extension.\n      unmatchedSlash = true\n      end = index + 1\n    }\n\n    if (code === 46 /* `.` */) {\n      // If this is our first dot, mark it as the start of our extension.\n      if (startDot < 0) {\n        startDot = index\n      } else if (preDotState !== 1) {\n        preDotState = 1\n      }\n    } else if (startDot > -1) {\n      // We saw a non-dot and non-path separator before our dot, so we should\n      // have a good chance at having a non-empty extension.\n      preDotState = -1\n    }\n  }\n\n  if (\n    startDot < 0 ||\n    end < 0 ||\n    // We saw a non-dot character immediately before the dot.\n    preDotState === 0 ||\n    // The (right-most) trimmed path component is exactly `..`.\n    (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n  ) {\n    return ''\n  }\n\n  return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array<string>} segments\n *   Path segments.\n * @returns {string}\n *   File path.\n */\nfunction join(...segments) {\n  let index = -1\n  /** @type {string | undefined} */\n  let joined\n\n  while (++index < segments.length) {\n    assertPath(segments[index])\n\n    if (segments[index]) {\n      joined =\n        joined === undefined ? segments[index] : joined + '/' + segments[index]\n    }\n  }\n\n  return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n *   File path.\n * @returns {string}\n *   File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n  assertPath(path)\n\n  const absolute = path.codePointAt(0) === 47 /* `/` */\n\n  // Normalize the path according to POSIX rules.\n  let value = normalizeString(path, !absolute)\n\n  if (value.length === 0 && !absolute) {\n    value = '.'\n  }\n\n  if (value.length > 0 && path.codePointAt(path.length - 1) === 47 /* / */) {\n    value += '/'\n  }\n\n  return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n *   File path.\n * @param {boolean} allowAboveRoot\n *   Whether `..` can move above root.\n * @returns {string}\n *   File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n  let result = ''\n  let lastSegmentLength = 0\n  let lastSlash = -1\n  let dots = 0\n  let index = -1\n  /** @type {number | undefined} */\n  let code\n  /** @type {number} */\n  let lastSlashIndex\n\n  while (++index <= path.length) {\n    if (index < path.length) {\n      code = path.codePointAt(index)\n    } else if (code === 47 /* `/` */) {\n      break\n    } else {\n      code = 47 /* `/` */\n    }\n\n    if (code === 47 /* `/` */) {\n      if (lastSlash === index - 1 || dots === 1) {\n        // Empty.\n      } else if (lastSlash !== index - 1 && dots === 2) {\n        if (\n          result.length < 2 ||\n          lastSegmentLength !== 2 ||\n          result.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n          result.codePointAt(result.length - 2) !== 46 /* `.` */\n        ) {\n          if (result.length > 2) {\n            lastSlashIndex = result.lastIndexOf('/')\n\n            if (lastSlashIndex !== result.length - 1) {\n              if (lastSlashIndex < 0) {\n                result = ''\n                lastSegmentLength = 0\n              } else {\n                result = result.slice(0, lastSlashIndex)\n                lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n              }\n\n              lastSlash = index\n              dots = 0\n              continue\n            }\n          } else if (result.length > 0) {\n            result = ''\n            lastSegmentLength = 0\n            lastSlash = index\n            dots = 0\n            continue\n          }\n        }\n\n        if (allowAboveRoot) {\n          result = result.length > 0 ? result + '/..' : '..'\n          lastSegmentLength = 2\n        }\n      } else {\n        if (result.length > 0) {\n          result += '/' + path.slice(lastSlash + 1, index)\n        } else {\n          result = path.slice(lastSlash + 1, index)\n        }\n\n        lastSegmentLength = index - lastSlash - 1\n      }\n\n      lastSlash = index\n      dots = 0\n    } else if (code === 46 /* `.` */ && dots > -1) {\n      dots++\n    } else {\n      dots = -1\n    }\n  }\n\n  return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n *   File path.\n * @returns {asserts path is string}\n *   Nothing.\n */\nfunction assertPath(path) {\n  if (typeof path !== 'string') {\n    throw new TypeError(\n      'Path must be a string. Received ' + JSON.stringify(path)\n    )\n  }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// <https://github.com/defunctzombie/node-process/blob/master/browser.js>.\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const minproc = {cwd}\n\nfunction cwd() {\n  return '/'\n}\n","/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n *   File path or URL.\n * @returns {fileUrlOrPath is URL}\n *   Whether it’s a URL.\n */\n// From: <https://github.com/nodejs/node/blob/6a3403c/lib/internal/url.js#L720>\nexport function isUrl(fileUrlOrPath) {\n  return Boolean(\n    fileUrlOrPath !== null &&\n      typeof fileUrlOrPath === 'object' &&\n      'href' in fileUrlOrPath &&\n      fileUrlOrPath.href &&\n      'protocol' in fileUrlOrPath &&\n      fileUrlOrPath.protocol &&\n      // @ts-expect-error: indexing is fine.\n      fileUrlOrPath.auth === undefined\n  )\n}\n","/**\n * @import {Node, Point, Position} from 'unist'\n * @import {Options as MessageOptions} from 'vfile-message'\n * @import {Compatible, Data, Map, Options, Value} from 'vfile'\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {minpath} from '#minpath'\nimport {minproc} from '#minproc'\nimport {urlToPath, isUrl} from '#minurl'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n */\nconst order = /** @type {const} */ ([\n  'history',\n  'path',\n  'basename',\n  'stem',\n  'extname',\n  'dirname'\n])\n\nexport class VFile {\n  /**\n   * Create a new virtual file.\n   *\n   * `options` is treated as:\n   *\n   * *   `string` or `Uint8Array` — `{value: options}`\n   * *   `URL` — `{path: options}`\n   * *   `VFile` — shallow copies its data over to the new file\n   * *   `object` — all fields are shallow copied over to the new file\n   *\n   * Path related fields are set in the following order (least specific to\n   * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n   * `dirname`.\n   *\n   * You cannot set `dirname` or `extname` without setting either `history`,\n   * `path`, `basename`, or `stem` too.\n   *\n   * @param {Compatible | null | undefined} [value]\n   *   File value.\n   * @returns\n   *   New instance.\n   */\n  constructor(value) {\n    /** @type {Options | VFile} */\n    let options\n\n    if (!value) {\n      options = {}\n    } else if (isUrl(value)) {\n      options = {path: value}\n    } else if (typeof value === 'string' || isUint8Array(value)) {\n      options = {value}\n    } else {\n      options = value\n    }\n\n    /* eslint-disable no-unused-expressions */\n\n    /**\n     * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n     *\n     * @type {string}\n     */\n    // Prevent calling `cwd` (which could be expensive) if it’s not needed;\n    // the empty string will be overridden in the next block.\n    this.cwd = 'cwd' in options ? '' : minproc.cwd()\n\n    /**\n     * Place to store custom info (default: `{}`).\n     *\n     * It’s OK to store custom data directly on the file but moving it to\n     * `data` is recommended.\n     *\n     * @type {Data}\n     */\n    this.data = {}\n\n    /**\n     * List of file paths the file moved between.\n     *\n     * The first is the original path and the last is the current path.\n     *\n     * @type {Array<string>}\n     */\n    this.history = []\n\n    /**\n     * List of messages associated with the file.\n     *\n     * @type {Array<VFileMessage>}\n     */\n    this.messages = []\n\n    /**\n     * Raw value.\n     *\n     * @type {Value}\n     */\n    this.value\n\n    // The below are non-standard, they are “well-known”.\n    // As in, used in several tools.\n    /**\n     * Source map.\n     *\n     * This type is equivalent to the `RawSourceMap` type from the `source-map`\n     * module.\n     *\n     * @type {Map | null | undefined}\n     */\n    this.map\n\n    /**\n     * Custom, non-string, compiled, representation.\n     *\n     * This is used by unified to store non-string results.\n     * One example is when turning markdown into React nodes.\n     *\n     * @type {unknown}\n     */\n    this.result\n\n    /**\n     * Whether a file was saved to disk.\n     *\n     * This is used by vfile reporters.\n     *\n     * @type {boolean}\n     */\n    this.stored\n    /* eslint-enable no-unused-expressions */\n\n    // Set path related properties in the correct order.\n    let index = -1\n\n    while (++index < order.length) {\n      const field = order[index]\n\n      // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n      // `vfile`s too.\n      if (\n        field in options &&\n        options[field] !== undefined &&\n        options[field] !== null\n      ) {\n        // @ts-expect-error: TS doesn’t understand basic reality.\n        this[field] = field === 'history' ? [...options[field]] : options[field]\n      }\n    }\n\n    /** @type {string} */\n    let field\n\n    // Set non-path related properties.\n    for (field in options) {\n      // @ts-expect-error: fine to set other things.\n      if (!order.includes(field)) {\n        // @ts-expect-error: fine to set other things.\n        this[field] = options[field]\n      }\n    }\n  }\n\n  /**\n   * Get the basename (including extname) (example: `'index.min.js'`).\n   *\n   * @returns {string | undefined}\n   *   Basename.\n   */\n  get basename() {\n    return typeof this.path === 'string'\n      ? minpath.basename(this.path)\n      : undefined\n  }\n\n  /**\n   * Set basename (including extname) (`'index.min.js'`).\n   *\n   * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n   * on windows).\n   * Cannot be nullified (use `file.path = file.dirname` instead).\n   *\n   * @param {string} basename\n   *   Basename.\n   * @returns {undefined}\n   *   Nothing.\n   */\n  set basename(basename) {\n    assertNonEmpty(basename, 'basename')\n    assertPart(basename, 'basename')\n    this.path = minpath.join(this.dirname || '', basename)\n  }\n\n  /**\n   * Get the parent path (example: `'~'`).\n   *\n   * @returns {string | undefined}\n   *   Dirname.\n   */\n  get dirname() {\n    return typeof this.path === 'string'\n      ? minpath.dirname(this.path)\n      : undefined\n  }\n\n  /**\n   * Set the parent path (example: `'~'`).\n   *\n   * Cannot be set if there’s no `path` yet.\n   *\n   * @param {string | undefined} dirname\n   *   Dirname.\n   * @returns {undefined}\n   *   Nothing.\n   */\n  set dirname(dirname) {\n    assertPath(this.basename, 'dirname')\n    this.path = minpath.join(dirname || '', this.basename)\n  }\n\n  /**\n   * Get the extname (including dot) (example: `'.js'`).\n   *\n   * @returns {string | undefined}\n   *   Extname.\n   */\n  get extname() {\n    return typeof this.path === 'string'\n      ? minpath.extname(this.path)\n      : undefined\n  }\n\n  /**\n   * Set the extname (including dot) (example: `'.js'`).\n   *\n   * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n   * on windows).\n   * Cannot be set if there’s no `path` yet.\n   *\n   * @param {string | undefined} extname\n   *   Extname.\n   * @returns {undefined}\n   *   Nothing.\n   */\n  set extname(extname) {\n    assertPart(extname, 'extname')\n    assertPath(this.dirname, 'extname')\n\n    if (extname) {\n      if (extname.codePointAt(0) !== 46 /* `.` */) {\n        throw new Error('`extname` must start with `.`')\n      }\n\n      if (extname.includes('.', 1)) {\n        throw new Error('`extname` cannot contain multiple dots')\n      }\n    }\n\n    this.path = minpath.join(this.dirname, this.stem + (extname || ''))\n  }\n\n  /**\n   * Get the full path (example: `'~/index.min.js'`).\n   *\n   * @returns {string}\n   *   Path.\n   */\n  get path() {\n    return this.history[this.history.length - 1]\n  }\n\n  /**\n   * Set the full path (example: `'~/index.min.js'`).\n   *\n   * Cannot be nullified.\n   * You can set a file URL (a `URL` object with a `file:` protocol) which will\n   * be turned into a path with `url.fileURLToPath`.\n   *\n   * @param {URL | string} path\n   *   Path.\n   * @returns {undefined}\n   *   Nothing.\n   */\n  set path(path) {\n    if (isUrl(path)) {\n      path = urlToPath(path)\n    }\n\n    assertNonEmpty(path, 'path')\n\n    if (this.path !== path) {\n      this.history.push(path)\n    }\n  }\n\n  /**\n   * Get the stem (basename w/o extname) (example: `'index.min'`).\n   *\n   * @returns {string | undefined}\n   *   Stem.\n   */\n  get stem() {\n    return typeof this.path === 'string'\n      ? minpath.basename(this.path, this.extname)\n      : undefined\n  }\n\n  /**\n   * Set the stem (basename w/o extname) (example: `'index.min'`).\n   *\n   * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n   * on windows).\n   * Cannot be nullified (use `file.path = file.dirname` instead).\n   *\n   * @param {string} stem\n   *   Stem.\n   * @returns {undefined}\n   *   Nothing.\n   */\n  set stem(stem) {\n    assertNonEmpty(stem, 'stem')\n    assertPart(stem, 'stem')\n    this.path = minpath.join(this.dirname || '', stem + (this.extname || ''))\n  }\n\n  // Normal prototypal methods.\n  /**\n   * Create a fatal message for `reason` associated with the file.\n   *\n   * The `fatal` field of the message is set to `true` (error; file not usable)\n   * and the `file` field is set to the current file path.\n   * The message is added to the `messages` field on `file`.\n   *\n   * > 🪦 **Note**: also has obsolete signatures.\n   *\n   * @overload\n   * @param {string} reason\n   * @param {MessageOptions | null | undefined} [options]\n   * @returns {never}\n   *\n   * @overload\n   * @param {string} reason\n   * @param {Node | NodeLike | null | undefined} parent\n   * @param {string | null | undefined} [origin]\n   * @returns {never}\n   *\n   * @overload\n   * @param {string} reason\n   * @param {Point | Position | null | undefined} place\n   * @param {string | null | undefined} [origin]\n   * @returns {never}\n   *\n   * @overload\n   * @param {string} reason\n   * @param {string | null | undefined} [origin]\n   * @returns {never}\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {Node | NodeLike | null | undefined} parent\n   * @param {string | null | undefined} [origin]\n   * @returns {never}\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {Point | Position | null | undefined} place\n   * @param {string | null | undefined} [origin]\n   * @returns {never}\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {string | null | undefined} [origin]\n   * @returns {never}\n   *\n   * @param {Error | VFileMessage | string} causeOrReason\n   *   Reason for message, should use markdown.\n   * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n   *   Configuration (optional).\n   * @param {string | null | undefined} [origin]\n   *   Place in code where the message originates (example:\n   *   `'my-package:my-rule'` or `'my-rule'`).\n   * @returns {never}\n   *   Never.\n   * @throws {VFileMessage}\n   *   Message.\n   */\n  fail(causeOrReason, optionsOrParentOrPlace, origin) {\n    // @ts-expect-error: the overloads are fine.\n    const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n    message.fatal = true\n\n    throw message\n  }\n\n  /**\n   * Create an info message for `reason` associated with the file.\n   *\n   * The `fatal` field of the message is set to `undefined` (info; change\n   * likely not needed) and the `file` field is set to the current file path.\n   * The message is added to the `messages` field on `file`.\n   *\n   * > 🪦 **Note**: also has obsolete signatures.\n   *\n   * @overload\n   * @param {string} reason\n   * @param {MessageOptions | null | undefined} [options]\n   * @returns {VFileMessage}\n   *\n   * @overload\n   * @param {string} reason\n   * @param {Node | NodeLike | null | undefined} parent\n   * @param {string | null | undefined} [origin]\n   * @returns {VFileMessage}\n   *\n   * @overload\n   * @param {string} reason\n   * @param {Point | Position | null | undefined} place\n   * @param {string | null | undefined} [origin]\n   * @returns {VFileMessage}\n   *\n   * @overload\n   * @param {string} reason\n   * @param {string | null | undefined} [origin]\n   * @returns {VFileMessage}\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {Node | NodeLike | null | undefined} parent\n   * @param {string | null | undefined} [origin]\n   * @returns {VFileMessage}\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {Point | Position | null | undefined} place\n   * @param {string | null | undefined} [origin]\n   * @returns {VFileMessage}\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {string | null | undefined} [origin]\n   * @returns {VFileMessage}\n   *\n   * @param {Error | VFileMessage | string} causeOrReason\n   *   Reason for message, should use markdown.\n   * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n   *   Configuration (optional).\n   * @param {string | null | undefined} [origin]\n   *   Place in code where the message originates (example:\n   *   `'my-package:my-rule'` or `'my-rule'`).\n   * @returns {VFileMessage}\n   *   Message.\n   */\n  info(causeOrReason, optionsOrParentOrPlace, origin) {\n    // @ts-expect-error: the overloads are fine.\n    const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n    message.fatal = undefined\n\n    return message\n  }\n\n  /**\n   * Create a message for `reason` associated with the file.\n   *\n   * The `fatal` field of the message is set to `false` (warning; change may be\n   * needed) and the `file` field is set to the current file path.\n   * The message is added to the `messages` field on `file`.\n   *\n   * > 🪦 **Note**: also has obsolete signatures.\n   *\n   * @overload\n   * @param {string} reason\n   * @param {MessageOptions | null | undefined} [options]\n   * @returns {VFileMessage}\n   *\n   * @overload\n   * @param {string} reason\n   * @param {Node | NodeLike | null | undefined} parent\n   * @param {string | null | undefined} [origin]\n   * @returns {VFileMessage}\n   *\n   * @overload\n   * @param {string} reason\n   * @param {Point | Position | null | undefined} place\n   * @param {string | null | undefined} [origin]\n   * @returns {VFileMessage}\n   *\n   * @overload\n   * @param {string} reason\n   * @param {string | null | undefined} [origin]\n   * @returns {VFileMessage}\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {Node | NodeLike | null | undefined} parent\n   * @param {string | null | undefined} [origin]\n   * @returns {VFileMessage}\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {Point | Position | null | undefined} place\n   * @param {string | null | undefined} [origin]\n   * @returns {VFileMessage}\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {string | null | undefined} [origin]\n   * @returns {VFileMessage}\n   *\n   * @param {Error | VFileMessage | string} causeOrReason\n   *   Reason for message, should use markdown.\n   * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n   *   Configuration (optional).\n   * @param {string | null | undefined} [origin]\n   *   Place in code where the message originates (example:\n   *   `'my-package:my-rule'` or `'my-rule'`).\n   * @returns {VFileMessage}\n   *   Message.\n   */\n  message(causeOrReason, optionsOrParentOrPlace, origin) {\n    const message = new VFileMessage(\n      // @ts-expect-error: the overloads are fine.\n      causeOrReason,\n      optionsOrParentOrPlace,\n      origin\n    )\n\n    if (this.path) {\n      message.name = this.path + ':' + message.name\n      message.file = this.path\n    }\n\n    message.fatal = false\n\n    this.messages.push(message)\n\n    return message\n  }\n\n  /**\n   * Serialize the file.\n   *\n   * > **Note**: which encodings are supported depends on the engine.\n   * > For info on Node.js, see:\n   * > <https://nodejs.org/api/util.html#whatwg-supported-encodings>.\n   *\n   * @param {string | null | undefined} [encoding='utf8']\n   *   Character encoding to understand `value` as when it’s a `Uint8Array`\n   *   (default: `'utf-8'`).\n   * @returns {string}\n   *   Serialized file.\n   */\n  toString(encoding) {\n    if (this.value === undefined) {\n      return ''\n    }\n\n    if (typeof this.value === 'string') {\n      return this.value\n    }\n\n    const decoder = new TextDecoder(encoding || undefined)\n    return decoder.decode(this.value)\n  }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n *   File path part.\n * @param {string} name\n *   Part name.\n * @returns {undefined}\n *   Nothing.\n */\nfunction assertPart(part, name) {\n  if (part && part.includes(minpath.sep)) {\n    throw new Error(\n      '`' + name + '` cannot be a path: did not expect `' + minpath.sep + '`'\n    )\n  }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n *   Thing.\n * @param {string} name\n *   Part name.\n * @returns {asserts part is string}\n *   Nothing.\n */\nfunction assertNonEmpty(part, name) {\n  if (!part) {\n    throw new Error('`' + name + '` cannot be empty')\n  }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n *   Path.\n * @param {string} name\n *   Dependency name.\n * @returns {asserts path is string}\n *   Nothing.\n */\nfunction assertPath(path, name) {\n  if (!path) {\n    throw new Error('Setting `' + name + '` requires `path` to be set too')\n  }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n *   thing.\n * @returns {value is Uint8Array}\n *   Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n  return Boolean(\n    value &&\n      typeof value === 'object' &&\n      'byteLength' in value &&\n      'byteOffset' in value\n  )\n}\n","import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: <https://github.com/nodejs/node/blob/6a3403c/lib/internal/url.js>\n\n/**\n * @param {URL | string} path\n *   File URL.\n * @returns {string}\n *   File URL.\n */\nexport function urlToPath(path) {\n  if (typeof path === 'string') {\n    path = new URL(path)\n  } else if (!isUrl(path)) {\n    /** @type {NodeJS.ErrnoException} */\n    const error = new TypeError(\n      'The \"path\" argument must be of type string or an instance of URL. Received `' +\n        path +\n        '`'\n    )\n    error.code = 'ERR_INVALID_ARG_TYPE'\n    throw error\n  }\n\n  if (path.protocol !== 'file:') {\n    /** @type {NodeJS.ErrnoException} */\n    const error = new TypeError('The URL must be of scheme file')\n    error.code = 'ERR_INVALID_URL_SCHEME'\n    throw error\n  }\n\n  return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n *   URL.\n * @returns {string}\n *   File path.\n */\nfunction getPathFromURLPosix(url) {\n  if (url.hostname !== '') {\n    /** @type {NodeJS.ErrnoException} */\n    const error = new TypeError(\n      'File URL host must be \"localhost\" or empty on darwin'\n    )\n    error.code = 'ERR_INVALID_FILE_URL_HOST'\n    throw error\n  }\n\n  const pathname = url.pathname\n  let index = -1\n\n  while (++index < pathname.length) {\n    if (\n      pathname.codePointAt(index) === 37 /* `%` */ &&\n      pathname.codePointAt(index + 1) === 50 /* `2` */\n    ) {\n      const third = pathname.codePointAt(index + 2)\n      if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n        /** @type {NodeJS.ErrnoException} */\n        const error = new TypeError(\n          'File URL path must not include encoded / characters'\n        )\n        error.code = 'ERR_INVALID_FILE_URL_PATH'\n        throw error\n      }\n    }\n  }\n\n  return decodeURIComponent(pathname)\n}\n","export const CallableInstance =\n  /**\n   * @type {new <Parameters extends Array<unknown>, Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n   */\n  (\n    /** @type {unknown} */\n    (\n      /**\n       * @this {Function}\n       * @param {string | symbol} property\n       * @returns {(...parameters: Array<unknown>) => unknown}\n       */\n      function (property) {\n        const self = this\n        const constr = self.constructor\n        const proto = /** @type {Record<string | symbol, Function>} */ (\n          // Prototypes do exist.\n          // type-coverage:ignore-next-line\n          constr.prototype\n        )\n        const value = proto[property]\n        /** @type {(...parameters: Array<unknown>) => unknown} */\n        const apply = function () {\n          return value.apply(apply, arguments)\n        }\n\n        Object.setPrototypeOf(apply, proto)\n\n        // Not needed for us in `unified`: we only call this on the `copy`\n        // function,\n        // and we don't need to add its fields (`length`, `name`)\n        // over.\n        // See also: GH-246.\n        // const names = Object.getOwnPropertyNames(value)\n        //\n        // for (const p of names) {\n        //   const descriptor = Object.getOwnPropertyDescriptor(value, p)\n        //   if (descriptor) Object.defineProperty(apply, p, descriptor)\n        // }\n\n        return apply\n      }\n    )\n  )\n","/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n *   Acceptable results from compilers.\n *\n *   To register custom results, add them to\n *   {@linkcode CompileResultMap}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n *   The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n *   The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n *   A **compiler** handles the compiling of a syntax tree to something else\n *   (in most cases, text) (TypeScript type).\n *\n *   It is used in the stringify phase and called with a {@linkcode Node}\n *   and {@linkcode VFile} representation of the document to compile.\n *   It should return the textual representation of the given tree (typically\n *   `string`).\n *\n *   > **Note**: unified typically compiles by serializing: most compilers\n *   > return `string` (or `Uint8Array`).\n *   > Some compilers, such as the one configured with\n *   > [`rehype-react`][rehype-react], return other values (in this case, a\n *   > React tree).\n *   > If you’re using a compiler that doesn’t serialize, expect different\n *   > result values.\n *   >\n *   > To register custom results in TypeScript, add them to\n *   > {@linkcode CompileResultMap}.\n *\n *   [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n *   Tree to compile.\n * @param {VFile} file\n *   File associated with `tree`.\n * @returns {Result}\n *   New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n *   something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n *   The node that the parser yields (default: `Node`)\n * @callback Parser\n *   A **parser** handles the parsing of text to a syntax tree.\n *\n *   It is used in the parse phase and is called with a `string` and\n *   {@linkcode VFile} of the document to parse.\n *   It must return the syntax tree representation of the given file\n *   ({@linkcode Node}).\n * @param {string} document\n *   Document to parse.\n * @param {VFile} file\n *   File associated with `document`.\n * @returns {Tree}\n *   Node representing the given file.\n */\n\n/**\n * @typedef {(\n *   Plugin<Array<any>, any, any> |\n *   PluginTuple<Array<any>, any, any> |\n *   Preset\n * )} Pluggable\n *   Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array<Pluggable>} PluggableList\n *   List of plugins and presets.\n */\n\n// Note: we can’t use `callback` yet as it messes up `this`:\n//  <https://github.com/microsoft/TypeScript/issues/55197>.\n/**\n * @template {Array<unknown>} [PluginParameters=[]]\n *   Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n *   Value that is expected as input (default: `Node`).\n *\n *   *   If the plugin returns a {@linkcode Transformer}, this\n *       should be the node it expects.\n *   *   If the plugin sets a {@linkcode Parser}, this should be\n *       `string`.\n *   *   If the plugin sets a {@linkcode Compiler}, this should be the\n *       node it expects.\n * @template [Output=Input]\n *   Value that is yielded as output (default: `Input`).\n *\n *   *   If the plugin returns a {@linkcode Transformer}, this\n *       should be the node that that yields.\n *   *   If the plugin sets a {@linkcode Parser}, this should be the\n *       node that it yields.\n *   *   If the plugin sets a {@linkcode Compiler}, this should be\n *       result it yields.\n * @typedef {(\n *   (this: Processor, ...parameters: PluginParameters) =>\n *     Input extends string ? // Parser.\n *        Output extends Node | undefined ? undefined | void : never :\n *     Output extends CompileResults ? // Compiler.\n *        Input extends Node | undefined ? undefined | void : never :\n *     Transformer<\n *       Input extends Node ? Input : Node,\n *       Output extends Node ? Output : Node\n *     > | undefined | void\n * )} Plugin\n *   Single plugin.\n *\n *   Plugins configure the processors they are applied on in the following\n *   ways:\n *\n *   *   they change the processor, such as the parser, the compiler, or by\n *       configuring data\n *   *   they specify how to handle trees and files\n *\n *   In practice, they are functions that can receive options and configure the\n *   processor (`this`).\n *\n *   > **Note**: plugins are called when the processor is *frozen*, not when\n *   > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array<unknown>} [TupleParameters=[]]\n *   Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n *   Value that is expected as input (optional).\n *\n *   *   If the plugin returns a {@linkcode Transformer}, this\n *       should be the node it expects.\n *   *   If the plugin sets a {@linkcode Parser}, this should be\n *       `string`.\n *   *   If the plugin sets a {@linkcode Compiler}, this should be the\n *       node it expects.\n * @template [Output=undefined] (optional).\n *   Value that is yielded as output.\n *\n *   *   If the plugin returns a {@linkcode Transformer}, this\n *       should be the node that that yields.\n *   *   If the plugin sets a {@linkcode Parser}, this should be the\n *       node that it yields.\n *   *   If the plugin sets a {@linkcode Compiler}, this should be\n *       result it yields.\n * @typedef {(\n *   [\n *     plugin: Plugin<TupleParameters, Input, Output>,\n *     ...parameters: TupleParameters\n *   ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n *   Sharable configuration.\n *\n *   They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n *   List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n *   Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n *   The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n *   Callback called when the process is done.\n *\n *   Called with either an error or a result.\n * @param {Error | undefined} [error]\n *   Fatal error (optional).\n * @param {File | undefined} [file]\n *   Processed file (optional).\n * @returns {undefined}\n *   Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n *   The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n *   Callback called when transformers are done.\n *\n *   Called with either an error or results.\n * @param {Error | undefined} [error]\n *   Fatal error (optional).\n * @param {Tree | undefined} [tree]\n *   Transformed tree (optional).\n * @param {VFile | undefined} [file]\n *   File (optional).\n * @returns {undefined}\n *   Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n *   Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n *   Callback passed to transforms.\n *\n *   If the signature of a `transformer` accepts a third argument, the\n *   transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n *   Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n *   New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n *   New, changed, file (optional).\n * @returns {undefined}\n *   Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n *   Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n *   Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n *   Transformers handle syntax trees and files.\n *\n *   They are functions that are called each time a syntax tree and file are\n *   passed through the run phase.\n *   When an error occurs in them (either because it’s thrown, returned,\n *   rejected, or passed to `next`), the process stops.\n *\n *   The run phase is handled by [`trough`][trough], see its documentation for\n *   the exact semantics of these functions.\n *\n *   > **Note**: you should likely ignore `next`: don’t accept it.\n *   > it supports callback-style async work.\n *   > But promises are likely easier to reason about.\n *\n *   [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n *   Tree to handle.\n * @param {VFile} file\n *   File to handle.\n * @param {TransformCallback<Output>} next\n *   Callback.\n * @returns {(\n *   Promise<Output | undefined | void> |\n *   Promise<never> | // For some reason this is needed separately.\n *   Output |\n *   Error |\n *   undefined |\n *   void\n * )}\n *   If you accept `next`, nothing.\n *   Otherwise:\n *\n *   *   `Error` — fatal error to stop the process\n *   *   `Promise<undefined>` or `undefined` — the next transformer keeps using\n *       same tree\n *   *   `Promise<Node>` or `Node` — new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n *   Output of `parse`.\n * @template {Node | undefined} HeadTree\n *   Input for `run`.\n * @template {Node | undefined} TailTree\n *   Output for `run`.\n * @template {Node | undefined} CompileTree\n *   Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n *   Output of `stringify`.\n * @template {Node | string | undefined} Input\n *   Input of plugin.\n * @template Output\n *   Output of plugin (optional).\n * @typedef {(\n *   Input extends string\n *     ? Output extends Node | undefined\n *       ? // Parser.\n *         Processor<\n *           Output extends undefined ? ParseTree : Output,\n *           HeadTree,\n *           TailTree,\n *           CompileTree,\n *           CompileResult\n *         >\n *       : // Unknown.\n *         Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n *     : Output extends CompileResults\n *     ? Input extends Node | undefined\n *       ? // Compiler.\n *         Processor<\n *           ParseTree,\n *           HeadTree,\n *           TailTree,\n *           Input extends undefined ? CompileTree : Input,\n *           Output extends undefined ? CompileResult : Output\n *         >\n *       : // Unknown.\n *         Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n *     : Input extends Node | undefined\n *     ? Output extends Node | undefined\n *       ? // Transform.\n *         Processor<\n *           ParseTree,\n *           HeadTree extends undefined ? Input : HeadTree,\n *           Output extends undefined ? TailTree : Output,\n *           CompileTree,\n *           CompileResult\n *         >\n *       : // Unknown.\n *         Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n *     : // Unknown.\n *       Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * )} UsePlugin\n *   Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n *   Node type that the transformer yields.\n * @typedef {(\n *   Result extends Value | undefined ?\n *     VFile :\n *     VFile & {result: Result}\n *   )} VFileWithOutput\n *   Type to generate a {@linkcode VFile} corresponding to a compiler result.\n *\n *   If a result that is not acceptable on a `VFile` is used, that will\n *   be stored on the `result` field of {@linkcode VFile}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n *   Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n *   Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n *   Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n *   Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n *   Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>>}\n */\nexport class Processor extends CallableInstance {\n  /**\n   * Create a processor.\n   */\n  constructor() {\n    // If `Processor()` is called (w/o new), `copy` is called instead.\n    super('copy')\n\n    /**\n     * Compiler to use (deprecated).\n     *\n     * @deprecated\n     *   Use `compiler` instead.\n     * @type {(\n     *   Compiler<\n     *     CompileTree extends undefined ? Node : CompileTree,\n     *     CompileResult extends undefined ? CompileResults : CompileResult\n     *   > |\n     *   undefined\n     * )}\n     */\n    this.Compiler = undefined\n\n    /**\n     * Parser to use (deprecated).\n     *\n     * @deprecated\n     *   Use `parser` instead.\n     * @type {(\n     *   Parser<ParseTree extends undefined ? Node : ParseTree> |\n     *   undefined\n     * )}\n     */\n    this.Parser = undefined\n\n    // Note: the following fields are considered private.\n    // However, they are needed for tests, and TSC generates an untyped\n    // `private freezeIndex` field for, which trips `type-coverage` up.\n    // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n    /**\n     * Internal list of configured plugins.\n     *\n     * @deprecated\n     *   This is a private internal property and should not be used.\n     * @type {Array<PluginTuple<Array<unknown>>>}\n     */\n    this.attachers = []\n\n    /**\n     * Compiler to use.\n     *\n     * @type {(\n     *   Compiler<\n     *     CompileTree extends undefined ? Node : CompileTree,\n     *     CompileResult extends undefined ? CompileResults : CompileResult\n     *   > |\n     *   undefined\n     * )}\n     */\n    this.compiler = undefined\n\n    /**\n     * Internal state to track where we are while freezing.\n     *\n     * @deprecated\n     *   This is a private internal property and should not be used.\n     * @type {number}\n     */\n    this.freezeIndex = -1\n\n    /**\n     * Internal state to track whether we’re frozen.\n     *\n     * @deprecated\n     *   This is a private internal property and should not be used.\n     * @type {boolean | undefined}\n     */\n    this.frozen = undefined\n\n    /**\n     * Internal state.\n     *\n     * @deprecated\n     *   This is a private internal property and should not be used.\n     * @type {Data}\n     */\n    this.namespace = {}\n\n    /**\n     * Parser to use.\n     *\n     * @type {(\n     *   Parser<ParseTree extends undefined ? Node : ParseTree> |\n     *   undefined\n     * )}\n     */\n    this.parser = undefined\n\n    /**\n     * Internal list of configured transformers.\n     *\n     * @deprecated\n     *   This is a private internal property and should not be used.\n     * @type {Pipeline}\n     */\n    this.transformers = trough()\n  }\n\n  /**\n   * Copy a processor.\n   *\n   * @deprecated\n   *   This is a private internal method and should not be used.\n   * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n   *   New *unfrozen* processor ({@linkcode Processor}) that is\n   *   configured to work the same as its ancestor.\n   *   When the descendant processor is configured in the future it does not\n   *   affect the ancestral processor.\n   */\n  copy() {\n    // Cast as the type parameters will be the same after attaching.\n    const destination =\n      /** @type {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>} */ (\n        new Processor()\n      )\n    let index = -1\n\n    while (++index < this.attachers.length) {\n      const attacher = this.attachers[index]\n      destination.use(...attacher)\n    }\n\n    destination.data(extend(true, {}, this.namespace))\n\n    return destination\n  }\n\n  /**\n   * Configure the processor with info available to all plugins.\n   * Information is stored in an object.\n   *\n   * Typically, options can be given to a specific plugin, but sometimes it\n   * makes sense to have information shared with several plugins.\n   * For example, a list of HTML elements that are self-closing, which is\n   * needed during all phases.\n   *\n   * > **Note**: setting information cannot occur on *frozen* processors.\n   * > Call the processor first to create a new unfrozen processor.\n   *\n   * > **Note**: to register custom data in TypeScript, augment the\n   * > {@linkcode Data} interface.\n   *\n   * @example\n   *   This example show how to get and set info:\n   *\n   *   ```js\n   *   import {unified} from 'unified'\n   *\n   *   const processor = unified().data('alpha', 'bravo')\n   *\n   *   processor.data('alpha') // => 'bravo'\n   *\n   *   processor.data() // => {alpha: 'bravo'}\n   *\n   *   processor.data({charlie: 'delta'})\n   *\n   *   processor.data() // => {charlie: 'delta'}\n   *   ```\n   *\n   * @template {keyof Data} Key\n   *\n   * @overload\n   * @returns {Data}\n   *\n   * @overload\n   * @param {Data} dataset\n   * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n   *\n   * @overload\n   * @param {Key} key\n   * @returns {Data[Key]}\n   *\n   * @overload\n   * @param {Key} key\n   * @param {Data[Key]} value\n   * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n   *\n   * @param {Data | Key} [key]\n   *   Key to get or set, or entire dataset to set, or nothing to get the\n   *   entire dataset (optional).\n   * @param {Data[Key]} [value]\n   *   Value to set (optional).\n   * @returns {unknown}\n   *   The current processor when setting, the value at `key` when getting, or\n   *   the entire dataset when getting without key.\n   */\n  data(key, value) {\n    if (typeof key === 'string') {\n      // Set `key`.\n      if (arguments.length === 2) {\n        assertUnfrozen('data', this.frozen)\n        this.namespace[key] = value\n        return this\n      }\n\n      // Get `key`.\n      return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n    }\n\n    // Set space.\n    if (key) {\n      assertUnfrozen('data', this.frozen)\n      this.namespace = key\n      return this\n    }\n\n    // Get space.\n    return this.namespace\n  }\n\n  /**\n   * Freeze a processor.\n   *\n   * Frozen processors are meant to be extended and not to be configured\n   * directly.\n   *\n   * When a processor is frozen it cannot be unfrozen.\n   * New processors working the same way can be created by calling the\n   * processor.\n   *\n   * It’s possible to freeze processors explicitly by calling `.freeze()`.\n   * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n   * `.stringify()`, `.process()`, or `.processSync()` are called.\n   *\n   * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n   *   The current processor.\n   */\n  freeze() {\n    if (this.frozen) {\n      return this\n    }\n\n    // Cast so that we can type plugins easier.\n    // Plugins are supposed to be usable on different processors, not just on\n    // this exact processor.\n    const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n    while (++this.freezeIndex < this.attachers.length) {\n      const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n      if (options[0] === false) {\n        continue\n      }\n\n      if (options[0] === true) {\n        options[0] = undefined\n      }\n\n      const transformer = attacher.call(self, ...options)\n\n      if (typeof transformer === 'function') {\n        this.transformers.use(transformer)\n      }\n    }\n\n    this.frozen = true\n    this.freezeIndex = Number.POSITIVE_INFINITY\n\n    return this\n  }\n\n  /**\n   * Parse text to a syntax tree.\n   *\n   * > **Note**: `parse` freezes the processor if not already *frozen*.\n   *\n   * > **Note**: `parse` performs the parse phase, not the run phase or other\n   * > phases.\n   *\n   * @param {Compatible | undefined} [file]\n   *   file to parse (optional); typically `string` or `VFile`; any value\n   *   accepted as `x` in `new VFile(x)`.\n   * @returns {ParseTree extends undefined ? Node : ParseTree}\n   *   Syntax tree representing `file`.\n   */\n  parse(file) {\n    this.freeze()\n    const realFile = vfile(file)\n    const parser = this.parser || this.Parser\n    assertParser('parse', parser)\n    return parser(String(realFile), realFile)\n  }\n\n  /**\n   * Process the given file as configured on the processor.\n   *\n   * > **Note**: `process` freezes the processor if not already *frozen*.\n   *\n   * > **Note**: `process` performs the parse, run, and stringify phases.\n   *\n   * @overload\n   * @param {Compatible | undefined} file\n   * @param {ProcessCallback<VFileWithOutput<CompileResult>>} done\n   * @returns {undefined}\n   *\n   * @overload\n   * @param {Compatible | undefined} [file]\n   * @returns {Promise<VFileWithOutput<CompileResult>>}\n   *\n   * @param {Compatible | undefined} [file]\n   *   File (optional); typically `string` or `VFile`]; any value accepted as\n   *   `x` in `new VFile(x)`.\n   * @param {ProcessCallback<VFileWithOutput<CompileResult>> | undefined} [done]\n   *   Callback (optional).\n   * @returns {Promise<VFile> | undefined}\n   *   Nothing if `done` is given.\n   *   Otherwise a promise, rejected with a fatal error or resolved with the\n   *   processed file.\n   *\n   *   The parsed, transformed, and compiled value is available at\n   *   `file.value` (see note).\n   *\n   *   > **Note**: unified typically compiles by serializing: most\n   *   > compilers return `string` (or `Uint8Array`).\n   *   > Some compilers, such as the one configured with\n   *   > [`rehype-react`][rehype-react], return other values (in this case, a\n   *   > React tree).\n   *   > If you’re using a compiler that doesn’t serialize, expect different\n   *   > result values.\n   *   >\n   *   > To register custom results in TypeScript, add them to\n   *   > {@linkcode CompileResultMap}.\n   *\n   *   [rehype-react]: https://github.com/rehypejs/rehype-react\n   */\n  process(file, done) {\n    const self = this\n\n    this.freeze()\n    assertParser('process', this.parser || this.Parser)\n    assertCompiler('process', this.compiler || this.Compiler)\n\n    return done ? executor(undefined, done) : new Promise(executor)\n\n    // Note: `void`s needed for TS.\n    /**\n     * @param {((file: VFileWithOutput<CompileResult>) => undefined | void) | undefined} resolve\n     * @param {(error: Error | undefined) => undefined | void} reject\n     * @returns {undefined}\n     */\n    function executor(resolve, reject) {\n      const realFile = vfile(file)\n      // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n      // input of the first transform).\n      const parseTree =\n        /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n          /** @type {unknown} */ (self.parse(realFile))\n        )\n\n      self.run(parseTree, realFile, function (error, tree, file) {\n        if (error || !tree || !file) {\n          return realDone(error)\n        }\n\n        // Assume `TailTree` (the output of the last transform) matches\n        // `CompileTree` (the input of the compiler).\n        const compileTree =\n          /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n            /** @type {unknown} */ (tree)\n          )\n\n        const compileResult = self.stringify(compileTree, file)\n\n        if (looksLikeAValue(compileResult)) {\n          file.value = compileResult\n        } else {\n          file.result = compileResult\n        }\n\n        realDone(error, /** @type {VFileWithOutput<CompileResult>} */ (file))\n      })\n\n      /**\n       * @param {Error | undefined} error\n       * @param {VFileWithOutput<CompileResult> | undefined} [file]\n       * @returns {undefined}\n       */\n      function realDone(error, file) {\n        if (error || !file) {\n          reject(error)\n        } else if (resolve) {\n          resolve(file)\n        } else {\n          assert(done, '`done` is defined if `resolve` is not')\n          done(undefined, file)\n        }\n      }\n    }\n  }\n\n  /**\n   * Process the given file as configured on the processor.\n   *\n   * An error is thrown if asynchronous transforms are configured.\n   *\n   * > **Note**: `processSync` freezes the processor if not already *frozen*.\n   *\n   * > **Note**: `processSync` performs the parse, run, and stringify phases.\n   *\n   * @param {Compatible | undefined} [file]\n   *   File (optional); typically `string` or `VFile`; any value accepted as\n   *   `x` in `new VFile(x)`.\n   * @returns {VFileWithOutput<CompileResult>}\n   *   The processed file.\n   *\n   *   The parsed, transformed, and compiled value is available at\n   *   `file.value` (see note).\n   *\n   *   > **Note**: unified typically compiles by serializing: most\n   *   > compilers return `string` (or `Uint8Array`).\n   *   > Some compilers, such as the one configured with\n   *   > [`rehype-react`][rehype-react], return other values (in this case, a\n   *   > React tree).\n   *   > If you’re using a compiler that doesn’t serialize, expect different\n   *   > result values.\n   *   >\n   *   > To register custom results in TypeScript, add them to\n   *   > {@linkcode CompileResultMap}.\n   *\n   *   [rehype-react]: https://github.com/rehypejs/rehype-react\n   */\n  processSync(file) {\n    /** @type {boolean} */\n    let complete = false\n    /** @type {VFileWithOutput<CompileResult> | undefined} */\n    let result\n\n    this.freeze()\n    assertParser('processSync', this.parser || this.Parser)\n    assertCompiler('processSync', this.compiler || this.Compiler)\n\n    this.process(file, realDone)\n    assertDone('processSync', 'process', complete)\n    assert(result, 'we either bailed on an error or have a tree')\n\n    return result\n\n    /**\n     * @type {ProcessCallback<VFileWithOutput<CompileResult>>}\n     */\n    function realDone(error, file) {\n      complete = true\n      bail(error)\n      result = file\n    }\n  }\n\n  /**\n   * Run *transformers* on a syntax tree.\n   *\n   * > **Note**: `run` freezes the processor if not already *frozen*.\n   *\n   * > **Note**: `run` performs the run phase, not other phases.\n   *\n   * @overload\n   * @param {HeadTree extends undefined ? Node : HeadTree} tree\n   * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n   * @returns {undefined}\n   *\n   * @overload\n   * @param {HeadTree extends undefined ? Node : HeadTree} tree\n   * @param {Compatible | undefined} file\n   * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n   * @returns {undefined}\n   *\n   * @overload\n   * @param {HeadTree extends undefined ? Node : HeadTree} tree\n   * @param {Compatible | undefined} [file]\n   * @returns {Promise<TailTree extends undefined ? Node : TailTree>}\n   *\n   * @param {HeadTree extends undefined ? Node : HeadTree} tree\n   *   Tree to transform and inspect.\n   * @param {(\n   *   RunCallback<TailTree extends undefined ? Node : TailTree> |\n   *   Compatible\n   * )} [file]\n   *   File associated with `node` (optional); any value accepted as `x` in\n   *   `new VFile(x)`.\n   * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} [done]\n   *   Callback (optional).\n   * @returns {Promise<TailTree extends undefined ? Node : TailTree> | undefined}\n   *   Nothing if `done` is given.\n   *   Otherwise, a promise rejected with a fatal error or resolved with the\n   *   transformed tree.\n   */\n  run(tree, file, done) {\n    assertNode(tree)\n    this.freeze()\n\n    const transformers = this.transformers\n\n    if (!done && typeof file === 'function') {\n      done = file\n      file = undefined\n    }\n\n    return done ? executor(undefined, done) : new Promise(executor)\n\n    // Note: `void`s needed for TS.\n    /**\n     * @param {(\n     *   ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n     *   undefined\n     * )} resolve\n     * @param {(error: Error) => undefined | void} reject\n     * @returns {undefined}\n     */\n    function executor(resolve, reject) {\n      assert(\n        typeof file !== 'function',\n        '`file` can’t be a `done` anymore, we checked'\n      )\n      const realFile = vfile(file)\n      transformers.run(tree, realFile, realDone)\n\n      /**\n       * @param {Error | undefined} error\n       * @param {Node} outputTree\n       * @param {VFile} file\n       * @returns {undefined}\n       */\n      function realDone(error, outputTree, file) {\n        const resultingTree =\n          /** @type {TailTree extends undefined ? Node : TailTree} */ (\n            outputTree || tree\n          )\n\n        if (error) {\n          reject(error)\n        } else if (resolve) {\n          resolve(resultingTree)\n        } else {\n          assert(done, '`done` is defined if `resolve` is not')\n          done(undefined, resultingTree, file)\n        }\n      }\n    }\n  }\n\n  /**\n   * Run *transformers* on a syntax tree.\n   *\n   * An error is thrown if asynchronous transforms are configured.\n   *\n   * > **Note**: `runSync` freezes the processor if not already *frozen*.\n   *\n   * > **Note**: `runSync` performs the run phase, not other phases.\n   *\n   * @param {HeadTree extends undefined ? Node : HeadTree} tree\n   *   Tree to transform and inspect.\n   * @param {Compatible | undefined} [file]\n   *   File associated with `node` (optional); any value accepted as `x` in\n   *   `new VFile(x)`.\n   * @returns {TailTree extends undefined ? Node : TailTree}\n   *   Transformed tree.\n   */\n  runSync(tree, file) {\n    /** @type {boolean} */\n    let complete = false\n    /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n    let result\n\n    this.run(tree, file, realDone)\n\n    assertDone('runSync', 'run', complete)\n    assert(result, 'we either bailed on an error or have a tree')\n    return result\n\n    /**\n     * @type {RunCallback<TailTree extends undefined ? Node : TailTree>}\n     */\n    function realDone(error, tree) {\n      bail(error)\n      result = tree\n      complete = true\n    }\n  }\n\n  /**\n   * Compile a syntax tree.\n   *\n   * > **Note**: `stringify` freezes the processor if not already *frozen*.\n   *\n   * > **Note**: `stringify` performs the stringify phase, not the run phase\n   * > or other phases.\n   *\n   * @param {CompileTree extends undefined ? Node : CompileTree} tree\n   *   Tree to compile.\n   * @param {Compatible | undefined} [file]\n   *   File associated with `node` (optional); any value accepted as `x` in\n   *   `new VFile(x)`.\n   * @returns {CompileResult extends undefined ? Value : CompileResult}\n   *   Textual representation of the tree (see note).\n   *\n   *   > **Note**: unified typically compiles by serializing: most compilers\n   *   > return `string` (or `Uint8Array`).\n   *   > Some compilers, such as the one configured with\n   *   > [`rehype-react`][rehype-react], return other values (in this case, a\n   *   > React tree).\n   *   > If you’re using a compiler that doesn’t serialize, expect different\n   *   > result values.\n   *   >\n   *   > To register custom results in TypeScript, add them to\n   *   > {@linkcode CompileResultMap}.\n   *\n   *   [rehype-react]: https://github.com/rehypejs/rehype-react\n   */\n  stringify(tree, file) {\n    this.freeze()\n    const realFile = vfile(file)\n    const compiler = this.compiler || this.Compiler\n    assertCompiler('stringify', compiler)\n    assertNode(tree)\n\n    return compiler(tree, realFile)\n  }\n\n  /**\n   * Configure the processor to use a plugin, a list of usable values, or a\n   * preset.\n   *\n   * If the processor is already using a plugin, the previous plugin\n   * configuration is changed based on the options that are passed in.\n   * In other words, the plugin is not added a second time.\n   *\n   * > **Note**: `use` cannot be called on *frozen* processors.\n   * > Call the processor first to create a new unfrozen processor.\n   *\n   * @example\n   *   There are many ways to pass plugins to `.use()`.\n   *   This example gives an overview:\n   *\n   *   ```js\n   *   import {unified} from 'unified'\n   *\n   *   unified()\n   *     // Plugin with options:\n   *     .use(pluginA, {x: true, y: true})\n   *     // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n   *     .use(pluginA, {y: false, z: true})\n   *     // Plugins:\n   *     .use([pluginB, pluginC])\n   *     // Two plugins, the second with options:\n   *     .use([pluginD, [pluginE, {}]])\n   *     // Preset with plugins and settings:\n   *     .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n   *     // Settings only:\n   *     .use({settings: {position: false}})\n   *   ```\n   *\n   * @template {Array<unknown>} [Parameters=[]]\n   * @template {Node | string | undefined} [Input=undefined]\n   * @template [Output=Input]\n   *\n   * @overload\n   * @param {Preset | null | undefined} [preset]\n   * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n   *\n   * @overload\n   * @param {PluggableList} list\n   * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n   *\n   * @overload\n   * @param {Plugin<Parameters, Input, Output>} plugin\n   * @param {...(Parameters | [boolean])} parameters\n   * @returns {UsePlugin<ParseTree, HeadTree, TailTree, CompileTree, CompileResult, Input, Output>}\n   *\n   * @param {PluggableList | Plugin | Preset | null | undefined} value\n   *   Usable value.\n   * @param {...unknown} parameters\n   *   Parameters, when a plugin is given as a usable value.\n   * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n   *   Current processor.\n   */\n  use(value, ...parameters) {\n    const attachers = this.attachers\n    const namespace = this.namespace\n\n    assertUnfrozen('use', this.frozen)\n\n    if (value === null || value === undefined) {\n      // Empty.\n    } else if (typeof value === 'function') {\n      addPlugin(value, parameters)\n    } else if (typeof value === 'object') {\n      if (Array.isArray(value)) {\n        addList(value)\n      } else {\n        addPreset(value)\n      }\n    } else {\n      throw new TypeError('Expected usable value, not `' + value + '`')\n    }\n\n    return this\n\n    /**\n     * @param {Pluggable} value\n     * @returns {undefined}\n     */\n    function add(value) {\n      if (typeof value === 'function') {\n        addPlugin(value, [])\n      } else if (typeof value === 'object') {\n        if (Array.isArray(value)) {\n          const [plugin, ...parameters] =\n            /** @type {PluginTuple<Array<unknown>>} */ (value)\n          addPlugin(plugin, parameters)\n        } else {\n          addPreset(value)\n        }\n      } else {\n        throw new TypeError('Expected usable value, not `' + value + '`')\n      }\n    }\n\n    /**\n     * @param {Preset} result\n     * @returns {undefined}\n     */\n    function addPreset(result) {\n      if (!('plugins' in result) && !('settings' in result)) {\n        throw new Error(\n          'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n        )\n      }\n\n      addList(result.plugins)\n\n      if (result.settings) {\n        namespace.settings = extend(true, namespace.settings, result.settings)\n      }\n    }\n\n    /**\n     * @param {PluggableList | null | undefined} plugins\n     * @returns {undefined}\n     */\n    function addList(plugins) {\n      let index = -1\n\n      if (plugins === null || plugins === undefined) {\n        // Empty.\n      } else if (Array.isArray(plugins)) {\n        while (++index < plugins.length) {\n          const thing = plugins[index]\n          add(thing)\n        }\n      } else {\n        throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n      }\n    }\n\n    /**\n     * @param {Plugin} plugin\n     * @param {Array<unknown>} parameters\n     * @returns {undefined}\n     */\n    function addPlugin(plugin, parameters) {\n      let index = -1\n      let entryIndex = -1\n\n      while (++index < attachers.length) {\n        if (attachers[index][0] === plugin) {\n          entryIndex = index\n          break\n        }\n      }\n\n      if (entryIndex === -1) {\n        attachers.push([plugin, ...parameters])\n      }\n      // Only set if there was at least a `primary` value, otherwise we’d change\n      // `arguments.length`.\n      else if (parameters.length > 0) {\n        let [primary, ...rest] = parameters\n        const currentPrimary = attachers[entryIndex][1]\n        if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n          primary = extend(true, currentPrimary, primary)\n        }\n\n        attachers[entryIndex] = [plugin, primary, ...rest]\n      }\n    }\n  }\n}\n\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n *   This example shows how a new processor can be created (from `remark`) and linked\n *   to **stdin**(4) and **stdout**(4).\n *\n *   ```js\n *   import process from 'node:process'\n *   import concatStream from 'concat-stream'\n *   import {remark} from 'remark'\n *\n *   process.stdin.pipe(\n *     concatStream(function (buf) {\n *       process.stdout.write(String(remark().processSync(buf)))\n *     })\n *   )\n *   ```\n *\n * @returns\n *   New *unfrozen* processor (`processor`).\n *\n *   This processor is configured to work the same as its ancestor.\n *   When the descendant processor is configured in the future it does not\n *   affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n  if (typeof value !== 'function') {\n    throw new TypeError('Cannot `' + name + '` without `parser`')\n  }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n  if (typeof value !== 'function') {\n    throw new TypeError('Cannot `' + name + '` without `compiler`')\n  }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n  if (frozen) {\n    throw new Error(\n      'Cannot call `' +\n        name +\n        '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n    )\n  }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n  // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n  // type-coverage:ignore-next-line\n  if (!isPlainObj(node) || typeof node.type !== 'string') {\n    throw new TypeError('Expected node, got `' + node + '`')\n    // Fine.\n  }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n  if (!complete) {\n    throw new Error(\n      '`' + name + '` finished async. Use `' + asyncName + '` instead'\n    )\n  }\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n  return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n  return Boolean(\n    value &&\n      typeof value === 'object' &&\n      'message' in value &&\n      'messages' in value\n  )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is Value}\n */\nfunction looksLikeAValue(value) {\n  return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n *   thing.\n * @returns {value is Uint8Array}\n *   Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n  return Boolean(\n    value &&\n      typeof value === 'object' &&\n      'byteLength' in value &&\n      'byteOffset' in value\n  )\n}\n","// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array<any>) => void} Callback\n *   Callback.\n *\n * @typedef {(...input: Array<any>) => any} Middleware\n *   Ware.\n *\n * @typedef Pipeline\n *   Pipeline.\n * @property {Run} run\n *   Run the pipeline.\n * @property {Use} use\n *   Add middleware.\n *\n * @typedef {(...input: Array<any>) => void} Run\n *   Call all middleware.\n *\n *   Calls `done` on completion with either an error or the output of the\n *   last middleware.\n *\n *   > 👉 **Note**: as the length of input defines whether async functions get a\n *   > `next` function,\n *   > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n *   Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n *   Pipeline.\n */\nexport function trough() {\n  /** @type {Array<Middleware>} */\n  const fns = []\n  /** @type {Pipeline} */\n  const pipeline = {run, use}\n\n  return pipeline\n\n  /** @type {Run} */\n  function run(...values) {\n    let middlewareIndex = -1\n    /** @type {Callback} */\n    const callback = values.pop()\n\n    if (typeof callback !== 'function') {\n      throw new TypeError('Expected function as last argument, not ' + callback)\n    }\n\n    next(null, ...values)\n\n    /**\n     * Run the next `fn`, or we’re done.\n     *\n     * @param {Error | null | undefined} error\n     * @param {Array<any>} output\n     */\n    function next(error, ...output) {\n      const fn = fns[++middlewareIndex]\n      let index = -1\n\n      if (error) {\n        callback(error)\n        return\n      }\n\n      // Copy non-nullish input into values.\n      while (++index < values.length) {\n        if (output[index] === null || output[index] === undefined) {\n          output[index] = values[index]\n        }\n      }\n\n      // Save the newly created `output` for the next call.\n      values = output\n\n      // Next or done.\n      if (fn) {\n        wrap(fn, next)(...output)\n      } else {\n        callback(null, ...output)\n      }\n    }\n  }\n\n  /** @type {Use} */\n  function use(middelware) {\n    if (typeof middelware !== 'function') {\n      throw new TypeError(\n        'Expected `middelware` to be a function, not ' + middelware\n      )\n    }\n\n    fns.push(middelware)\n    return pipeline\n  }\n}\n\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n *   returns a promise that is rejected,\n *   or calls the given `done` function with an error,\n *   `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n *   that value is the main output value\n * * if `middleware` calls `done`,\n *   all non-nullish values except for the first one (the error) overwrite the\n *   output values\n *\n * @param {Middleware} middleware\n *   Function to wrap.\n * @param {Callback} callback\n *   Callback called with the output of `middleware`.\n * @returns {Run}\n *   Wrapped middleware.\n */\nexport function wrap(middleware, callback) {\n  /** @type {boolean} */\n  let called\n\n  return wrapped\n\n  /**\n   * Call `middleware`.\n   * @this {any}\n   * @param {Array<any>} parameters\n   * @returns {void}\n   */\n  function wrapped(...parameters) {\n    const fnExpectsCallback = middleware.length > parameters.length\n    /** @type {any} */\n    let result\n\n    if (fnExpectsCallback) {\n      parameters.push(done)\n    }\n\n    try {\n      result = middleware.apply(this, parameters)\n    } catch (error) {\n      const exception = /** @type {Error} */ (error)\n\n      // Well, this is quite the pickle.\n      // `middleware` received a callback and called it synchronously, but that\n      // threw an error.\n      // The only thing left to do is to throw the thing instead.\n      if (fnExpectsCallback && called) {\n        throw exception\n      }\n\n      return done(exception)\n    }\n\n    if (!fnExpectsCallback) {\n      if (result && result.then && typeof result.then === 'function') {\n        result.then(then, done)\n      } else if (result instanceof Error) {\n        done(result)\n      } else {\n        then(result)\n      }\n    }\n  }\n\n  /**\n   * Call `callback`, only once.\n   *\n   * @type {Callback}\n   */\n  function done(error, ...output) {\n    if (!called) {\n      called = true\n      callback(error, ...output)\n    }\n  }\n\n  /**\n   * Call `done` with one value.\n   *\n   * @param {any} [value]\n   */\n  function then(value) {\n    done(null, value)\n  }\n}\n","// Register `Raw` in tree:\n/// <reference types=\"mdast-util-to-hast\" />\n\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-to-jsx-runtime').Components} JsxRuntimeComponents\n * @typedef {import('remark-rehype').Options} RemarkRehypeOptions\n * @typedef {import('unist-util-visit').BuildVisitor<Root>} Visitor\n * @typedef {import('unified').PluggableList} PluggableList\n */\n\n/**\n * @callback AllowElement\n *   Filter elements.\n * @param {Readonly<Element>} element\n *   Element to check.\n * @param {number} index\n *   Index of `element` in `parent`.\n * @param {Readonly<Parents> | undefined} parent\n *   Parent of `element`.\n * @returns {boolean | null | undefined}\n *   Whether to allow `element` (default: `false`).\n *\n * @typedef {Partial<JsxRuntimeComponents>} Components\n *   Map tag names to components.\n *\n * @typedef Deprecation\n *   Deprecation.\n * @property {string} from\n *   Old field.\n * @property {string} id\n *   ID in readme.\n * @property {keyof Options} [to]\n *   New field.\n *\n * @typedef Options\n *   Configuration.\n * @property {AllowElement | null | undefined} [allowElement]\n *   Filter elements (optional);\n *   `allowedElements` / `disallowedElements` is used first.\n * @property {ReadonlyArray<string> | null | undefined} [allowedElements]\n *   Tag names to allow (default: all tag names);\n *   cannot combine w/ `disallowedElements`.\n * @property {string | null | undefined} [children]\n *   Markdown.\n * @property {string | null | undefined} [className]\n *   Wrap in a `div` with this class name.\n * @property {Components | null | undefined} [components]\n *   Map tag names to components.\n * @property {ReadonlyArray<string> | null | undefined} [disallowedElements]\n *   Tag names to disallow (default: `[]`);\n *   cannot combine w/ `allowedElements`.\n * @property {PluggableList | null | undefined} [rehypePlugins]\n *   List of rehype plugins to use.\n * @property {PluggableList | null | undefined} [remarkPlugins]\n *   List of remark plugins to use.\n * @property {Readonly<RemarkRehypeOptions> | null | undefined} [remarkRehypeOptions]\n *   Options to pass through to `remark-rehype`.\n * @property {boolean | null | undefined} [skipHtml=false]\n *   Ignore HTML in markdown completely (default: `false`).\n * @property {boolean | null | undefined} [unwrapDisallowed=false]\n *   Extract (unwrap) what’s in disallowed elements (default: `false`);\n *   normally when say `strong` is not allowed, it and it’s children are dropped,\n *   with `unwrapDisallowed` the element itself is replaced by its children.\n * @property {UrlTransform | null | undefined} [urlTransform]\n *   Change URLs (default: `defaultUrlTransform`)\n *\n * @callback UrlTransform\n *   Transform all URLs.\n * @param {string} url\n *   URL.\n * @param {string} key\n *   Property name (example: `'href'`).\n * @param {Readonly<Element>} node\n *   Node.\n * @returns {string | null | undefined}\n *   Transformed URL (optional).\n */\n\nimport {unreachable} from 'devlop'\nimport {toJsxRuntime} from 'hast-util-to-jsx-runtime'\nimport {urlAttributes} from 'html-url-attributes'\n// @ts-expect-error: untyped.\nimport {Fragment, jsx, jsxs} from 'react/jsx-runtime'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport {unified} from 'unified'\nimport {visit} from 'unist-util-visit'\nimport {VFile} from 'vfile'\n\nconst changelog =\n  'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {PluggableList} */\nconst emptyPlugins = []\n/** @type {Readonly<RemarkRehypeOptions>} */\nconst emptyRemarkRehypeOptions = {allowDangerousHtml: true}\nconst safeProtocol = /^(https?|ircs?|mailto|xmpp)$/i\n\n// Mutable because we `delete` any time it’s used and a message is sent.\n/** @type {ReadonlyArray<Readonly<Deprecation>>} */\nconst deprecations = [\n  {from: 'astPlugins', id: 'remove-buggy-html-in-markdown-parser'},\n  {from: 'allowDangerousHtml', id: 'remove-buggy-html-in-markdown-parser'},\n  {\n    from: 'allowNode',\n    id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n    to: 'allowElement'\n  },\n  {\n    from: 'allowedTypes',\n    id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n    to: 'allowedElements'\n  },\n  {\n    from: 'disallowedTypes',\n    id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n    to: 'disallowedElements'\n  },\n  {from: 'escapeHtml', id: 'remove-buggy-html-in-markdown-parser'},\n  {from: 'includeElementIndex', id: '#remove-includeelementindex'},\n  {\n    from: 'includeNodeIndex',\n    id: 'change-includenodeindex-to-includeelementindex'\n  },\n  {from: 'linkTarget', id: 'remove-linktarget'},\n  {from: 'plugins', id: 'change-plugins-to-remarkplugins', to: 'remarkPlugins'},\n  {from: 'rawSourcePos', id: '#remove-rawsourcepos'},\n  {from: 'renderers', id: 'change-renderers-to-components', to: 'components'},\n  {from: 'source', id: 'change-source-to-children', to: 'children'},\n  {from: 'sourcePos', id: '#remove-sourcepos'},\n  {from: 'transformImageUri', id: '#add-urltransform', to: 'urlTransform'},\n  {from: 'transformLinkUri', id: '#add-urltransform', to: 'urlTransform'}\n]\n\n/**\n * Component to render markdown.\n *\n * @param {Readonly<Options>} options\n *   Props.\n * @returns {JSX.Element}\n *   React element.\n */\nexport function Markdown(options) {\n  const allowedElements = options.allowedElements\n  const allowElement = options.allowElement\n  const children = options.children || ''\n  const className = options.className\n  const components = options.components\n  const disallowedElements = options.disallowedElements\n  const rehypePlugins = options.rehypePlugins || emptyPlugins\n  const remarkPlugins = options.remarkPlugins || emptyPlugins\n  const remarkRehypeOptions = options.remarkRehypeOptions\n    ? {...options.remarkRehypeOptions, ...emptyRemarkRehypeOptions}\n    : emptyRemarkRehypeOptions\n  const skipHtml = options.skipHtml\n  const unwrapDisallowed = options.unwrapDisallowed\n  const urlTransform = options.urlTransform || defaultUrlTransform\n\n  const processor = unified()\n    .use(remarkParse)\n    .use(remarkPlugins)\n    .use(remarkRehype, remarkRehypeOptions)\n    .use(rehypePlugins)\n\n  const file = new VFile()\n\n  if (typeof children === 'string') {\n    file.value = children\n  } else {\n    unreachable(\n      'Unexpected value `' +\n        children +\n        '` for `children` prop, expected `string`'\n    )\n  }\n\n  if (allowedElements && disallowedElements) {\n    unreachable(\n      'Unexpected combined `allowedElements` and `disallowedElements`, expected one or the other'\n    )\n  }\n\n  for (const deprecation of deprecations) {\n    if (Object.hasOwn(options, deprecation.from)) {\n      unreachable(\n        'Unexpected `' +\n          deprecation.from +\n          '` prop, ' +\n          (deprecation.to\n            ? 'use `' + deprecation.to + '` instead'\n            : 'remove it') +\n          ' (see <' +\n          changelog +\n          '#' +\n          deprecation.id +\n          '> for more info)'\n      )\n    }\n  }\n\n  const mdastTree = processor.parse(file)\n  /** @type {Nodes} */\n  let hastTree = processor.runSync(mdastTree, file)\n\n  // Wrap in `div` if there’s a class name.\n  if (className) {\n    hastTree = {\n      type: 'element',\n      tagName: 'div',\n      properties: {className},\n      // Assume no doctypes.\n      children: /** @type {Array<ElementContent>} */ (\n        hastTree.type === 'root' ? hastTree.children : [hastTree]\n      )\n    }\n  }\n\n  visit(hastTree, transform)\n\n  return toJsxRuntime(hastTree, {\n    Fragment,\n    components,\n    ignoreInvalidStyle: true,\n    jsx,\n    jsxs,\n    passKeys: true,\n    passNode: true\n  })\n\n  /** @type {Visitor} */\n  function transform(node, index, parent) {\n    if (node.type === 'raw' && parent && typeof index === 'number') {\n      if (skipHtml) {\n        parent.children.splice(index, 1)\n      } else {\n        parent.children[index] = {type: 'text', value: node.value}\n      }\n\n      return index\n    }\n\n    if (node.type === 'element') {\n      /** @type {string} */\n      let key\n\n      for (key in urlAttributes) {\n        if (\n          Object.hasOwn(urlAttributes, key) &&\n          Object.hasOwn(node.properties, key)\n        ) {\n          const value = node.properties[key]\n          const test = urlAttributes[key]\n          if (test === null || test.includes(node.tagName)) {\n            node.properties[key] = urlTransform(String(value || ''), key, node)\n          }\n        }\n      }\n    }\n\n    if (node.type === 'element') {\n      let remove = allowedElements\n        ? !allowedElements.includes(node.tagName)\n        : disallowedElements\n        ? disallowedElements.includes(node.tagName)\n        : false\n\n      if (!remove && allowElement && typeof index === 'number') {\n        remove = !allowElement(node, index, parent)\n      }\n\n      if (remove && parent && typeof index === 'number') {\n        if (unwrapDisallowed && node.children) {\n          parent.children.splice(index, 1, ...node.children)\n        } else {\n          parent.children.splice(index, 1)\n        }\n\n        return index\n      }\n    }\n  }\n}\n\n/**\n * Make a URL safe.\n *\n * @satisfies {UrlTransform}\n * @param {string} value\n *   URL.\n * @returns {string}\n *   Safe URL.\n */\nexport function defaultUrlTransform(value) {\n  // Same as:\n  // <https://github.com/micromark/micromark/blob/929275e/packages/micromark-util-sanitize-uri/dev/index.js#L34>\n  // But without the `encode` part.\n  const colon = value.indexOf(':')\n  const questionMark = value.indexOf('?')\n  const numberSign = value.indexOf('#')\n  const slash = value.indexOf('/')\n\n  if (\n    // If there is no protocol, it’s relative.\n    colon < 0 ||\n    // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n    (slash > -1 && colon > slash) ||\n    (questionMark > -1 && colon > questionMark) ||\n    (numberSign > -1 && colon > numberSign) ||\n    // It is a protocol, it should be allowed.\n    safeProtocol.test(value.slice(0, colon))\n  ) {\n    return value\n  }\n\n  return ''\n}\n","import React from \"react\";\nimport { graphql, useFragment } from \"react-relay\";\nimport ReactMarkdown from \"react-markdown\";\nimport type { Options } from \"react-markdown\";\n\nimport { TextBlockData$key } from \"./__generated__/TextBlockData.graphql\";\nimport { COLORS } from \"../../color\";\n\n\nconst fragment = graphql`\n    fragment TextBlockData on TextBlock {\n        content\n    }\n`;\n\ntype ByQueryProps = {\n    fragRef: TextBlockData$key;\n};\n\nexport const TextBlockByQuery: React.FC<ByQueryProps> = ({ fragRef }) => {\n    const { content } = useFragment(fragment, fragRef);\n    return <TextBlock {...{ content }} />;\n};\n\ntype Props = {\n    content: string;\n};\n\n// We don't just want to allow everything, so here we explicitly list what we\n// support. Notably missing:\n//\n// - headings (if we allow them, we need to map `#` to h2 or h3 so that they\n//   don't interfere with other headings on the page.)\nconst ALLOWED_MARKDOWN_TAGS = [\n    \"p\", \"blockquote\", \"pre\", \"ul\", \"ol\", \"li\", \"a\", \"em\", \"strong\", \"code\", \"hr\", \"img\",\n];\n\nconst CODE_BACKGROUND_COLOR = COLORS.neutral10;\n\n// We override some components emitted by the Markdown parser to add CSS.\nconst MARKDOWN_COMPONENTS: Options[\"components\"] = {\n    p: ({ node, ...props }) => <p\n        css={{\n            margin: \"16px 0\",\n            maxWidth: 800,\n        }}\n        {...props}\n    />,\n    blockquote: ({ node, ...props }) => <blockquote\n        css={{\n            borderLeft: `4px solid ${COLORS.neutral25}`,\n            padding: \"2px 8px\",\n            \"& > *:first-of-type\": { marginTop: 0 },\n            \"& > *:last-of-type\": { marginBottom: 0 },\n        }}\n        {...props}\n    />,\n    code: ({ node, className, ...props }) => <code\n        css={{\n            backgroundColor: CODE_BACKGROUND_COLOR,\n            padding: \"1px 3px\",\n            borderRadius: \"4px\",\n        }}\n        {...props}\n    />,\n    pre: ({ node, ...props }) => <pre\n        css={{\n            backgroundColor: CODE_BACKGROUND_COLOR,\n            padding: \"8px\",\n            overflowX: \"auto\",\n            maxWidth: \"100%\",\n        }}\n        {...props}\n    />,\n    img: ({ node, ...props }) => <img\n        css={{\n            maxWidth: \"100%\",\n            display: \"block\",\n        }}\n        {...props}\n    />,\n};\n\nexport const TextBlock: React.FC<Props> = ({ content }) => (\n    <div css={{\n        maxWidth: 1200,\n        \"& > *:first-of-type\": { marginTop: 0 },\n        \"& > *:last-of-type\": { marginBottom: 0 },\n        color: COLORS.neutral80,\n        a: {\n            borderRadius: 4,\n            outlineOffset: 1,\n        },\n    }}>\n        <ReactMarkdown allowedElements={ALLOWED_MARKDOWN_TAGS} components={MARKDOWN_COMPONENTS}>\n            {content}\n        </ReactMarkdown>\n    </div>\n);\n","import React, {\n    PropsWithChildren,\n    ReactNode,\n    createContext,\n    useContext,\n    useEffect,\n    useId,\n    useRef,\n    useState,\n} from \"react\";\nimport { Trans, useTranslation } from \"react-i18next\";\nimport type { i18n } from \"i18next\";\nimport {\n    match, unreachable, ProtoButton, screenWidthAtMost, screenWidthAbove,\n    useColorScheme, Floating, FloatingHandle, useFloatingItemProps, bug,\n} from \"@opencast/appkit\";\nimport { keyframes } from \"@emotion/react\";\nimport { IconType } from \"react-icons\";\nimport {\n    LuColumns, LuList, LuChevronLeft, LuChevronRight, LuPlay, LuLayoutGrid, LuAlertCircle, LuInfo,\n} from \"react-icons/lu\";\nimport { graphql, readInlineData } from \"react-relay\";\n\nimport { VideoListLayout } from \"./__generated__/SeriesBlockData.graphql\";\nimport {\n    VideoListEventData$data,\n    VideoListEventData$key,\n} from \"./__generated__/VideoListEventData.graphql\";\nimport { PlaylistBlockPlaylistData$data } from \"./__generated__/PlaylistBlockPlaylistData.graphql\";\nimport { keyOfId } from \"../../util\";\nimport { Link } from \"../../router\";\nimport {\n    BaseThumbnailReplacement, isPastLiveEvent, isUpcomingLiveEvent, Thumbnail,\n    ThumbnailOverlayContainer,\n} from \"../Video\";\nimport { RelativeDate } from \"../time\";\nimport { CollapsibleDescription, SmallDescription } from \"../metadata\";\nimport { darkModeBoxShadow, ellipsisOverflowCss, focusStyle } from \"..\";\nimport { COLORS } from \"../../color\";\nimport { FloatingBaseMenu } from \"../FloatingBaseMenu\";\nimport { isRealUser, useUser } from \"../../User\";\nimport { LoginLink } from \"../../routes/util\";\n\n\n\n\n// This uses `@inline` because the fragment is used in different situations,\n// where using `useFragment` is very tricky (or maybe even impossible).\nexport const videoListEventFragment = graphql`\n    fragment VideoListEventData on AuthorizedEvent @inline {\n        id\n        title\n        created\n        creators\n        isLive\n        description\n        series { title id }\n        syncedData {\n            duration\n            thumbnail\n            startTime\n            endTime\n            tracks { resolution }\n        }\n    }\n`;\ntype Event = VideoListEventData$data;\n\n\n// ==============================================================================================\n// ===== Main components defining UI\n// ==============================================================================================\n\ntype OrderContext = {\n    eventOrder: Order;\n    setEventOrder: (newOrder: Order) => void;\n    allowOriginalOrder: boolean;\n};\n\nconst OrderContext = createContext<OrderContext | null>(null);\n\nconst VIDEO_GRID_BREAKPOINT = 600;\n\ntype VideoListItem = Event | \"missing\" | \"unauthorized\";\n\ntype Order = \"ORIGINAL\" | \"AZ\" | \"ZA\" | \"NEW_TO_OLD\" | \"OLD_TO_NEW\";\n\ntype Entries = Extract<\n    PlaylistBlockPlaylistData$data,\n    { __typename: \"AuthorizedPlaylist\" }\n>[\"entries\"];\n\nexport type VideoListBlockProps = {\n    listId?: string;\n    basePath: string;\n    activeEventId?: string;\n    allowOriginalOrder: boolean;\n    initialOrder: Order;\n    initialLayout?: VideoListLayout;\n    title?: string;\n    description?: string;\n    isPlaylist?: boolean;\n    listEntries: Entries;\n}\n\nexport const VideoListBlock: React.FC<VideoListBlockProps> = ({\n    listId,\n    basePath,\n    activeEventId,\n    allowOriginalOrder,\n    initialOrder,\n    initialLayout = \"GALLERY\",\n    title,\n    description,\n    isPlaylist = false,\n    listEntries,\n}) => {\n    const { t, i18n } = useTranslation();\n    const [eventOrder, setEventOrder] = useState<Order>(initialOrder);\n    const user = useUser();\n\n    const items = listEntries.map(entry => {\n        if (entry.__typename === \"AuthorizedEvent\") {\n            const out = readInlineData<VideoListEventData$key>(videoListEventFragment, entry);\n            return out;\n        } else if (entry.__typename === \"Missing\") {\n            return \"missing\";\n        } else if (entry.__typename === \"NotAllowed\") {\n            return \"unauthorized\";\n        } else {\n            return unreachable();\n        }\n    });\n\n    const {\n        mainItems,\n        upcomingLiveEvents,\n        missingItems,\n        unauthorizedItems,\n    } = orderItems(items, eventOrder, i18n);\n\n    const renderEvents = (events: readonly VideoListItem[]) => (\n        <Items\n            basePath={basePath}\n            showSeries={isPlaylist}\n            {...{ listId }}\n            items={events.map(item => ({\n                item,\n                active: item !== \"missing\"\n                    && item !== \"unauthorized\"\n                    && item.id === activeEventId,\n            }))}\n        />\n    );\n\n    const eventsNotEmpty = items.length > 0;\n\n    return <OrderContext.Provider value={{ eventOrder, setEventOrder, allowOriginalOrder }}>\n        <VideoListBlockContainer\n            showViewOptions={eventsNotEmpty}\n            {...{ title, description, initialLayout, isPlaylist }}\n        >\n            {(mainItems.length === 0 && upcomingLiveEvents.length === 0)\n                ? <div css={{ padding: 14 }}>{t(\"videolist-block.no-videos\")}</div>\n                : <>\n                    {upcomingLiveEvents.length > 1 && (\n                        <UpcomingEventsGrid count={upcomingLiveEvents.length}>\n                            {renderEvents(upcomingLiveEvents)}\n                        </UpcomingEventsGrid>\n                    )}\n                    {renderEvents(mainItems)}\n                </>\n            }\n            {missingItems + unauthorizedItems > 0 && <div css={{ marginTop: 16 }}>\n                {missingItems > 0 && <HiddenItemsInfo>\n                    {t(\"videolist-block.hidden-items.missing\", { count: missingItems })}\n                </HiddenItemsInfo>}\n                {unauthorizedItems > 0 && <HiddenItemsInfo>\n                    <span>\n                        {t(\"videolist-block.hidden-items.unauthorized\", {\n                            count: unauthorizedItems,\n                        })}\n                        &nbsp;\n                        {!isRealUser(user) && <>\n                            <Trans i18nKey=\"errors.might-need-to-login-link\">\n                                You might need to <LoginLink />\n                            </Trans>\n                        </>}\n                    </span>\n                </HiddenItemsInfo>}\n            </div>}\n        </VideoListBlockContainer>\n    </OrderContext.Provider>;\n};\n\nconst HiddenItemsInfo: React.FC<PropsWithChildren> = ({ children }) => <div css={{\n    fontSize: 14,\n    marginTop: 8,\n    backgroundColor: COLORS.neutral15,\n    padding: \"8px 16px\",\n    borderRadius: 4,\n    display: \"flex\",\n    gap: 16,\n    alignItems: \"center\",\n}}>\n    <LuInfo size={18} />\n    {children}\n</div>;\n\ntype OrderedItems = {\n    mainItems: readonly VideoListItem[];\n    upcomingLiveEvents: Event[];\n    missingItems: number;\n    unauthorizedItems: number;\n};\n\nconst orderItems = (\n    items: readonly VideoListItem[],\n    eventOrder: Order,\n    i18n: i18n,\n): OrderedItems => {\n    if (eventOrder === \"ORIGINAL\") {\n        return {\n            mainItems: items,\n            upcomingLiveEvents: [],\n            missingItems: 0,\n            unauthorizedItems: 0,\n        };\n    }\n\n    const upcomingLiveEvents: Event[] = [];\n    const mainItems: VideoListItem[] = [];\n    let missingItems = 0;\n    let unauthorizedItems = 0;\n    for (const event of items) {\n        // When the order isn't \"original\", then we don't show special items\n        // inline, but as a separate note at the bottom.\n        if (event === \"missing\") {\n            missingItems += 1;\n            continue;\n        }\n        if (event === \"unauthorized\") {\n            unauthorizedItems += 1;\n            continue;\n        }\n\n        if (isUpcomingLiveEvent(event.syncedData?.startTime ?? null, event.isLive)) {\n            upcomingLiveEvents.push(event);\n        } else if (!isPastLiveEvent(event.syncedData?.endTime ?? null, event.isLive)) {\n            mainItems.push(event);\n        }\n    }\n\n    const timeMs = (event: Event) =>\n        new Date(event.syncedData?.startTime ?? event.created).getTime();\n\n    const collator = new Intl.Collator(i18n.language);\n    const compareEvents = (a: Event, b: Event, reverseTime = false) =>\n        match(eventOrder, {\n            \"NEW_TO_OLD\": () => reverseTime ? timeMs(a) - timeMs(b) : timeMs(b) - timeMs(a),\n            \"OLD_TO_NEW\": () => reverseTime ? timeMs(b) - timeMs(a) : timeMs(a) - timeMs(b),\n            \"AZ\": () => collator.compare(a.title, b.title),\n            \"ZA\": () => collator.compare(b.title, a.title),\n        }, unreachable);\n\n\n    mainItems.sort((a, b) => {\n        // Sort all missing and unauthorized items last. The `return` is\n        // basically unreachable code, so it could also be replaced by\n        // `unreachable`.\n        const aSpecial = a === \"missing\" || a === \"unauthorized\";\n        const bSpecial = b === \"missing\" || b === \"unauthorized\";\n        if (aSpecial || bSpecial) {\n            return +aSpecial - +bSpecial;\n        }\n\n        // Sort all live events before non-live events.\n        if (a.isLive !== b.isLive) {\n            return +b.isLive - +a.isLive;\n        }\n\n        return compareEvents(a, b);\n    });\n\n    // If there is only one upcoming event, it doesn't need an extra box or ordering.\n    if (upcomingLiveEvents.length === 1) {\n        mainItems.unshift(upcomingLiveEvents[0]);\n    } else {\n        upcomingLiveEvents.sort((a, b) => compareEvents(a, b, true));\n    }\n\n    return { mainItems, upcomingLiveEvents, missingItems, unauthorizedItems };\n};\n\n\ntype VideoListBlockContainerProps = {\n    title?: string;\n    description?: string | null;\n    children: ReactNode;\n    showViewOptions: boolean;\n    initialLayout?: VideoListLayout;\n    isPlaylist?: boolean;\n};\n\ntype LayoutContext = {\n    layoutState: VideoListLayout;\n    setLayoutState: (layout: VideoListLayout) => void;\n};\n\nconst LayoutContext = createContext<LayoutContext>({\n    layoutState: \"GALLERY\",\n    setLayoutState: () => {},\n});\n\nexport const VideoListBlockContainer: React.FC<VideoListBlockContainerProps> = (\n    { title, description, children, showViewOptions, initialLayout = \"GALLERY\" },\n) => {\n    const [layoutState, setLayoutState] = useState<VideoListLayout>(initialLayout);\n    const isDark = useColorScheme().scheme === \"dark\";\n\n    return <LayoutContext.Provider value={{ layoutState, setLayoutState }}>\n        <div css={{\n            marginTop: 24,\n            padding: 12,\n            backgroundColor: COLORS.neutral10,\n            borderRadius: 10,\n            ...isDark && darkModeBoxShadow,\n        }}>\n            <>\n                <div css={{\n                    display: \"flex\",\n                    justifyContent: \"space-between\",\n                    ...title && description && { flexDirection: \"column\" },\n                    [screenWidthAtMost(VIDEO_GRID_BREAKPOINT)]: {\n                        flexWrap: \"wrap\",\n                    },\n                }}>\n                    {title && <h2 css={{\n                        display: \"inline-block\",\n                        padding: \"8px 12px\",\n                        color: isDark ? COLORS.neutral90 : COLORS.neutral80,\n                        fontSize: 20,\n                        lineHeight: 1.3,\n                    }}>{title}</h2>}\n                    <div css={{\n                        display: \"flex\",\n                        flexDirection: \"row\",\n                        flexGrow: 1,\n                        [screenWidthAtMost(VIDEO_GRID_BREAKPOINT)]: {\n                            flexWrap: \"wrap\",\n                        },\n                    }}>\n                        {description && <CollapsibleDescription\n                            type=\"series\"\n                            bottomPadding={32}\n                            {...{ description }}\n                        />}\n                        {showViewOptions && <div css={{\n                            display: \"flex\",\n                            alignItems: \"center\",\n                            alignSelf: description ? \"flex-end\" : \"flex-start\",\n                            marginLeft: \"auto\",\n                            fontSize: 14,\n                            gap: 16,\n                            padding: 5,\n                        }}>\n                            <OrderMenu />\n                            <LayoutMenu />\n                        </div>}\n                    </div>\n                </div>\n                {description && <hr css={{ margin: \"12px 6px 20px 6px\" }} />}\n            </>\n            {children}\n        </div>\n    </LayoutContext.Provider>;\n};\n\n\n\n// ==============================================================================================\n// ===== The menus for choosing order and layout mode\n// ==============================================================================================\n\n\nconst OrderMenu: React.FC = () => {\n    const { t } = useTranslation();\n    const ref = useRef<FloatingHandle>(null);\n    const order = useContext(OrderContext) ?? bug(\"order context not defined for videolist block\");\n\n    const triggerContent = match(order.eventOrder, {\n        \"ORIGINAL\": () => t(\"videolist-block.settings.original\"),\n        \"NEW_TO_OLD\": () => t(\"videolist-block.settings.new-to-old\"),\n        \"OLD_TO_NEW\": () => t(\"videolist-block.settings.old-to-new\"),\n        \"AZ\": () => t(\"videolist-block.settings.a-z\"),\n        \"ZA\": () => t(\"videolist-block.settings.z-a\"),\n    });\n\n    return <FloatingBaseMenu\n        {...{ ref }}\n        label={t(\"videolist-block.settings.order-label\")}\n        triggerContent={<>{triggerContent}</>}\n        list={<List type=\"order\" close={() => ref.current?.close()} />}\n    />;\n};\n\nconst LayoutMenu: React.FC = () => {\n    const { t } = useTranslation();\n    const state = useContext(LayoutContext);\n    const ref = useRef<FloatingHandle>(null);\n\n    const icon = match(state.layoutState, {\n        SLIDER: () => <LuColumns />,\n        GALLERY: () => <LuLayoutGrid />,\n        LIST: () => <LuList />,\n        \"%future added value\": () => unreachable(),\n    });\n\n    const triggerContent = (\n        <div css={{\n            display: \"flex\",\n            alignItems: \"center\",\n            svg: { fontSize: 22, color: COLORS.neutral60 },\n        }}>{icon}</div>\n    );\n\n    return <FloatingBaseMenu\n        {...{ ref, triggerContent }}\n        label={t(\"videolist-block.settings.layout-label\")}\n        list={<List type=\"layout\" close={() => ref.current?.close()} />}\n    />;\n};\n\n\ntype ListProps = {\n    type: \"layout\" | \"order\";\n    close: () => void;\n};\n\nconst List: React.FC<ListProps> = ({ type, close }) => {\n    const { t } = useTranslation();\n    const isDark = useColorScheme().scheme === \"dark\";\n    const { layoutState, setLayoutState } = useContext(LayoutContext);\n    const { eventOrder, setEventOrder, allowOriginalOrder }\n        = useContext(OrderContext) ?? bug(\"missing order context\");\n    const itemProps = useFloatingItemProps();\n    const itemId = useId();\n\n    const listStyle = {\n        minWidth: 125,\n        div: {\n            cursor: \"default\",\n            fontSize: 12,\n            padding: \"8px 14px 4px 14px\",\n            color: COLORS.neutral60,\n        },\n        ul: {\n            listStyle: \"none\",\n            margin: 0,\n            padding: 0,\n        },\n    };\n\n    const handleBlur = (event: React.FocusEvent<HTMLUListElement, Element>) => {\n        if (!event.currentTarget.contains(event.relatedTarget as HTMLUListElement)) {\n            close();\n        }\n    };\n\n    type LayoutTranslationKey = \"slider\" | \"gallery\" | \"list\";\n    const layoutItems: [\n        VideoListLayout,\n        LayoutTranslationKey,\n        IconType\n    ][] = [\n        [\"SLIDER\", \"slider\", LuColumns],\n        [\"GALLERY\", \"gallery\", LuLayoutGrid],\n        [\"LIST\", \"list\", LuList],\n    ];\n\n    type OrderTranslationKey = \"original\" | \"new-to-old\" | \"old-to-new\" | \"a-z\" | \"z-a\";\n    const orderItems: [Order, OrderTranslationKey][] = [\n        [\"NEW_TO_OLD\", \"new-to-old\"],\n        [\"OLD_TO_NEW\", \"old-to-new\"],\n        [\"AZ\", \"a-z\"],\n        [\"ZA\", \"z-a\"],\n    ];\n    if (allowOriginalOrder) {\n        orderItems.unshift([\"ORIGINAL\", \"original\"]);\n    }\n\n    const sharedProps = (key: LayoutTranslationKey | OrderTranslationKey) => ({\n        close: close,\n        label: t(`videolist-block.settings.${key}`),\n    });\n\n    const list = match(type, {\n        layout: () => <>\n            <div>{t(\"videolist-block.settings.layout\")}</div>\n            <ul role=\"menu\" onBlur={handleBlur}>\n                {layoutItems.map(([layout, translationKey, icon], index) => <MenuItem\n                    key={`${itemId}-${layout}`}\n                    disabled={layoutState === layout}\n                    Icon={icon}\n                    {...sharedProps(translationKey)}\n                    {...itemProps(index)}\n                    onClick={() => setLayoutState(layout)}\n                />)}\n            </ul>\n        </>,\n        order: () => <>\n            <div>{t(\"videolist-block.settings.order\")}</div>\n            <ul role=\"menu\" onBlur={handleBlur}>\n                {orderItems.map(([order, orderKey], index) => <MenuItem\n                    key={`${itemId}-${order}`}\n                    disabled={eventOrder === order}\n                    {...sharedProps(orderKey)}\n                    {...itemProps(index)}\n                    onClick={() => setEventOrder(order)}\n                />)}\n            </ul>\n        </>,\n    });\n\n    return <Floating\n        backgroundColor={isDark ? COLORS.neutral15 : COLORS.neutral05}\n        hideArrowTip\n        padding={0}\n        borderWidth={isDark ? 1 : 0}\n        css={listStyle}\n    >\n        {list}\n    </Floating>;\n};\n\n\ntype MenuItemProps = {\n    Icon?: IconType;\n    label: string;\n    onClick?: () => void;\n    close: () => void;\n    disabled: boolean;\n};\n\nconst MenuItem = React.forwardRef<HTMLButtonElement, MenuItemProps>(({\n    Icon, label, onClick, close, disabled,\n}, ref) => {\n    const isDark = useColorScheme().scheme === \"dark\";\n\n    return (\n        <li css={{\n            \":not(:last-child)\": {\n                borderBottom: `1px solid ${isDark ? COLORS.neutral40 : COLORS.neutral20}`,\n            },\n            \":last-child button\": {\n                borderRadius: \"0 0 8px 8px\",\n            },\n        }}>\n            <ProtoButton\n                {...{ ref, disabled }}\n                role=\"menuitem\"\n                onClick={() => {\n                    if (onClick) {\n                        onClick();\n                    }\n                    close();\n                }}\n                css={{\n                    display: \"flex\",\n                    alignItems: \"center\",\n                    gap: 8,\n                    padding: \"8px 14px\",\n                    width: \"100%\",\n                    svg: { fontSize: 16 },\n                    \":hover, :focus\": {\n                        backgroundColor: isDark ? COLORS.neutral10 : COLORS.neutral15,\n                    },\n                    ...focusStyle({ inset: true }),\n                    \"&[disabled]\": {\n                        fontWeight: \"bold\",\n                        color: COLORS.neutral80,\n                        pointerEvents: \"none\",\n                        ...isDark && { backgroundColor: COLORS.neutral10 },\n                    },\n                }}\n            >\n                {Icon && <Icon />}\n                {label}\n            </ProtoButton>\n        </li>\n    );\n});\n\n// ==============================================================================================\n// ===== Components for displaying the main part: the video items\n// ==============================================================================================\n\ntype ViewProps = {\n    basePath: string;\n    showSeries?: boolean;\n    listId?: string;\n    items: {\n        item: VideoListItem;\n        active: boolean;\n    }[];\n};\n\nconst Items: React.FC<ViewProps> = ({ basePath, items, showSeries = false, listId }) => {\n    const { layoutState } = useContext(LayoutContext);\n    return match(layoutState, {\n        SLIDER: () => <SliderView {...{ listId, basePath, items }} />,\n        GALLERY: () => <GalleryView {...{ listId, basePath, items }} />,\n        LIST: () => <ListView {...{ listId, basePath, items, showSeries }} />,\n        \"%future added value\": () => unreachable(),\n    });\n};\n\nconst ITEM_MIN_SIZE = 250;\nconst ITEM_MIN_SIZE_SMALL_SCREENS = 240;\nconst ITEM_MAX_SIZE = 330;\nconst ITEM_MAX_SIZE_SMALL_SCREENS = 360;\n\nconst GalleryView: React.FC<ViewProps> = ({ basePath, items, listId }) => (\n    // The following is not exactly what we want, but CSS does not allow us to\n    // do what we want. Let me elaborate. For the sake of this explanation,\n    // let's assume we want the items to be at least 240px and at most 300px\n    // wide.\n    //\n    // What we want is the `repeat(auto-fill)` behavior of the grid. It's nice,\n    // but has one crucial limitation: it is not possible to properly specify a\n    // max-width for items. That's what we want: Fit as many items as possible\n    // given a min item width. With the remaining space, try to grow each item\n    // by the same amount. If you already grew each item as much as possible\n    // (according to a max item width), then align all items in the center of\n    // the container (as if the remaining space was padding-left/right of the\n    // container).\n    //\n    // As you can see below we use `minmax(240px, 1fr)`: a fixed minimum and 1fr\n    // as maximum. The minimum works well, but `1fr` as maximum means that the\n    // track always takes 1fr of the container width, even if thats more than\n    // the `max-width` of the items below. In that case, the `justifySelf`\n    // below gets active and aligns the `Item` inside the track.\n    //\n    // Using `justifySelf: center` means that the remaining space is added\n    // around each item, effectively growing the gap between the items. That\n    // doesn't look that great.\n    //\n    // The obvious idea is to use `minmax(240px, 300px)` right? Except that\n    // doesn't work. I'm still not sure if its intended by the spec or if\n    // browser just implement it incorrectly. But with that, browsers always\n    // make the tracks max (300px) wide.\n    //\n    // One promising solution is to use `minmax(240px, max-content)`. We do need\n    // to add a `<div style=\"width: 300px\" />` as child of the grid item to\n    // explicitly state that the max-content is 300px (otherwise videos without\n    // thumbnails break). But the larger problem is that the virtual items that\n    // are imagined by `auto-fill` take the width 240px as they don't have a\n    // defined max-content. At least that's the case if there are not enough\n    // items to completely fill one line. So then the real and virtual items\n    // have different widths, leading to weird alignment problems. These are\n    // particularly apparent if two series blocks are right next to each other\n    // and one of those has few enough videos to not fill a line. So I have not\n    // been able to make this approach work.\n    //\n    // A few other ideas I tried and failed to make work:\n    // - Add left and right padding to the container which we manually\n    //   calculate. Can't get it to work because CSS does not yet offer modulo\n    //   operations. I haven't found a way to polyfill `mod()` as there isn't\n    //   even a way to floor/round a number.\n    // - Add `margin: 0 auto` to the container and/or put it into a flexbox,\n    //   both with `inline-grid`. It seems like `auto-fill` just doesn't work\n    //   with `inline-grid`. And without `inline-grid`, the container always\n    //   fill the whole container.\n    //\n    // What I ended up doing now is just putting a band-aid over the biggest\n    // ugliness, which is the large gap in the worst screen width when not\n    // quite fitting 3 items in a row. That happens inside the  screen width\n    // range 650px to 1150px. In that range, we `justifySelf: right` every odd\n    // item(i.e. the left one in a 2 item line). With this alternating\n    // alignment (the default is `left`), it looks as if both items in a line\n    // are centered. Crucially, inside this range, there is never a\n    // non-2-item-line where the alignment matters (i.e. the space is always\n    // filled completely by the items). So this doesn't break anything. There\n    // is still a slightly enlarged gap for a small range of screens sizes with\n    // 3 items per line. But that's not too bad.\n    <div css={{\n        display: \"grid\",\n        gridTemplateColumns: `repeat(auto-fill, minmax(${ITEM_MIN_SIZE}px, 1fr))`,\n        marginTop: 6,\n        columnGap: 12,\n        rowGap: 28,\n        [screenWidthAtMost(1600)]: {\n            gridTemplateColumns: `repeat(auto-fill, minmax(${ITEM_MIN_SIZE_SMALL_SCREENS}px, 1fr))`,\n        },\n    }}>\n        {items.map(({ item, active }, idx) => (\n            <Item\n                key={idx}\n                {...{ item, active, basePath, listId }}\n                css={{\n                    width: \"100%\",\n                    maxWidth: ITEM_MAX_SIZE,\n\n                    // See long comment above.\n                    \"@media (min-width: 650px) and (max-width: 1150px)\": {\n                        \":nth-child(odd)\": {\n                            justifySelf: \"right\",\n                        },\n                    },\n                    [screenWidthAtMost(VIDEO_GRID_BREAKPOINT)]: {\n                        maxWidth: ITEM_MAX_SIZE_SMALL_SCREENS,\n                        justifySelf: \"center\",\n                    },\n                }}\n            />\n        ))}\n    </div>\n);\n\nconst ListView: React.FC<ViewProps> = ({ basePath, items, showSeries, listId }) => (\n    <div css={{\n        display: \"flex\",\n        flexDirection: \"column\",\n        alignItems: \"center\",\n    }}>\n        {items.map(({ item, active }, idx) => (\n            <Item\n                key={idx}\n                {...{ item, active, basePath, showSeries, listId }}\n                showDescription\n                css={{\n                    width: \"100%\",\n                    margin: 6,\n                    [screenWidthAtMost(VIDEO_GRID_BREAKPOINT)]: {\n                        maxWidth: 360,\n                    },\n                    [screenWidthAbove(VIDEO_GRID_BREAKPOINT)]: {\n                        display: \"flex\",\n                        gap: 16,\n                        \"> div:nth-of-type(1)\": { flex: \"0 0 240px\" },\n                        \"> :last-child\": {\n                            marginTop: 0,\n                        },\n                    },\n                }}\n            />\n        ))}\n    </div>\n);\n\nconst SliderView: React.FC<ViewProps> = ({ basePath, items, listId }) => {\n    const { t } = useTranslation();\n    const ref = useRef<HTMLDivElement>(null);\n    const scrollDistance = 240;\n\n    const [rightVisible, setRightVisible] = useState(false);\n    const [leftVisible, setLeftVisible] = useState(false);\n\n    /**\n     * This hides the left and/or right scroll buttons if the slider is scrolled almost all\n     * the way to the left or right respectively, or when there is nothing to scroll to.\n     */\n    const setVisibilities = () => {\n        if (ref.current) {\n            const totalSliderWidth = ref.current.scrollWidth;\n            const scrollPositionLeft = ref.current.scrollLeft;\n            const scrollPositionRight = ref.current.scrollLeft + ref.current.offsetWidth;\n            setRightVisible(scrollPositionRight < (totalSliderWidth - 16));\n            setLeftVisible(scrollPositionLeft > 16);\n        }\n    };\n\n    const scroll = (distance: number) => {\n        if (ref.current) {\n            ref.current.scrollLeft += distance;\n            setVisibilities();\n        }\n    };\n\n    useEffect(setVisibilities, []);\n\n    const buttonCss = {\n        zIndex: 5,\n        position: \"absolute\",\n        alignSelf: \"center\",\n        backgroundColor: COLORS.neutral40,\n        borderRadius: 24,\n        padding: 11,\n        transition: \"background-color .05s\",\n        svg: {\n            color: \"white\",\n            display: \"block\",\n            fontSize: 26,\n        },\n        \":hover, :focus\": {\n            backgroundColor: COLORS.neutral60,\n        },\n        // TODO: investigate hover style not disappearing correctly\n        ...focusStyle({}),\n    } as const;\n\n    return <div css={{ position: \"relative\" }}>\n        <div tabIndex={-1} onScroll={() => setVisibilities()} ref={ref} css={{\n            display: \"flex\",\n            marginRight: 5,\n            overflow: \"auto\",\n            scrollBehavior: \"smooth\",\n            scrollSnapType: \"inline mandatory\",\n            \":first-child > :first-child\": {\n                scrollMargin: 6,\n            },\n        }}>\n            {items.map(({ item, active }, idx) => (\n                <Item\n                    key={idx}\n                    {...{ item, active, basePath, listId }}\n                    css={{\n                        scrollSnapAlign: \"start\",\n                        flex: \"0 0 270px\",\n                        maxWidth: 270,\n                        margin: 6,\n                        marginBottom: 24,\n                    }}\n                />\n            ))}\n            {leftVisible && <ProtoButton\n                aria-label={t(\"videolist-block.slider.scroll-left\")}\n                onClick={() => scroll(-scrollDistance)}\n                css={{ left: 8, ...buttonCss }}\n            ><LuChevronLeft /></ProtoButton>}\n            {rightVisible && <ProtoButton\n                aria-label={t(\"videolist-block.slider.scroll-right\")}\n                onClick={() => scroll(scrollDistance)}\n                css={{ right: 8, ...buttonCss }}\n            ><LuChevronRight /></ProtoButton>}\n        </div>\n    </div>;\n};\n\n\ntype UpcomingEventsGridProps = React.PropsWithChildren<{\n    count: number;\n}>;\n\nconst UpcomingEventsGrid: React.FC<UpcomingEventsGridProps> = ({ count, children }) => {\n    const { t } = useTranslation();\n\n    return (\n        <details css={{\n            backgroundColor: COLORS.neutral20,\n            borderRadius: 4,\n            margin: \"8px 0\",\n            \":is([open]) summary\": {\n                borderBottom: `1px solid ${COLORS.neutral25}`,\n                borderRadius: \"4px 4px 0 0\",\n            },\n        }}>\n            <summary css={{\n                color: COLORS.neutral80,\n                cursor: \"pointer\",\n                fontSize: 14,\n                padding: \"6px 12px\",\n                \":hover, :focus-visible\": {\n                    backgroundColor: COLORS.neutral25,\n                    borderRadius: 4,\n                    color: COLORS.neutral90,\n                },\n                ...focusStyle({}),\n            }}>\n                <span css={{ marginLeft: 4 }}>\n                    {t(\"videolist-block.upcoming-live-streams\", { count })}\n                </span>\n            </summary>\n            {children}\n        </details>\n    );\n};\n\n\ntype ItemProps = {\n    basePath: string;\n    item: VideoListItem;\n    listId?: string;\n    active: boolean;\n    showDescription?: boolean;\n    showSeries?: boolean;\n    className?: string;\n};\n\nconst Item: React.FC<ItemProps> = ({\n    item,\n    basePath,\n    listId,\n    active,\n    showDescription = false,\n    showSeries = false,\n    className,\n}) => {\n    const { t } = useTranslation();\n    const isPlaceholder = item === \"missing\" || item === \"unauthorized\";\n\n    const TRANSITION_IN_DURATION = \"0.15s\";\n    const TRANSITION_OUT_DURATION = \"0.3s\";\n\n    const thumbnail = isPlaceholder\n        ? <ThumbnailOverlayContainer>\n            <BaseThumbnailReplacement css={{\n                background: \"repeating-linear-gradient(115deg, \"\n                    + \"#2e2e2e, #2e2e2e 30px, #292929 30px, #292929 60px)\",\n                color: \"#dbdbdb\",\n            }}>\n                <LuAlertCircle />\n            </BaseThumbnailReplacement>\n        </ThumbnailOverlayContainer>\n        : <>\n            <Thumbnail event={item} active={active} />\n            <div css={{\n                position: \"absolute\",\n                top: 0,\n                height: \"100%\",\n                width: \"100%\",\n                overflow: \"hidden\",\n                borderRadius: 8,\n            }}>\n                <div css={{\n                    background: \"linear-gradient(to top, white, rgba(255, 255, 255, 0.1))\",\n                    height: 90,\n                    transition: `transform ${TRANSITION_OUT_DURATION}, `\n                        + `opacity ${TRANSITION_OUT_DURATION}`,\n                    opacity: 0.1,\n                    filter: \"blur(3px)\",\n                    transformOrigin: \"bottom right\",\n                    transform: \"translateY(-60px) rotate(30deg)\",\n                }} />\n            </div>\n        </>;\n    const title = (() => {\n        const placeholderStyle = {\n            fontWeight: \"normal\",\n            color: COLORS.neutral80,\n        } as const;\n        if (item === \"missing\") {\n            return <i css={placeholderStyle}>{t(\"videolist-block.missing-video\")}</i>;\n        } else if (item === \"unauthorized\") {\n            return <i css={placeholderStyle}>{t(\"videolist-block.unauthorized\")}</i>;\n        } else {\n            return item.title;\n        }\n    })();\n\n    const inner = <>\n        <div css={{\n            position: \"relative\",\n            borderRadius: 8,\n        }}>{thumbnail}</div>\n        <div css={{\n            margin: \"0px 4px\",\n            marginTop: 12,\n            color: COLORS.neutral90,\n        }}>\n            <h3 css={{\n                display: \"flex\",\n                alignItems: \"center\",\n                fontSize: \"inherit\",\n                gap: 4,\n                marginBottom: 4,\n            }}>\n                {active && <LuPlay css={{\n                    flex: \"0 0 auto\",\n                    strokeWidth: 3,\n                    animation: `${keyframes({\n                        \"0%\": { opacity: 1 },\n                        \"50%\": { opacity: 0.3 },\n                        \"100%\": { opacity: 1 },\n                    })} 2s infinite`,\n                }}/>}\n                <div css={{\n                    fontSize: \"inherit\",\n                    lineHeight: 1.3,\n                    ...ellipsisOverflowCss(2),\n                }}>{title}</div>\n            </h3>\n            {!isPlaceholder && <>\n                <div css={{\n                    color: COLORS.neutral80,\n                    fontSize: 14,\n                    display: \"flex\",\n                    flexWrap: \"wrap\",\n                    \"& > span\": {\n                        display: \"inline-block\",\n                        whiteSpace: \"nowrap\",\n                    },\n                }}>\n                    {item.creators.length > 0 && <span css={{\n                        overflow: \"hidden\",\n                        textOverflow: \"ellipsis\",\n                        \"&:after\": {\n                            content: \"'•'\",\n                            padding: \"0 8px\",\n                        },\n                        // TODO: maybe find something better than `join`\n                    }}>{item.creators.join(\", \")}</span>}\n                    {/* `new Date` is well defined for our ISO Date strings */}\n                    <div css={{ zIndex: 6 }}>\n                        <RelativeDate\n                            date={new Date(item.syncedData?.startTime ?? item.created)}\n                            isLive={item.isLive}\n                        />\n                    </div>\n                </div>\n                {showDescription && <SmallDescription lines={3} text={item.description} />}\n                {showSeries && item.series?.id && item.series.title && <PartOfSeriesLink\n                    seriesId={item.series.id}\n                    seriesTitle={item.series.title}\n                />}\n            </>}\n        </div>\n    </>;\n\n    const containerStyle = {\n        position: \"relative\",\n        display: \"block\",\n        padding: 6,\n        borderRadius: 12,\n        textDecoration: \"none\",\n        \"& a\": { color: COLORS.neutral90, textDecoration: \"none\" },\n        ...active && { backgroundColor: COLORS.neutral20 },\n        ...!active && !isPlaceholder && {\n            \"& > div:nth-child(2)\": {\n                transition: `transform ${TRANSITION_OUT_DURATION}, `\n                    + `box-shadow ${TRANSITION_OUT_DURATION},`\n                    + `filter ${TRANSITION_OUT_DURATION}`,\n            },\n            \"&:hover > div:nth-child(2), &:focus-visible > div:nth-child(2)\": {\n                boxShadow: \"0 6px 10px rgb(0 0 0 / 40%)\",\n                transform: \"perspective(500px) rotateX(7deg) scale(1.05)\",\n                transitionDuration: TRANSITION_IN_DURATION,\n                \"& > div:nth-child(2) > div\": {\n                    opacity: 0.2,\n                    transform: \"rotate(30deg)\",\n                    transitionDuration: TRANSITION_IN_DURATION,\n                },\n            },\n            \"&:hover img, &:focus-visible img\": {\n                filter: \"brightness(100%)\",\n            },\n            ...focusStyle({}),\n        },\n    } as const;\n\n    const listIdParam = listId ? `?list=${keyOfId(listId)}` : \"\";\n\n    return <div css={containerStyle} {...{ className }}>\n        {(!active && !isPlaceholder) && <Link\n            to={`${basePath}/${keyOfId(item.id)}${listIdParam}`}\n            css={{\n                position: \"absolute\",\n                inset: 0,\n                zIndex: 4,\n                borderRadius: 16,\n            }}\n        />}\n        {inner}\n    </div>;\n};\n\ntype PartOfSeriesLinkProps = {\n    seriesTitle: string;\n    seriesId: string;\n}\n\nexport const PartOfSeriesLink: React.FC<PartOfSeriesLinkProps> = ({ seriesTitle, seriesId }) => {\n    const { t } = useTranslation();\n    return <div css={{\n        fontSize: 14,\n        marginTop: \"auto\",\n        paddingTop: 8,\n        overflow: \"hidden\",\n        textOverflow: \"ellipsis\",\n        whiteSpace: \"nowrap\",\n        padding: 3,\n    }}>\n        {t(\"video.part-of-series\") + \": \"}\n        <Link to={`/!s/${keyOfId(seriesId)}`} css={{\n            borderRadius: 4,\n            outlineOffset: 1,\n            position: \"relative\",\n            zIndex: 5,\n            // The next few rules are... unfortunate but necessary, as they will otherwise\n            // be overwritten by the parent's css. This is in part due to the wonky nature of\n            // having to workaround \"nesting\" links within other links.\n            \"&&\": {\n                color: COLORS.primary0,\n                textDecoration: \"underline\",\n                \":hover, :focus\": {\n                    color: COLORS.primary1,\n                    textDecoration: \"none\",\n                },\n            },\n        }}>{seriesTitle}</Link>\n    </div>;\n};\n","/**\n * @generated SignedSource<<80f1d355f80ac9c210830a4a596bbe64>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type BlocksBlockData$data = {\n  readonly __typename: string;\n  readonly id: string;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"PlaylistBlockData\" | \"SeriesBlockData\" | \"TextBlockData\" | \"TitleBlockData\" | \"VideoBlockData\">;\n  readonly \" $fragmentType\": \"BlocksBlockData\";\n};\nexport type BlocksBlockData$key = {\n  readonly \" $data\"?: BlocksBlockData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"BlocksBlockData\">;\n};\n\nconst node: ReaderFragment = {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"BlocksBlockData\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"id\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"__typename\",\n      \"storageKey\": null\n    },\n    {\n      \"kind\": \"InlineFragment\",\n      \"selections\": [\n        {\n          \"args\": null,\n          \"kind\": \"FragmentSpread\",\n          \"name\": \"TitleBlockData\"\n        }\n      ],\n      \"type\": \"TitleBlock\",\n      \"abstractKey\": null\n    },\n    {\n      \"kind\": \"InlineFragment\",\n      \"selections\": [\n        {\n          \"args\": null,\n          \"kind\": \"FragmentSpread\",\n          \"name\": \"TextBlockData\"\n        }\n      ],\n      \"type\": \"TextBlock\",\n      \"abstractKey\": null\n    },\n    {\n      \"kind\": \"InlineFragment\",\n      \"selections\": [\n        {\n          \"args\": null,\n          \"kind\": \"FragmentSpread\",\n          \"name\": \"SeriesBlockData\"\n        }\n      ],\n      \"type\": \"SeriesBlock\",\n      \"abstractKey\": null\n    },\n    {\n      \"kind\": \"InlineFragment\",\n      \"selections\": [\n        {\n          \"args\": null,\n          \"kind\": \"FragmentSpread\",\n          \"name\": \"VideoBlockData\"\n        }\n      ],\n      \"type\": \"VideoBlock\",\n      \"abstractKey\": null\n    },\n    {\n      \"kind\": \"InlineFragment\",\n      \"selections\": [\n        {\n          \"args\": null,\n          \"kind\": \"FragmentSpread\",\n          \"name\": \"PlaylistBlockData\"\n        }\n      ],\n      \"type\": \"PlaylistBlock\",\n      \"abstractKey\": null\n    }\n  ],\n  \"type\": \"Block\",\n  \"abstractKey\": \"__isBlock\"\n};\n\n(node as any).hash = \"1404f2f76b3acf75c16669e4fa45b4b2\";\n\nexport default node;\n","/**\n * @generated SignedSource<<b2a01c60df9f819e9dfd6a6c0410eda4>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type BlocksData$data = {\n  readonly blocks: ReadonlyArray<{\n    readonly id: string;\n    readonly \" $fragmentSpreads\": FragmentRefs<\"BlocksBlockData\">;\n  }>;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"BlocksRealmData\">;\n  readonly \" $fragmentType\": \"BlocksData\";\n};\nexport type BlocksData$key = {\n  readonly \" $data\"?: BlocksData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"BlocksData\">;\n};\n\nconst node: ReaderFragment = {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"BlocksData\",\n  \"selections\": [\n    {\n      \"args\": null,\n      \"kind\": \"FragmentSpread\",\n      \"name\": \"BlocksRealmData\"\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": null,\n      \"kind\": \"LinkedField\",\n      \"name\": \"blocks\",\n      \"plural\": true,\n      \"selections\": [\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"id\",\n          \"storageKey\": null\n        },\n        {\n          \"args\": null,\n          \"kind\": \"FragmentSpread\",\n          \"name\": \"BlocksBlockData\"\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"Realm\",\n  \"abstractKey\": null\n};\n\n(node as any).hash = \"afde670c4924aadccbc97bf34700e52d\";\n\nexport default node;\n","/**\n * @generated SignedSource<<974840cffd39be762c43cbfd89d60d15>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type BlocksRealmData$data = {\n  readonly path: string;\n  readonly \" $fragmentType\": \"BlocksRealmData\";\n};\nexport type BlocksRealmData$key = {\n  readonly \" $data\"?: BlocksRealmData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"BlocksRealmData\">;\n};\n\nconst node: ReaderFragment = {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"BlocksRealmData\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"path\",\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"Realm\",\n  \"abstractKey\": null\n};\n\n(node as any).hash = \"f36ee0bbfca8be65a946dae121699283\";\n\nexport default node;\n","/**\n * @generated SignedSource<<4e88adc4ef92390b6638cb338afedfe7>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nexport type VideoListLayout = \"GALLERY\" | \"LIST\" | \"SLIDER\" | \"%future added value\";\nexport type VideoListOrder = \"AZ\" | \"NEW_TO_OLD\" | \"OLD_TO_NEW\" | \"ORIGINAL\" | \"ZA\" | \"%future added value\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type PlaylistBlockData$data = {\n  readonly layout: VideoListLayout;\n  readonly order: VideoListOrder;\n  readonly playlist: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"PlaylistBlockPlaylistData\">;\n  } | null | undefined;\n  readonly showMetadata: boolean;\n  readonly showTitle: boolean;\n  readonly \" $fragmentType\": \"PlaylistBlockData\";\n};\nexport type PlaylistBlockData$key = {\n  readonly \" $data\"?: PlaylistBlockData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"PlaylistBlockData\">;\n};\n\nconst node: ReaderFragment = {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"PlaylistBlockData\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": null,\n      \"kind\": \"LinkedField\",\n      \"name\": \"playlist\",\n      \"plural\": false,\n      \"selections\": [\n        {\n          \"args\": null,\n          \"kind\": \"FragmentSpread\",\n          \"name\": \"PlaylistBlockPlaylistData\"\n        }\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"showTitle\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"showMetadata\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"order\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"layout\",\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"PlaylistBlock\",\n  \"abstractKey\": null\n};\n\n(node as any).hash = \"f4b2ac204969c759441772073425faeb\";\n\nexport default node;\n","/**\n * @generated SignedSource<<efb00d1f0b2338ce17305720cf4abdb2>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type PlaylistBlockPlaylistData$data = {\n  readonly __typename: \"AuthorizedPlaylist\";\n  readonly description: string | null | undefined;\n  readonly entries: ReadonlyArray<{\n    readonly __typename: \"AuthorizedEvent\";\n    readonly id: string;\n    readonly \" $fragmentSpreads\": FragmentRefs<\"VideoListEventData\">;\n  } | {\n    readonly __typename: \"Missing\";\n    readonly dummy: boolean | null | undefined;\n  } | {\n    readonly __typename: \"NotAllowed\";\n    readonly dummy: boolean | null | undefined;\n  } | {\n    // This will never be '%other', but we need some\n    // value in case none of the concrete values match.\n    readonly __typename: \"%other\";\n  }>;\n  readonly id: string;\n  readonly title: string;\n  readonly \" $fragmentType\": \"PlaylistBlockPlaylistData\";\n} | {\n  readonly __typename: \"NotAllowed\";\n  readonly dummy: boolean | null | undefined;\n  readonly \" $fragmentType\": \"PlaylistBlockPlaylistData\";\n} | {\n  // This will never be '%other', but we need some\n  // value in case none of the concrete values match.\n  readonly __typename: \"%other\";\n  readonly \" $fragmentType\": \"PlaylistBlockPlaylistData\";\n};\nexport type PlaylistBlockPlaylistData$key = {\n  readonly \" $data\"?: PlaylistBlockPlaylistData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"PlaylistBlockPlaylistData\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"__typename\",\n  \"storageKey\": null\n},\nv1 = [\n  {\n    \"alias\": null,\n    \"args\": null,\n    \"kind\": \"ScalarField\",\n    \"name\": \"dummy\",\n    \"storageKey\": null\n  }\n],\nv2 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": (v1/*: any*/),\n  \"type\": \"NotAllowed\",\n  \"abstractKey\": null\n},\nv3 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n},\nv4 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv5 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n};\nreturn {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"PlaylistBlockPlaylistData\",\n  \"selections\": [\n    (v0/*: any*/),\n    (v2/*: any*/),\n    {\n      \"kind\": \"InlineFragment\",\n      \"selections\": [\n        (v3/*: any*/),\n        (v4/*: any*/),\n        (v5/*: any*/),\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"concreteType\": null,\n          \"kind\": \"LinkedField\",\n          \"name\": \"entries\",\n          \"plural\": true,\n          \"selections\": [\n            (v0/*: any*/),\n            {\n              \"kind\": \"InlineFragment\",\n              \"selections\": [\n                (v3/*: any*/),\n                {\n                  \"kind\": \"InlineDataFragmentSpread\",\n                  \"name\": \"VideoListEventData\",\n                  \"selections\": [\n                    (v3/*: any*/),\n                    (v4/*: any*/),\n                    {\n                      \"alias\": null,\n                      \"args\": null,\n                      \"kind\": \"ScalarField\",\n                      \"name\": \"created\",\n                      \"storageKey\": null\n                    },\n                    {\n                      \"alias\": null,\n                      \"args\": null,\n                      \"kind\": \"ScalarField\",\n                      \"name\": \"creators\",\n                      \"storageKey\": null\n                    },\n                    {\n                      \"alias\": null,\n                      \"args\": null,\n                      \"kind\": \"ScalarField\",\n                      \"name\": \"isLive\",\n                      \"storageKey\": null\n                    },\n                    (v5/*: any*/),\n                    {\n                      \"alias\": null,\n                      \"args\": null,\n                      \"concreteType\": \"Series\",\n                      \"kind\": \"LinkedField\",\n                      \"name\": \"series\",\n                      \"plural\": false,\n                      \"selections\": [\n                        (v4/*: any*/),\n                        (v3/*: any*/)\n                      ],\n                      \"storageKey\": null\n                    },\n                    {\n                      \"alias\": null,\n                      \"args\": null,\n                      \"concreteType\": \"SyncedEventData\",\n                      \"kind\": \"LinkedField\",\n                      \"name\": \"syncedData\",\n                      \"plural\": false,\n                      \"selections\": [\n                        {\n                          \"alias\": null,\n                          \"args\": null,\n                          \"kind\": \"ScalarField\",\n                          \"name\": \"duration\",\n                          \"storageKey\": null\n                        },\n                        {\n                          \"alias\": null,\n                          \"args\": null,\n                          \"kind\": \"ScalarField\",\n                          \"name\": \"thumbnail\",\n                          \"storageKey\": null\n                        },\n                        {\n                          \"alias\": null,\n                          \"args\": null,\n                          \"kind\": \"ScalarField\",\n                          \"name\": \"startTime\",\n                          \"storageKey\": null\n                        },\n                        {\n                          \"alias\": null,\n                          \"args\": null,\n                          \"kind\": \"ScalarField\",\n                          \"name\": \"endTime\",\n                          \"storageKey\": null\n                        },\n                        {\n                          \"alias\": null,\n                          \"args\": null,\n                          \"concreteType\": \"Track\",\n                          \"kind\": \"LinkedField\",\n                          \"name\": \"tracks\",\n                          \"plural\": true,\n                          \"selections\": [\n                            {\n                              \"alias\": null,\n                              \"args\": null,\n                              \"kind\": \"ScalarField\",\n                              \"name\": \"resolution\",\n                              \"storageKey\": null\n                            }\n                          ],\n                          \"storageKey\": null\n                        }\n                      ],\n                      \"storageKey\": null\n                    }\n                  ],\n                  \"args\": null,\n                  \"argumentDefinitions\": []\n                }\n              ],\n              \"type\": \"AuthorizedEvent\",\n              \"abstractKey\": null\n            },\n            {\n              \"kind\": \"InlineFragment\",\n              \"selections\": (v1/*: any*/),\n              \"type\": \"Missing\",\n              \"abstractKey\": null\n            },\n            (v2/*: any*/)\n          ],\n          \"storageKey\": null\n        }\n      ],\n      \"type\": \"AuthorizedPlaylist\",\n      \"abstractKey\": null\n    }\n  ],\n  \"type\": \"Playlist\",\n  \"abstractKey\": \"__isPlaylist\"\n};\n})();\n\n(node as any).hash = \"fa4670adcbb11e598e34c930dceeea23\";\n\nexport default node;\n","/**\n * @generated SignedSource<<2cf862c6a1c144c0859ce8cef91432db>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nexport type VideoListLayout = \"GALLERY\" | \"LIST\" | \"SLIDER\" | \"%future added value\";\nexport type VideoListOrder = \"AZ\" | \"NEW_TO_OLD\" | \"OLD_TO_NEW\" | \"ORIGINAL\" | \"ZA\" | \"%future added value\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type SeriesBlockData$data = {\n  readonly layout: VideoListLayout;\n  readonly order: VideoListOrder;\n  readonly series: {\n    readonly \" $fragmentSpreads\": FragmentRefs<\"SeriesBlockSeriesData\">;\n  } | null | undefined;\n  readonly showMetadata: boolean;\n  readonly showTitle: boolean;\n  readonly \" $fragmentType\": \"SeriesBlockData\";\n};\nexport type SeriesBlockData$key = {\n  readonly \" $data\"?: SeriesBlockData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"SeriesBlockData\">;\n};\n\nconst node: ReaderFragment = {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"SeriesBlockData\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"Series\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"series\",\n      \"plural\": false,\n      \"selections\": [\n        {\n          \"args\": null,\n          \"kind\": \"FragmentSpread\",\n          \"name\": \"SeriesBlockSeriesData\"\n        }\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"showTitle\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"showMetadata\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"order\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"layout\",\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"SeriesBlock\",\n  \"abstractKey\": null\n};\n\n(node as any).hash = \"c52c5df809855ed2d124ac3c2ea726b6\";\n\nexport default node;\n","/**\n * @generated SignedSource<<4888f8c31423edc38d3963ae722c2fb7>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type SeriesBlockSeriesData$data = {\n  readonly entries: ReadonlyArray<{\n    readonly __typename: \"AuthorizedEvent\";\n    readonly id: string;\n    readonly \" $fragmentSpreads\": FragmentRefs<\"VideoListEventData\">;\n  } | {\n    readonly __typename: \"NotAllowed\";\n    readonly dummy: boolean | null | undefined;\n  } | {\n    // This will never be '%other', but we need some\n    // value in case none of the concrete values match.\n    readonly __typename: \"%other\";\n  }>;\n  readonly syncedData: {\n    readonly description: string | null | undefined;\n  } | null | undefined;\n  readonly title: string;\n  readonly \" $fragmentType\": \"SeriesBlockSeriesData\";\n};\nexport type SeriesBlockSeriesData$key = {\n  readonly \" $data\"?: SeriesBlockSeriesData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"SeriesBlockSeriesData\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv1 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"description\",\n  \"storageKey\": null\n},\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"id\",\n  \"storageKey\": null\n};\nreturn {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"SeriesBlockSeriesData\",\n  \"selections\": [\n    (v0/*: any*/),\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"SyncedSeriesData\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"syncedData\",\n      \"plural\": false,\n      \"selections\": [\n        (v1/*: any*/)\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": null,\n      \"kind\": \"LinkedField\",\n      \"name\": \"entries\",\n      \"plural\": true,\n      \"selections\": [\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"__typename\",\n          \"storageKey\": null\n        },\n        {\n          \"kind\": \"InlineFragment\",\n          \"selections\": [\n            (v2/*: any*/),\n            {\n              \"kind\": \"InlineDataFragmentSpread\",\n              \"name\": \"VideoListEventData\",\n              \"selections\": [\n                (v2/*: any*/),\n                (v0/*: any*/),\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"kind\": \"ScalarField\",\n                  \"name\": \"created\",\n                  \"storageKey\": null\n                },\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"kind\": \"ScalarField\",\n                  \"name\": \"creators\",\n                  \"storageKey\": null\n                },\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"kind\": \"ScalarField\",\n                  \"name\": \"isLive\",\n                  \"storageKey\": null\n                },\n                (v1/*: any*/),\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"concreteType\": \"Series\",\n                  \"kind\": \"LinkedField\",\n                  \"name\": \"series\",\n                  \"plural\": false,\n                  \"selections\": [\n                    (v0/*: any*/),\n                    (v2/*: any*/)\n                  ],\n                  \"storageKey\": null\n                },\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"concreteType\": \"SyncedEventData\",\n                  \"kind\": \"LinkedField\",\n                  \"name\": \"syncedData\",\n                  \"plural\": false,\n                  \"selections\": [\n                    {\n                      \"alias\": null,\n                      \"args\": null,\n                      \"kind\": \"ScalarField\",\n                      \"name\": \"duration\",\n                      \"storageKey\": null\n                    },\n                    {\n                      \"alias\": null,\n                      \"args\": null,\n                      \"kind\": \"ScalarField\",\n                      \"name\": \"thumbnail\",\n                      \"storageKey\": null\n                    },\n                    {\n                      \"alias\": null,\n                      \"args\": null,\n                      \"kind\": \"ScalarField\",\n                      \"name\": \"startTime\",\n                      \"storageKey\": null\n                    },\n                    {\n                      \"alias\": null,\n                      \"args\": null,\n                      \"kind\": \"ScalarField\",\n                      \"name\": \"endTime\",\n                      \"storageKey\": null\n                    },\n                    {\n                      \"alias\": null,\n                      \"args\": null,\n                      \"concreteType\": \"Track\",\n                      \"kind\": \"LinkedField\",\n                      \"name\": \"tracks\",\n                      \"plural\": true,\n                      \"selections\": [\n                        {\n                          \"alias\": null,\n                          \"args\": null,\n                          \"kind\": \"ScalarField\",\n                          \"name\": \"resolution\",\n                          \"storageKey\": null\n                        }\n                      ],\n                      \"storageKey\": null\n                    }\n                  ],\n                  \"storageKey\": null\n                }\n              ],\n              \"args\": null,\n              \"argumentDefinitions\": []\n            }\n          ],\n          \"type\": \"AuthorizedEvent\",\n          \"abstractKey\": null\n        },\n        {\n          \"kind\": \"InlineFragment\",\n          \"selections\": [\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"dummy\",\n              \"storageKey\": null\n            }\n          ],\n          \"type\": \"NotAllowed\",\n          \"abstractKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"Series\",\n  \"abstractKey\": null\n};\n})();\n\n(node as any).hash = \"6006bbf0958fa89adead3bc4641090c8\";\n\nexport default node;\n","/**\n * @generated SignedSource<<1f022573b3ffbccd1657ca9022689379>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type TextBlockData$data = {\n  readonly content: string;\n  readonly \" $fragmentType\": \"TextBlockData\";\n};\nexport type TextBlockData$key = {\n  readonly \" $data\"?: TextBlockData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"TextBlockData\">;\n};\n\nconst node: ReaderFragment = {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"TextBlockData\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"content\",\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"TextBlock\",\n  \"abstractKey\": null\n};\n\n(node as any).hash = \"5f5f8eacc5e08c413629433f0ae355d3\";\n\nexport default node;\n","/**\n * @generated SignedSource<<42133cca91dbf7305b4a158a0ad702fa>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type TitleBlockData$data = {\n  readonly content: string;\n  readonly \" $fragmentType\": \"TitleBlockData\";\n};\nexport type TitleBlockData$key = {\n  readonly \" $data\"?: TitleBlockData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"TitleBlockData\">;\n};\n\nconst node: ReaderFragment = {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"TitleBlockData\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"content\",\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"TitleBlock\",\n  \"abstractKey\": null\n};\n\n(node as any).hash = \"5cb35df5119097faec33fe71d189c39f\";\n\nexport default node;\n","/**\n * @generated SignedSource<<378791a3e3d66370a51d495f08735e1e>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type VideoBlockData$data = {\n  readonly event: {\n    readonly __typename: \"AuthorizedEvent\";\n    readonly created: string;\n    readonly creators: ReadonlyArray<string>;\n    readonly description: string | null | undefined;\n    readonly id: string;\n    readonly isLive: boolean;\n    readonly metadata: Record<string, Record<string, string[]>>;\n    readonly opencastId: string;\n    readonly series: {\n      readonly opencastId: string;\n      readonly title: string;\n    } | null | undefined;\n    readonly syncedData: {\n      readonly captions: ReadonlyArray<{\n        readonly lang: string | null | undefined;\n        readonly uri: string;\n      }>;\n      readonly duration: number;\n      readonly endTime: string | null | undefined;\n      readonly segments: ReadonlyArray<{\n        readonly startTime: number;\n        readonly uri: string;\n      }>;\n      readonly startTime: string | null | undefined;\n      readonly thumbnail: string | null | undefined;\n      readonly tracks: ReadonlyArray<{\n        readonly flavor: string;\n        readonly isMaster: boolean | null | undefined;\n        readonly mimetype: string | null | undefined;\n        readonly resolution: ReadonlyArray<number> | null | undefined;\n        readonly uri: string;\n      }>;\n      readonly updated: string;\n    } | null | undefined;\n    readonly title: string;\n  } | {\n    readonly __typename: \"NotAllowed\";\n    readonly dummy: boolean | null | undefined;\n  } | {\n    // This will never be '%other', but we need some\n    // value in case none of the concrete values match.\n    readonly __typename: \"%other\";\n  } | null | undefined;\n  readonly showLink: boolean;\n  readonly showTitle: boolean;\n  readonly \" $fragmentType\": \"VideoBlockData\";\n};\nexport type VideoBlockData$key = {\n  readonly \" $data\"?: VideoBlockData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"VideoBlockData\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"title\",\n  \"storageKey\": null\n},\nv1 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"opencastId\",\n  \"storageKey\": null\n},\nv2 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"startTime\",\n  \"storageKey\": null\n},\nv3 = {\n  \"alias\": null,\n  \"args\": null,\n  \"kind\": \"ScalarField\",\n  \"name\": \"uri\",\n  \"storageKey\": null\n};\nreturn {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"VideoBlockData\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": null,\n      \"kind\": \"LinkedField\",\n      \"name\": \"event\",\n      \"plural\": false,\n      \"selections\": [\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"__typename\",\n          \"storageKey\": null\n        },\n        {\n          \"kind\": \"InlineFragment\",\n          \"selections\": [\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"dummy\",\n              \"storageKey\": null\n            }\n          ],\n          \"type\": \"NotAllowed\",\n          \"abstractKey\": null\n        },\n        {\n          \"kind\": \"InlineFragment\",\n          \"selections\": [\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"id\",\n              \"storageKey\": null\n            },\n            (v0/*: any*/),\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"isLive\",\n              \"storageKey\": null\n            },\n            (v1/*: any*/),\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"created\",\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"creators\",\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"metadata\",\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"kind\": \"ScalarField\",\n              \"name\": \"description\",\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"concreteType\": \"Series\",\n              \"kind\": \"LinkedField\",\n              \"name\": \"series\",\n              \"plural\": false,\n              \"selections\": [\n                (v0/*: any*/),\n                (v1/*: any*/)\n              ],\n              \"storageKey\": null\n            },\n            {\n              \"alias\": null,\n              \"args\": null,\n              \"concreteType\": \"SyncedEventData\",\n              \"kind\": \"LinkedField\",\n              \"name\": \"syncedData\",\n              \"plural\": false,\n              \"selections\": [\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"kind\": \"ScalarField\",\n                  \"name\": \"duration\",\n                  \"storageKey\": null\n                },\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"kind\": \"ScalarField\",\n                  \"name\": \"updated\",\n                  \"storageKey\": null\n                },\n                (v2/*: any*/),\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"kind\": \"ScalarField\",\n                  \"name\": \"endTime\",\n                  \"storageKey\": null\n                },\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"kind\": \"ScalarField\",\n                  \"name\": \"thumbnail\",\n                  \"storageKey\": null\n                },\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"concreteType\": \"Track\",\n                  \"kind\": \"LinkedField\",\n                  \"name\": \"tracks\",\n                  \"plural\": true,\n                  \"selections\": [\n                    (v3/*: any*/),\n                    {\n                      \"alias\": null,\n                      \"args\": null,\n                      \"kind\": \"ScalarField\",\n                      \"name\": \"flavor\",\n                      \"storageKey\": null\n                    },\n                    {\n                      \"alias\": null,\n                      \"args\": null,\n                      \"kind\": \"ScalarField\",\n                      \"name\": \"mimetype\",\n                      \"storageKey\": null\n                    },\n                    {\n                      \"alias\": null,\n                      \"args\": null,\n                      \"kind\": \"ScalarField\",\n                      \"name\": \"resolution\",\n                      \"storageKey\": null\n                    },\n                    {\n                      \"alias\": null,\n                      \"args\": null,\n                      \"kind\": \"ScalarField\",\n                      \"name\": \"isMaster\",\n                      \"storageKey\": null\n                    }\n                  ],\n                  \"storageKey\": null\n                },\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"concreteType\": \"Caption\",\n                  \"kind\": \"LinkedField\",\n                  \"name\": \"captions\",\n                  \"plural\": true,\n                  \"selections\": [\n                    (v3/*: any*/),\n                    {\n                      \"alias\": null,\n                      \"args\": null,\n                      \"kind\": \"ScalarField\",\n                      \"name\": \"lang\",\n                      \"storageKey\": null\n                    }\n                  ],\n                  \"storageKey\": null\n                },\n                {\n                  \"alias\": null,\n                  \"args\": null,\n                  \"concreteType\": \"Segment\",\n                  \"kind\": \"LinkedField\",\n                  \"name\": \"segments\",\n                  \"plural\": true,\n                  \"selections\": [\n                    (v3/*: any*/),\n                    (v2/*: any*/)\n                  ],\n                  \"storageKey\": null\n                }\n              ],\n              \"storageKey\": null\n            }\n          ],\n          \"type\": \"AuthorizedEvent\",\n          \"abstractKey\": null\n        }\n      ],\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"showTitle\",\n      \"storageKey\": null\n    },\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"kind\": \"ScalarField\",\n      \"name\": \"showLink\",\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"VideoBlock\",\n  \"abstractKey\": null\n};\n})();\n\n(node as any).hash = \"ac1f3d1b61d02c645f1e4c29cc9488ee\";\n\nexport default node;\n","/**\n * @generated SignedSource<<7dee4a2886aedb6024b0423df63ae002>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { InlineFragment, ReaderInlineDataFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type VideoListEventData$data = {\n  readonly created: string;\n  readonly creators: ReadonlyArray<string>;\n  readonly description: string | null | undefined;\n  readonly id: string;\n  readonly isLive: boolean;\n  readonly series: {\n    readonly id: string;\n    readonly title: string;\n  } | null | undefined;\n  readonly syncedData: {\n    readonly duration: number;\n    readonly endTime: string | null | undefined;\n    readonly startTime: string | null | undefined;\n    readonly thumbnail: string | null | undefined;\n    readonly tracks: ReadonlyArray<{\n      readonly resolution: ReadonlyArray<number> | null | undefined;\n    }>;\n  } | null | undefined;\n  readonly title: string;\n  readonly \" $fragmentType\": \"VideoListEventData\";\n};\nexport type VideoListEventData$key = {\n  readonly \" $data\"?: VideoListEventData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"VideoListEventData\">;\n};\n\nconst node: ReaderInlineDataFragment = {\n  \"kind\": \"InlineDataFragment\",\n  \"name\": \"VideoListEventData\"\n};\n\n(node as any).hash = \"57e3ff212173ad8f5de0051e6b2b775f\";\n\nexport default node;\n","import React from \"react\";\nimport { graphql, useFragment } from \"react-relay\";\n\nimport { Title } from \"..\";\nimport { TitleBlockData$key } from \"./__generated__/TitleBlockData.graphql\";\n\n\nconst fragment = graphql`\n    fragment TitleBlockData on TitleBlock {\n        content\n    }\n`;\n\ntype Props = {\n    fragRef: TitleBlockData$key;\n};\n\nexport const TitleBlock: React.FC<Props> = ({ fragRef }) => {\n    const { content } = useFragment(fragment, fragRef);\n    // Normally, there is a gap between any two blocks.\n    // We don't want that for titles, though.\n    // They are supposed to be closer to whatever they are titling.\n    return <Title title={content} css={{ marginBottom: -16 }} />;\n};\n","import { graphql, useFragment } from \"react-relay\";\nimport { Card, unreachable } from \"@opencast/appkit\";\n\nimport { InlinePlayer } from \"../player\";\nimport { VideoBlockData$key } from \"./__generated__/VideoBlockData.graphql\";\nimport { Title } from \"..\";\nimport { useTranslation } from \"react-i18next\";\nimport { isSynced, keyOfId } from \"../../util\";\nimport { Link } from \"../../router\";\nimport { LuArrowRightCircle } from \"react-icons/lu\";\nimport { PlayerContextProvider } from \"../player/PlayerContext\";\n\n\ntype Props = {\n    fragRef: VideoBlockData$key;\n    basePath: string;\n};\n\nexport const VideoBlock: React.FC<Props> = ({ fragRef, basePath }) => {\n    const { t } = useTranslation();\n    const { event, showTitle, showLink } = useFragment(graphql`\n        fragment VideoBlockData on VideoBlock {\n            event {\n                __typename\n                ... on NotAllowed { dummy } # workaround\n                ... on AuthorizedEvent {\n                    id\n                    title\n                    isLive\n                    opencastId\n                    created\n                    creators\n                    metadata\n                    description\n                    series { title opencastId }\n                    syncedData {\n                        duration\n                        updated\n                        startTime\n                        endTime\n                        thumbnail\n                        tracks { uri flavor mimetype resolution isMaster }\n                        captions { uri lang }\n                        segments { uri startTime }\n                    }\n                }\n            }\n            showTitle\n            showLink\n        }\n    `, fragRef);\n\n    if (event == null) {\n        return <Card kind=\"error\">{t(\"video.deleted-video-block\")}</Card>;\n    }\n\n    if (event.__typename === \"NotAllowed\") {\n        return <Card kind=\"error\">{t(\"video.not-allowed-video-block\")}</Card>;\n    }\n    if (event.__typename !== \"AuthorizedEvent\") {\n        return unreachable();\n    }\n\n    return <div css={{ maxWidth: 800 }}>\n        {showTitle && <Title title={event.title} />}\n        {isSynced(event)\n            ? <PlayerContextProvider>\n                <InlinePlayer event={event} css={{ maxWidth: 800 }} />\n            </PlayerContextProvider>\n            : <Card kind=\"info\">{t(\"video.not-ready.title\")}</Card>}\n        {showLink && <Link\n            to={`${basePath}/${keyOfId(event.id)}`}\n            css={{\n                display: \"flex\",\n                alignItems: \"center\",\n                gap: 8,\n                marginTop: 8,\n                marginLeft: \"auto\",\n                width: \"fit-content\",\n                borderRadius: 4,\n                outlineOffset: 1,\n            }}\n        >\n            {t(\"video.link\")}\n            <LuArrowRightCircle size={18} css={{ marginTop: 1 }} />\n        </Link>}\n    </div>;\n};\n","import React from \"react\";\nimport { graphql, useFragment } from \"react-relay/hooks\";\nimport { match } from \"@opencast/appkit\";\n\nimport { BlocksData$key } from \"./__generated__/BlocksData.graphql\";\nimport { BlocksRealmData$key } from \"./__generated__/BlocksRealmData.graphql\";\nimport { BlocksBlockData$key } from \"./__generated__/BlocksBlockData.graphql\";\nimport { TitleBlock } from \"./Title\";\nimport { TextBlockByQuery } from \"./Text\";\nimport { SeriesBlockFromBlock } from \"./Series\";\nimport { VideoBlock } from \"./Video\";\nimport { PlayerGroupProvider } from \"../player/PlayerGroupContext\";\nimport { PlaylistBlockFromBlock } from \"./Playlist\";\n\n\ntype BlocksProps = {\n    realm: BlocksData$key;\n};\n\nexport const Blocks: React.FC<BlocksProps> = ({ realm: realmRef }) => {\n    const realm = useFragment(graphql`\n        fragment BlocksData on Realm {\n            ... BlocksRealmData\n            blocks {\n                id\n                ... BlocksBlockData\n            }\n        }\n    `, realmRef);\n    const { blocks } = realm;\n\n    return (\n        <div css={{\n            display: \"flex\",\n            flexDirection: \"column\",\n            rowGap: 32,\n        }}>\n            <PlayerGroupProvider>\n                {blocks.map(\n                    block => <Block key={block.id} realm={realm} block={block} />,\n                )}\n            </PlayerGroupProvider>\n        </div>\n    );\n};\n\ntype BlockProps = {\n    realm: BlocksRealmData$key;\n    block: BlocksBlockData$key;\n};\n\nexport const Block: React.FC<BlockProps> = ({ block: blockRef, realm }) => {\n    const { path } = useFragment(graphql`\n        fragment BlocksRealmData on Realm {\n            path\n        }\n    `, realm);\n\n    const block = useFragment(graphql`\n        fragment BlocksBlockData on Block {\n            id # TODO just querying for the type and fragments bugs out Relay's type generation\n            __typename\n            ... on TitleBlock { ... TitleBlockData }\n            ... on TextBlock { ... TextBlockData }\n            ... on SeriesBlock { ... SeriesBlockData }\n            ... on VideoBlock { ... VideoBlockData }\n            ... on PlaylistBlock { ... PlaylistBlockData }\n        }\n    `, blockRef);\n    const { __typename } = block;\n\n    const basePath = path.replace(/\\/$/u, \"\") + \"/v\";\n    return <div>\n        {match(__typename, {\n            \"TitleBlock\": () => <TitleBlock fragRef={block} />,\n            \"TextBlock\": () => <TextBlockByQuery fragRef={block} />,\n            \"SeriesBlock\": () => <SeriesBlockFromBlock fragRef={block} basePath={basePath} />,\n            \"VideoBlock\": () => <VideoBlock fragRef={block} basePath={basePath} />,\n            \"PlaylistBlock\": () => <PlaylistBlockFromBlock fragRef={block} basePath={basePath} />,\n        })}\n    </div>;\n};\n","import React, { ReactNode } from \"react\";\nimport { LuHome, LuChevronRight } from \"react-icons/lu\";\nimport { useTranslation } from \"react-i18next\";\nimport { BreadcrumbList, WithContext } from \"schema-dts\";\n\nimport { Link } from \"../router\";\nimport { focusStyle } from \".\";\nimport { COLORS } from \"../color\";\n\n\nexport type Props = {\n    path: {\n        label: string;\n        link: string;\n        render?: (label: string) => NonNullable<ReactNode>;\n    }[];\n    tail: NonNullable<JSX.Element> | string;\n};\n\nexport const Breadcrumbs: React.FC<Props> = ({ path, tail }) => {\n    const { t } = useTranslation();\n    const structuredData: WithContext<BreadcrumbList> = {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"BreadcrumbList\",\n        itemListElement: path.map(({ label, link }, index) => ({\n            \"@type\": \"ListItem\",\n            position: index + 1,\n            name: label,\n            item: new URL(link, document.baseURI).href,\n        })),\n    };\n\n    return (\n        <nav aria-label=\"breadcrumbs\" css={{ overflowX: \"auto\", marginBottom: 16, flexShrink: 0 }}>\n            {path.length > 0 && (\n                <script type=\"application/ld+json\">{JSON.stringify(structuredData)}</script>\n            )}\n            <BreadcrumbsContainer>\n                <li>\n                    <Link to=\"/\" css={{\n                        lineHeight: 1,\n                        padding: 3,\n                        ...focusStyle({ inset: true }),\n                        borderRadius: 4,\n                    }}>\n                        <LuHome aria-label={t(\"general.home\")} />\n                    </Link>\n                </li>\n                {path.map((segment, i) => (\n                    <Segment key={i} target={segment.link}>\n                        {(segment.render ?? (l => l))(segment.label)}\n                    </Segment>\n                ))}\n                <Segment>{tail}</Segment>\n            </BreadcrumbsContainer>\n        </nav>\n    );\n};\n\nexport const BreadcrumbsContainer: React.FC<React.PropsWithChildren> = ({ children }) => (\n    <ol css={{\n        display: \"flex\",\n        alignItems: \"center\",\n        padding: 0,\n        margin: 0,\n        fontSize: 14,\n        flexWrap: \"wrap\",\n        whiteSpace: \"nowrap\",\n        svg: { fontSize: 16 },\n        li: {\n            display: \"inline-flex\",\n            alignItems: \"center\",\n        },\n    }}>{children}</ol>\n);\n\ntype SegmentProps = {\n    /** The link target or `undefined` if this item segment is active */\n    target?: string;\n    children: ReactNode;\n};\n\nconst TEXT_STYLE = {\n    textOverflow: \"ellipsis\" as const,\n    overflow: \"hidden\" as const,\n    padding: \"2px 3px\",\n    textDecoration: \"none\",\n    borderRadius: 4,\n};\n\nconst Segment: React.FC<SegmentProps> = ({ target, children }) => (\n    <li\n        css={{ maxWidth: \"100%\" }}\n        {...target === undefined && { \"aria-current\": \"location\" }}\n    >\n        <BreadcrumbSeparator />\n        {target === undefined\n            ? <div css={TEXT_STYLE}>{children}</div>\n            : <Link\n                css={[TEXT_STYLE, focusStyle({ inset: true })]}\n                to={target}>{children}\n            </Link>}\n    </li>\n);\n\nexport const BreadcrumbSeparator: React.FC = () => (\n    <LuChevronRight css={{ margin: \"0 2px\", flexShrink: 0, color: COLORS.neutral40 }} />\n);\n","import { FloatingHandle, FloatingContainer, FloatingTrigger, ProtoButton } from \"@opencast/appkit\";\nimport React, { ReactElement } from \"react\";\nimport { LuChevronDown } from \"react-icons/lu\";\nimport { focusStyle } from \".\";\nimport { COLORS } from \"../color\";\nimport { CSSObject } from \"@emotion/react\";\n\n\ntype FloatingBaseMenuProps = {\n    triggerContent: ReactElement;\n    list: ReactElement;\n    label: string;\n    triggerStyles?: CSSObject;\n};\n\nexport const FloatingBaseMenu = React.forwardRef<FloatingHandle, FloatingBaseMenuProps>(\n    ({ triggerContent, list, label, triggerStyles }, ref) => (\n        <FloatingContainer\n            ref={ref}\n            placement=\"bottom\"\n            trigger=\"click\"\n            ariaRole=\"menu\"\n            distance={0}\n            borderRadius={8}\n        >\n            <FloatingTrigger>\n                <ProtoButton aria-label={label} css={{\n                    display: \"flex\",\n                    alignItems: \"center\",\n                    border: `1px solid ${COLORS.neutral40}`,\n                    borderRadius: 4,\n                    gap: 8,\n                    height: 31,\n                    padding: \"0 8px\",\n                    whiteSpace: \"nowrap\",\n                    \":hover, :focus\": { backgroundColor: COLORS.neutral15 },\n                    \":focus-visible\": { borderColor: COLORS.focus },\n                    ...focusStyle({ offset: -1 }),\n                    ...triggerStyles,\n                }}>\n                    {triggerContent}\n                    <LuChevronDown css={{ fontSize: 20, flexShrink: 0 }} />\n                </ProtoButton>\n            </FloatingTrigger>\n            {list}\n        </FloatingContainer>\n    ),\n);\n\n","export const Form: React.FC<JSX.IntrinsicElements[\"form\"]> = ({ children, ...rest }) => (\n    <form\n        css={{\n            \"& label\": {\n                fontWeight: \"bold\",\n                display: \"block\",\n                marginBottom: 8,\n            },\n        }}\n        {...rest}\n    >{children}</form>\n);\n","import React, { Fragment, ReactNode, useId, useImperativeHandle, useRef, useState } from \"react\";\nimport { LuCheck, LuCopy } from \"react-icons/lu\";\nimport { WithTooltip } from \"@opencast/appkit\";\n\nimport { Button } from \"@opencast/appkit\";\nimport { COLORS } from \"../color\";\nimport { timeStringToSeconds } from \"../util\";\nimport { focusStyle } from \".\";\nimport { FieldValues, Path, UseFormReturn } from \"react-hook-form\";\n\n\nconst style = (error: boolean) => ({\n    borderRadius: 4,\n    border: `1px solid ${error ? COLORS.danger0 : COLORS.neutral25}`,\n    \":focus-visible\": { borderColor: COLORS.focus },\n    ...focusStyle({ offset: -1 }),\n});\n\nexport type InputProps = React.ComponentPropsWithoutRef<\"input\"> & {\n    error?: boolean;\n};\n\n/** A styled single-line text box */\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>(\n    ({ error = false, ...rest }, ref) => (\n        <input\n            ref={ref}\n            css={{ padding: \"4px 10px\", ...style(error) }}\n            {...rest}\n        />\n    ),\n);\n\nexport type TextAreaProps = React.ComponentPropsWithoutRef<\"textarea\"> & {\n    error?: boolean;\n};\n\n/** A styled multi-line text area */\nexport const TextArea = React.forwardRef<HTMLTextAreaElement, TextAreaProps>(\n    ({ error = false, ...rest }, ref) => {\n        const textAreaRef = useRef<HTMLTextAreaElement>(null);\n        useImperativeHandle(ref, () => textAreaRef.current as HTMLTextAreaElement);\n        const initialHeight = textAreaRef.current?.scrollHeight;\n\n        const handleInput = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n            if (textAreaRef.current) {\n                // Setting this to auto first prevents some weird behavior\n                // where the textarea's height decreases by a small amount\n                // whenever a single char is deleted.\n                textAreaRef.current.style.height = \"auto\";\n                textAreaRef.current.style.height = `${e.target.scrollHeight + 2}px`;\n            }\n        };\n\n        return <textarea\n            onInput={handleInput}\n            ref={textAreaRef}\n            css={{\n                width: \"100%\",\n                minHeight: 200,\n                // We add 2px here and in the input handling to prevent the appearance\n                // of an unnecessary scrollbar while the whole text is visible.\n                ...initialHeight && { height: initialHeight + 2 },\n                maxHeight: \"50vh\",\n                resize: \"none\",\n                padding: \"8px 10px\",\n                ...style(error),\n            }}\n            {...rest}\n        />;\n    },\n);\n\ntype InputWithCheckboxProps = {\n    checkboxChecked: boolean;\n    setCheckboxChecked: (newValue: boolean) => void;\n    label: string;\n    input: ReactNode;\n}\n\n/** Checkbox with a label to enable/disable an adjacent input */\nexport const InputWithCheckbox: React.FC<InputWithCheckboxProps> = (\n    { checkboxChecked, setCheckboxChecked, label, input }\n) => {\n    const id = useId();\n    return (\n        <div css={{ display: \"flex\", flexDirection: \"row\", alignItems: \"center\" }}>\n            <input\n                id={id}\n                type=\"checkbox\"\n                checked={checkboxChecked}\n                onChange={() => setCheckboxChecked(!checkboxChecked)}\n                css={{ marginRight: 8 }}\n            />\n            <label htmlFor={id} css={{\n                color: checkboxChecked ? COLORS.neutral90 : COLORS.neutral70,\n                fontSize: 14,\n                marginRight: 6,\n            }}>\n                {label}\n            </label>\n            {input}\n        </div>\n    );\n};\n\ntype TimeInputProps = {\n    timestamp: number;\n    setTimestamp: (newTime: number) => void;\n    disabled: boolean;\n}\n\nexport type TimeUnit = \"h\" | \"m\" | \"s\";\n\n/** A custom three-part input for time inputs split into hours, minutes and seconds */\nexport const TimeInput: React.FC<TimeInputProps> = ({ timestamp, setTimestamp, disabled }) => {\n    const inputRefs = useRef<Array<HTMLInputElement | null>>([]);\n\n    const hours = Math.floor(timestamp / 3600);\n    const minutes = Math.floor((timestamp % 3600) / 60);\n    const seconds = Math.floor(timestamp % 60);\n\n    const handleInput = (newValue: number, type: TimeUnit, index: number) => {\n        if (isNaN(newValue) || newValue < 0 || newValue > 99) {\n            return;\n        }\n\n        const cappedValue = Math.min(newValue, 59);\n        const timeString = `${type === \"h\" ? cappedValue : hours}h`\n            + `${type === \"m\" ? cappedValue : minutes}m`\n            + `${type === \"s\" ? cappedValue : seconds}s`;\n\n        setTimestamp(timeStringToSeconds(timeString));\n\n        if (index < 2 && newValue > 9) {\n            inputRefs.current[index + 1]?.focus();\n        }\n    };\n\n    const handleArrowNavigation = (\n        e: React.KeyboardEvent<HTMLInputElement>,\n        index: number,\n    ) => {\n        const inputElement = inputRefs.current[index];\n\n        if (e.key === \"ArrowLeft\" && index > 0 && inputElement?.selectionStart === 0) {\n            e.preventDefault();\n            inputRefs.current[index - 1]?.focus();\n        }\n\n        if (\n            e.key === \"ArrowRight\" && index < inputRefs.current.length - 1\n            && inputElement?.selectionStart === inputElement?.value.length\n        ) {\n            e.preventDefault();\n            inputRefs.current[index + 1]?.focus();\n        }\n    };\n\n    const entries: [number, TimeUnit][] = [\n        [hours, \"h\"],\n        [minutes, \"m\"],\n        [seconds, \"s\"],\n    ];\n\n    return (\n        <div css={{\n            color: disabled ? COLORS.neutral70 : COLORS.neutral90,\n            fontSize: 14,\n            borderRadius: 4,\n            padding: \"0 2px\",\n            \":focus-within\": {\n                outline: `2.5px solid ${COLORS.focus}`,\n            },\n            ...!disabled && {\n                outline: `1px solid ${COLORS.neutral20}`,\n            },\n        }}>\n            {entries.map(([time, unit], index) => <Fragment key={`${unit}-input`}>\n                <input\n                    {...{ disabled }}\n                    ref={ref => (inputRefs.current[index] = ref)}\n                    value={time}\n                    inputMode=\"numeric\"\n                    onChange={e => handleInput(Number(e.target.value), unit, index)}\n                    onFocus={e => e.target.select()}\n                    onKeyDown={e => handleArrowNavigation(e, index)}\n                    css={{\n                        width: time > 9 ? \"2ch\" : \"1ch\",\n                        lineHeight: 1,\n                        padding: 0,\n                        border: 0,\n                        outline: \"none\",\n                        backgroundColor: \"transparent\",\n                        userSelect: \"all\",\n                        \":disabled\": {\n                            backgroundColor: \"transparent\",\n                        },\n                    }}\n                />\n                <span css={{ marginRight: 1 }}>{unit}</span>\n            </Fragment>)}\n        </div>\n    );\n};\n\nexport type SelectProps = React.ComponentPropsWithoutRef<\"select\"> & {\n    error?: boolean;\n};\n\nexport const Select = React.forwardRef<HTMLSelectElement, SelectProps>(\n    ({ error = false, ...rest }, ref) => (\n        <select\n            ref={ref}\n            css={{\n                padding: \"4px 10px\",\n                ...style(error),\n            }}\n            {...rest}\n        />\n    ),\n);\n\ntype CopyableInputProps = JSX.IntrinsicElements[\"div\"] & {\n    value: string;\n    label: string;\n    multiline?: boolean;\n};\n\nexport const CopyableInput: React.FC<CopyableInputProps> = ({\n    value,\n    label,\n    multiline = false,\n    ...rest\n}) => {\n    const [wasCopied, setWasCopied] = useState(false);\n    const copy = async () => {\n        await navigator.clipboard.writeText(value);\n        setWasCopied(true);\n    };\n\n    const copyableInputId = useId();\n    const sharedStyle = {\n        ...style(false),\n        fontFamily: \"monospace\",\n        width: \"100%\",\n        height: \"100%\",\n        padding: \"4px 50px 4px 10px\",\n    };\n    const sharedProps = {\n        disabled: true,\n        value,\n        \"aria-labelledby\": label,\n    };\n    const inner = multiline\n        ? <textarea {...sharedProps} css={{\n            ...sharedStyle,\n            overflow: \"auto\",\n            resize: \"none\",\n            color: COLORS.neutral90,\n            \"::-webkit-scrollbar\": { display: \"none\" },\n            scrollbarWidth: \"none\",\n        }} />\n        : <input {...sharedProps} css={sharedStyle} />;\n\n    return (\n        <div id={copyableInputId} css={{\n            position: \"relative\",\n            height: multiline ? 95 : 34,\n            maxWidth: \"100%\",\n        }} {...rest}>\n            <div css={{ position: \"absolute\", top: 0, right: 0, zIndex: 10 }}>\n                <WithTooltip tooltip={label} css={{ fontFamily: \"var(--main-font), sans-serif\" }}>\n                    <Button\n                        aria-label={label}\n                        kind=\"call-to-action\"\n                        onClick={copy}\n                        css={{\n                            paddingLeft: 10,\n                            paddingRight: 10,\n                            borderRadius: 4,\n                            borderTopLeftRadius: 0,\n                            height: 34,\n                            ...multiline\n                                ? { borderBottomRightRadius: 0 }\n                                : { borderBottomLeftRadius: 0 },\n                        }}\n                    >\n                        {wasCopied ? <LuCheck /> : <LuCopy />}\n                    </Button>\n                </WithTooltip>\n            </div>\n            {inner}\n        </div>\n    );\n};\n\ntype DisplayOptionGroup<TFieldValues extends FieldValues> = {\n    form: UseFormReturn<TFieldValues>;\n    type: \"radio\" | \"checkbox\";\n    optionProps: {\n        option: string;\n        title: string;\n        checked?: boolean;\n        value?: string;\n    }[];\n}\n\n/** Group of input elements to be used with react-hook-form */\nexport function DisplayOptionGroup<TFieldValues extends FieldValues>(\n    { form, type, optionProps }: DisplayOptionGroup<TFieldValues>\n): JSX.Element {\n    const id = useId();\n\n    return <div css={{ display: \"flex\", flexDirection: \"column\", marginTop: 8 }}>\n        {optionProps.map(({ option, title, checked, value }, index) =>\n            <label key={`${id}-${option}${index}`} css={{ display: \"flex\" }}>\n                <input\n                    {...{ type, value }}\n                    defaultChecked={checked}\n                    {...form.register(option as Path<TFieldValues>)}\n                    style={{ marginRight: 6 }}\n                />\n                {title}\n            </label>)\n        }\n    </div>;\n}\n\n","import { Interpolation, Theme } from \"@emotion/react\";\nimport React from \"react\";\nimport { buttonStyle, Kind, useAppkitConfig, useColorScheme } from \"@opencast/appkit\";\n\nimport { Link } from \"../router\";\n\n\n\ntype LinkButtonProps = Omit<JSX.IntrinsicElements[\"a\"], \"ref\"> & {\n    to: string;\n    kind?: Kind;\n    extraCss?: Interpolation<Theme>;\n};\n\nexport const LinkButton: React.FC<LinkButtonProps> = ({\n    kind = \"normal\",\n    extraCss,\n    to,\n    children,\n    ...rest\n}) => {\n    const { isHighContrast } = useColorScheme();\n    const config = useAppkitConfig();\n    return <Link\n        to={to}\n        css={buttonStyle(config, kind, isHighContrast, extraCss)}\n        {...rest}\n    >{children}</Link>;\n};\n","import { PropsWithChildren, forwardRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n    Modal as AppkitModal,\n    ModalHandle as AppkitModalHandle,\n    ModalProps as AppkitModalProps,\n    ConfirmationModal as AppkitConfirmationModal,\n    ConfirmationModalHandle as AppkitConfirmationModalHandle,\n    ConfirmationModalProps as AppkitConfirmationModalProps,\n} from \"@opencast/appkit\";\n\n\n\ntype ModalProps = PropsWithChildren<Omit<AppkitModalProps, \"text\">>;\nexport type ModalHandle = AppkitModalHandle;\n\nexport const Modal = forwardRef<ModalHandle, ModalProps>((props, ref) => {\n    const { t } = useTranslation();\n    return <AppkitModal\n        ref={ref}\n        text={{ close: t(\"general.action.close\") }}\n        {...props}\n    />;\n});\n\n\ntype ConfirmationModalProps = PropsWithChildren<Omit<AppkitConfirmationModalProps, \"text\">>;\nexport type ConfirmationModalHandle = AppkitConfirmationModalHandle;\n\nexport const ConfirmationModal\n    = forwardRef<ConfirmationModalHandle, ConfirmationModalProps>((props, ref) => {\n        const { t } = useTranslation();\n        return <AppkitConfirmationModal\n            ref={ref}\n            text={{\n                cancel: t(\"general.action.cancel\"),\n                close: t(\"general.action.close\"),\n                areYouSure: t(\"manage.are-you-sure\"),\n            }}\n            {...props}\n        />;\n    });\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { S as Select } from '../../dist/Select-c7902d94.esm.js';\nimport { u as useStateManager } from '../../dist/useStateManager-7e1e8489.esm.js';\nimport { u as useAsync } from '../../dist/useAsync-ba7c6b77.esm.js';\nexport { u as useAsync } from '../../dist/useAsync-ba7c6b77.esm.js';\nimport '@babel/runtime/helpers/objectSpread2';\nimport '@babel/runtime/helpers/classCallCheck';\nimport '@babel/runtime/helpers/createClass';\nimport '@babel/runtime/helpers/inherits';\nimport '@babel/runtime/helpers/createSuper';\nimport '@babel/runtime/helpers/toConsumableArray';\nimport '../../dist/index-a301f526.esm.js';\nimport '@emotion/react';\nimport '@babel/runtime/helpers/slicedToArray';\nimport '@babel/runtime/helpers/objectWithoutProperties';\nimport '@babel/runtime/helpers/typeof';\nimport '@babel/runtime/helpers/taggedTemplateLiteral';\nimport '@babel/runtime/helpers/defineProperty';\nimport 'react-dom';\nimport '@floating-ui/dom';\nimport 'use-isomorphic-layout-effect';\nimport 'memoize-one';\n\nvar AsyncSelect = /*#__PURE__*/forwardRef(function (props, ref) {\n  var stateManagedProps = useAsync(props);\n  var selectProps = useStateManager(stateManagedProps);\n  return /*#__PURE__*/React.createElement(Select, _extends({\n    ref: ref\n  }, selectProps));\n});\nvar AsyncSelect$1 = AsyncSelect;\n\nexport { AsyncSelect$1 as default };\n","import { ReactNode, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { TFunction } from \"i18next\";\nimport { CSSObjectWithLabel, Theme } from \"react-select\";\nimport AsyncSelect from \"react-select/async\";\nimport { fetchQuery, graphql, GraphQLTaggedNode } from \"react-relay\";\nimport { Card, useColorScheme } from \"@opencast/appkit\";\n\nimport { environment } from \"../relay\";\nimport { SmallDescription } from \"./metadata\";\nimport { ErrorDisplay } from \"../util/err\";\nimport { COLORS } from \"../color\";\nimport {\n    SearchableSelectPlaylistsQuery,\n} from \"./__generated__/SearchableSelectPlaylistsQuery.graphql\";\nimport {\n    SearchableSelectSeriesQuery,\n} from \"./__generated__/SearchableSelectSeriesQuery.graphql\";\n\n\ntype DerivedProps<T> = Omit<Parameters<typeof AsyncSelect<T>>[0],\n    \"theme\"\n    | \"loadOptions\"\n    | \"formatOptionLabel\"\n    | \"loadingMessage\"\n>;\n\nexport type SearchableSelectProps<T> = DerivedProps<T> & {\n    loadOptions: (input: string, callback: (options: readonly T[]) => void) => void;\n    format: (option: T, t: TFunction) => ReactNode;\n};\n\nexport const searchableSelectStyles = (isDark: boolean) => ({\n    control: (baseStyles: CSSObjectWithLabel, state: { isFocused: boolean }) => ({\n        ...baseStyles,\n        backgroundColor: COLORS.neutral05,\n        borderColor: state.isFocused ? COLORS.primary0 : COLORS.neutral40,\n    }),\n    input: (baseStyles: CSSObjectWithLabel) => ({\n        ...baseStyles,\n        ...isDark && { color: COLORS.neutral80 },\n    }),\n    placeholder: (baseStyles: CSSObjectWithLabel) => ({\n        ...baseStyles,\n        color: COLORS.neutral60,\n    }),\n    singleValue: (baseStyles: CSSObjectWithLabel) => ({\n        ...baseStyles,\n        color: COLORS.neutral90,\n    }),\n    menuList: (baseStyles: CSSObjectWithLabel) => ({\n        ...baseStyles,\n        padding: 0,\n    }),\n    menu: (baseStyles: CSSObjectWithLabel) => ({\n        ...baseStyles,\n        ...isDark && { outline: `1px solid ${COLORS.neutral20}` },\n    }),\n    option: (_baseStyles: CSSObjectWithLabel, state: {\n        isSelected: boolean;\n        isFocused: boolean;\n    }) => ({\n        cursor: \"default\",\n        padding: \"6px 10px\",\n        backgroundColor: isDark ? COLORS.neutral10 : COLORS.neutral05,\n        ...state.isSelected && {\n            borderLeft: `4px solid ${COLORS.focus}`,\n        },\n        ...(state.isFocused || state.isSelected) && {\n            backgroundColor: isDark ? COLORS.neutral25 : COLORS.neutral10,\n        },\n    }),\n    noOptionsMessage: (baseStyles: CSSObjectWithLabel) => ({\n        ...baseStyles,\n        ...isDark && { backgroundColor: COLORS.neutral10 },\n    }),\n    loadingMessage: (baseStyles: CSSObjectWithLabel) => ({\n        ...baseStyles,\n        ...isDark && { backgroundColor: COLORS.neutral10 },\n    }),\n});\n\n/** A select input that can be searched. Basically a styled `react-select`. */\nexport const SearchableSelect = <T, >({\n    loadOptions,\n    format,\n    noOptionsMessage,\n    placeholder,\n    ...props\n}: SearchableSelectProps<T>) => {\n    const { t } = useTranslation();\n    const isDark = useColorScheme().scheme === \"dark\";\n\n    return <AsyncSelect\n        loadOptions={loadOptions}\n        formatOptionLabel={(option: T) => format(option, t)}\n        cacheOptions\n        // Without this, it thinks all entries are selected if any one is.\n        isOptionSelected={() => false}\n        styles={searchableSelectStyles(isDark)}\n        isClearable\n        defaultOptions\n        theme={theme}\n        loadingMessage={() => t(\"general.loading\")}\n        noOptionsMessage={noOptionsMessage ?? (() => t(\"general.form.select.no-options\"))}\n        placeholder={placeholder ?? t(\"general.form.select.select-option\")}\n        {...props}\n    />;\n};\n\nexport const theme = (theme: Theme) => ({\n    ...theme,\n    colors: {\n        ...theme.colors,\n        danger: COLORS.danger0,\n        primary: COLORS.primary0,\n    },\n});\n\n\n\ntype VideoListSelectorProps = DerivedProps<VideoListOption> & {\n    onChange?: (videoList: VideoListOption | null) => void;\n    onBlur?: () => void;\n    defaultValue?: VideoListOption;\n    writableOnly?: boolean;\n    type: \"playlist\" | \"series\";\n};\n\nexport type VideoListOption = {\n    readonly id: string;\n    readonly opencastId: string;\n    readonly title: string;\n    readonly description?: string | null;\n};\n\nexport const VideoListSelector: React.FC<VideoListSelectorProps> = ({\n    writableOnly = false, onBlur, onChange, defaultValue, inputId, type, ...rest\n}) => {\n    const { t } = useTranslation();\n    const [error, setError] = useState<ReactNode>(null);\n\n    const seriesQuery = graphql`\n        query SearchableSelectSeriesQuery($q: String!, $writableOnly: Boolean!) {\n            series: searchAllSeries(query: $q, writableOnly: $writableOnly) {\n                ... on SeriesSearchResults {\n                    items { id opencastId title description }\n                }\n            }\n        }\n    `;\n\n    const playlistsQuery = graphql`\n        query SearchableSelectPlaylistsQuery($q: String!, $writableOnly: Boolean!) {\n            playlists: searchAllPlaylists(query: $q, writableOnly: $writableOnly) {\n                ... on PlaylistSearchResults {\n                    items { id opencastId title description }\n                }\n            }\n        }\n    `;\n\n    const makeLoader = <Q extends SearchableSelectSeriesQuery | SearchableSelectPlaylistsQuery>(\n        query: GraphQLTaggedNode,\n        prefix: \"sr\" | \"pl\",\n    ) => ((\n            input: string,\n            callback: (options: readonly VideoListOption[]) => void,\n        ) => {\n            fetchQuery<Q>(environment, query, { q: input, writableOnly }).subscribe({\n                next: r => {\n                    const items = (\"series\" in r ? r.series : r.playlists).items;\n                    if (items === undefined) {\n                        setError(t(\"search.unavailable\"));\n                        return;\n                    }\n                    callback(items.map(item => ({\n                        ...item,\n                        id: item.id.replace(/^../, prefix),\n                    })));\n                },\n                start: () => {},\n                error: (error: Error) => setError(<ErrorDisplay error={error} />),\n            });\n        });\n    const loadSeries = makeLoader<SearchableSelectSeriesQuery>(seriesQuery, \"sr\");\n    const loadPlaylists = makeLoader<SearchableSelectPlaylistsQuery>(playlistsQuery, \"pl\");\n\n    return <>\n        {error && <Card kind=\"error\" css={{ marginBottom: 8 }}>{error}</Card>}\n        <SearchableSelect\n            loadOptions={type === \"series\" ? loadSeries : loadPlaylists}\n            format={formatVideoListOption}\n            onChange={onChange}\n            isDisabled={!!error}\n            {...{ onBlur, defaultValue, inputId }}\n            {...rest}\n        />\n    </>;\n};\n\nconst formatVideoListOption = (videoList: VideoListOption, _: TFunction) => (\n    <div>\n        <div>{videoList.title}</div>\n        <SmallDescription css={{ margin: 0 }} lines={1} text={videoList.description} />\n    </div>\n);\n","import { PropsWithChildren, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { LuAlertTriangle, LuFilm, LuRadio, LuTrash, LuUserCircle, LuVolume2 } from \"react-icons/lu\";\nimport { useColorScheme } from \"@opencast/appkit\";\n\nimport { COLORS } from \"../color\";\n\n\ntype ThumbnailProps = JSX.IntrinsicElements[\"div\"] & {\n    /** The event of which a thumbnail should be shown */\n    event: {\n        title: string;\n        isLive: boolean;\n        created: string;\n        syncedData?: {\n            duration: number;\n            thumbnail?: string | null;\n            startTime?: string | null;\n            endTime?: string | null;\n        } & (\n            {\n                tracks: readonly { resolution?: readonly number[] | null }[];\n            } | {\n                audioOnly: boolean;\n            }\n        ) | null;\n    };\n\n    /** If `true`, an indicator overlay is shown */\n    active?: boolean;\n\n    /** If `true`, a special icon is shown instead of the thumbnail */\n    deletionIsPending?: boolean;\n};\n\nexport const Thumbnail: React.FC<ThumbnailProps> = ({\n    event,\n    active = false,\n    deletionIsPending = false,\n    ...rest\n}) => {\n    const { t } = useTranslation();\n    const isDark = useColorScheme().scheme === \"dark\";\n    const isUpcoming = isUpcomingLiveEvent(event.syncedData?.startTime ?? null, event.isLive);\n    const audioOnly = event.syncedData\n        ? (\n            \"audioOnly\" in event.syncedData\n                ? event.syncedData.audioOnly\n                : event.syncedData.tracks.every(t => t.resolution == null)\n        )\n        : false;\n\n    let inner;\n    if (event.syncedData?.thumbnail != null && !deletionIsPending) {\n        // We have a proper thumbnail.\n        inner = <ThumbnailImg\n            src={event.syncedData.thumbnail}\n            alt={t(\"video.thumbnail-for\", { video: event.title })}\n        />;\n    } else {\n        inner = <ThumbnailReplacement {...{ audioOnly, isUpcoming, isDark, deletionIsPending }} />;\n    }\n\n    let overlay;\n    if (deletionIsPending) {\n        overlay = null;\n    } else if (event.isLive) {\n        // TODO: we might want to have a better \"is currently live\" detection.\n        const now = new Date();\n        const startTime = new Date(event.syncedData?.startTime ?? event.created);\n        const endTime = event.syncedData?.endTime;\n        const hasEnded = endTime == null ? null : new Date(endTime) < now;\n        const hasStarted = startTime < now;\n        const currentlyLive = hasStarted && !hasEnded;\n\n        let innerOverlay;\n        if (hasEnded) {\n            innerOverlay = t(\"video.ended\");\n        } else if (hasStarted) {\n            innerOverlay = <>\n                <LuRadio css={{ fontSize: 19, strokeWidth: 1.4 }} />\n                {t(\"video.live\")}\n            </>;\n        } else {\n            innerOverlay = t(\"video.upcoming\");\n        }\n\n        const backgroundColor = currentlyLive ? \"rgba(200, 0, 0, 0.9)\" : \"hsla(0, 0%, 0%, 0.75)\";\n\n        overlay = <ThumbnailOverlay {...{ backgroundColor }}>\n            {innerOverlay}\n        </ThumbnailOverlay>;\n    } else if (event.syncedData) {\n        overlay = <ThumbnailOverlay backgroundColor=\"hsla(0, 0%, 0%, 0.75)\">\n            {formatDuration(event.syncedData.duration)}\n        </ThumbnailOverlay>;\n    }\n\n    return <ThumbnailOverlayContainer {...rest}>\n        {inner}\n        {active && <ActiveIndicator />}\n        {overlay}\n    </ThumbnailOverlayContainer>;\n};\n\ntype ThumbnailReplacementProps = {\n    audioOnly: boolean;\n    isDark: boolean;\n    isUpcoming?: boolean;\n    deletionIsPending?: boolean;\n}\nexport const ThumbnailReplacement: React.FC<ThumbnailReplacementProps> = (\n    { audioOnly, isDark, isUpcoming, deletionIsPending }\n) => {\n    // We have no thumbnail. If the resolution is `null` as well, we are\n    // dealing with an audio-only event and show an appropriate icon.\n    // Otherwise we use a generic icon.\n    // If the event has been marked as deleted, the other criteria are\n    // ignored and an icon that indicates deletion is shown instead.\n    let icon = <LuFilm />;\n    if (audioOnly) {\n        icon = <LuVolume2 />;\n    }\n    if (deletionIsPending) {\n        icon = <LuTrash />;\n    }\n\n    return <BaseThumbnailReplacement css={{\n        ...!deletionIsPending && {\n            background: \"linear-gradient(135deg, #33333380 50%, transparent 0),\"\n                + \"linear-gradient(-135deg, #33333380 50%, transparent 0)\",\n        },\n        backgroundSize: \"17px 17px\",\n        color: \"#dbdbdb\",\n        backgroundColor: !deletionIsPending ? \"#292929\" : COLORS.neutral50,\n        ...isDark && !deletionIsPending && {\n            backgroundColor: \"#313131\",\n            background: isUpcoming\n                ? \"linear-gradient(135deg, #48484880 50%, transparent 0),\"\n                    + \"linear-gradient(-135deg, #48484880 50%, transparent 0)\"\n                : \"linear-gradient(135deg, #3e3e3e80 50%, transparent 0),\"\n                    + \"linear-gradient(-135deg, #3e3e3e80 50%, transparent 0)\",\n        },\n    }}>{icon}</BaseThumbnailReplacement>;\n};\n\ntype BaseThumbnailReplacementProps = PropsWithChildren<{\n    className?: string;\n}>;\nexport const BaseThumbnailReplacement: React.FC<BaseThumbnailReplacementProps> = ({\n    children,\n    className,\n}) => (\n    <div {...{ className }} css={{\n        display: \"flex\",\n        height: \"100%\",\n        alignItems: \"center\",\n        justifyContent: \"center\",\n        fontSize: 40,\n    }}>{children}</div>\n);\n\ntype ThumbnailOverlayProps = PropsWithChildren<{\n    backgroundColor: string;\n}>;\nexport const ThumbnailOverlay: React.FC<ThumbnailOverlayProps> = (\n    { children, backgroundColor }\n) => (\n    <div css={{\n        display: \"inline-flex\",\n        alignItems: \"center\",\n        gap: 6,\n        position: \"absolute\",\n        right: 6,\n        bottom: 6,\n        borderRadius: 4,\n        padding: \"1px 5px\",\n        fontSize: 14,\n        backgroundColor,\n        color: \"white\",\n    }}>\n        {children}\n    </div>\n);\n\ntype ThumbnailOverlayContainerProps = JSX.IntrinsicElements[\"div\"];\nexport const ThumbnailOverlayContainer: React.FC<ThumbnailOverlayContainerProps> = (\n    { children, ...rest }\n) => {\n    const isDark = useColorScheme().scheme === \"dark\";\n\n    return <div css={{\n        position: \"relative\",\n        transition: \"0.2s box-shadow\",\n        overflow: \"hidden\",\n        height: \"fit-content\",\n        borderRadius: 8,\n        aspectRatio: \"16 / 9\",\n        ...isDark && {\n            img: {\n                filter: \"brightness(90%)\",\n                transition: \"0.1s filter\",\n            },\n        },\n    }} {...rest}>\n        {children}\n    </div>;\n};\n\nconst ActiveIndicator = () => (\n    <div css={{\n        position: \"absolute\",\n        top: 0,\n        left: 0,\n        right: 0,\n        bottom: 0,\n        backgroundColor: \"rgba(255, 255, 255, 0.3)\",\n        borderRadius: 8,\n    }} />\n);\n\n\n/**\n * Takes a video duration in milliseconds and returns a formatted string in\n * `HH:MM:SS` or `MM:SS` format.\n */\nexport const formatDuration = (totalMs: number): string => {\n    const totalSeconds = Math.round(totalMs / 1000);\n    const seconds = totalSeconds % 60;\n    const minutes = Math.floor(totalSeconds / 60) % 60;\n    const hours = Math.floor(totalSeconds / (60 * 60));\n\n    const pad = (n: number) => (n < 10 ? `0${n}` : `${n}`);\n\n    if (hours > 0) {\n        return `${hours}:${pad(minutes)}:${pad(seconds)}`;\n    } else {\n        return `${minutes}:${pad(seconds)}`;\n    }\n};\n\nexport const isPastLiveEvent = (endTime: string | null, isLive: boolean): boolean =>\n    isLive && endTime != null && new Date(endTime) < new Date();\n\nexport const isUpcomingLiveEvent = (startingTime: string | null, isLive: boolean): boolean =>\n    isLive && startingTime != null && new Date(startingTime) > new Date();\n\nexport const ThumbnailImg: React.FC<{ src: string; alt: string }> = ({ src, alt }) => {\n    const { t } = useTranslation();\n    const [loadError, setLoadError] = useState(false);\n\n    return loadError\n        ? <div css={{\n            backgroundColor: COLORS.neutral60,\n            aspectRatio: \"16 / 9\",\n            width: \"100%\",\n            display: \"flex\",\n            flexDirection: \"column\",\n            gap: 8,\n            justifyContent: \"center\",\n            alignItems: \"center\",\n            color: COLORS.neutral15,\n            fontSize: 14,\n            \"& > svg\": {\n                fontSize: 32,\n                color: COLORS.neutral25,\n                strokeWidth: 1.5,\n            },\n        }}>\n            <LuAlertTriangle />\n            {t(\"general.failed-to-load-thumbnail\")}\n        </div>\n        : <img\n            {...{ src, alt }}\n            onError={() => setLoadError(true)}\n            loading=\"lazy\"\n            width={16}\n            height={9}\n            css={{\n                display: \"block\",\n                width: \"100%\",\n                height: \"100%\",\n                objectFit: \"contain\",\n                backgroundColor: \"black\",\n            }}\n        />;\n};\n\ntype CreatorsProps = {\n    creators: readonly string[] | null;\n    className?: string;\n};\n\n/**\n * Shows a list of creators (of a video) separated by '•' with a leading user\n * icon. If the given creators are null or empty, renders nothing.\n */\nexport const Creators: React.FC<CreatorsProps> = ({ creators, className }) => (\n    creators == null || creators.length === 0\n        ? null\n        : <div\n            css={{\n                display: \"flex\",\n                alignItems: \"center\",\n                fontSize: 14,\n                gap: 8,\n            }}\n            {...{ className }}\n        >\n            <LuUserCircle css={{\n                color: COLORS.neutral60,\n                fontSize: 16,\n                flexShrink: 0,\n            }} />\n            <ul css={{\n                listStyle: \"none\",\n                display: \"inline-flex\",\n                flexWrap: \"wrap\",\n                margin: 0,\n                padding: 0,\n                \"& > li:not(:last-child)::after\": {\n                    content: \"'•'\",\n                    padding: \"0 6px\",\n                    color: COLORS.neutral40,\n                },\n            }}>\n                {creators.map((c, i) => <li key={i}>{c}</li>)}\n            </ul>\n        </div>\n);\n","import { useTranslation } from \"react-i18next\";\n\nimport { Card } from \"@opencast/appkit\";\nimport { LuTruck } from \"react-icons/lu\";\nimport { keyframes } from \"@emotion/react\";\n\nexport const WaitingPage: React.FC<{ type: \"video\" | \"series\" }> = ({ type }) => {\n    const { t } = useTranslation();\n\n    return (\n        <div css={{ display: \"flex\", flexDirection: \"column\", alignItems: \"center\", gap: 32 }}>\n            <div><MovingTruck /></div>\n            <Card kind=\"info\">{t(`${type}.not-ready.title`)}</Card>\n            <div css={{ maxWidth: 700 }}>{t(`${type}.not-ready.text`)}</div>\n        </div>\n    );\n};\n\nexport const MovingTruck: React.FC = () => (\n    <LuTruck css={{\n        fontSize: 40,\n        animation: `500ms steps(2, end) infinite none ${keyframes({\n            \"0%\": { transform: \"translateY(5px)\" },\n            \"100%\": { transform: \"none\" },\n        })}`,\n    }}/>\n);\n","/**\n * @generated SignedSource<<bb7b5bbbb3ac47b68ad7a84aeff56fd6>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type AccessKnownRolesData$data = {\n  readonly knownGroups: ReadonlyArray<{\n    readonly implies: ReadonlyArray<string>;\n    readonly label: Record<string, string>;\n    readonly large: boolean;\n    readonly role: string;\n  }>;\n  readonly \" $fragmentType\": \"AccessKnownRolesData\";\n};\nexport type AccessKnownRolesData$key = {\n  readonly \" $data\"?: AccessKnownRolesData$data;\n  readonly \" $fragmentSpreads\": FragmentRefs<\"AccessKnownRolesData\">;\n};\n\nconst node: ReaderFragment = {\n  \"argumentDefinitions\": [],\n  \"kind\": \"Fragment\",\n  \"metadata\": null,\n  \"name\": \"AccessKnownRolesData\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"KnownGroup\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"knownGroups\",\n      \"plural\": true,\n      \"selections\": [\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"role\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"label\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"implies\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"large\",\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"Query\",\n  \"abstractKey\": null\n};\n\n(node as any).hash = \"cc39cd49164828210ab038e7ff5a7755\";\n\nexport default node;\n","/**\n * @generated SignedSource<<586feb1aa515fa355ea4f91e5d7f80d6>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nexport type AccessUserSearchQuery$variables = {\n  q: string;\n};\nexport type AccessUserSearchQuery$data = {\n  readonly users: {\n    readonly items?: ReadonlyArray<{\n      readonly displayName: string;\n      readonly userRole: string;\n    }>;\n  };\n};\nexport type AccessUserSearchQuery = {\n  response: AccessUserSearchQuery$data;\n  variables: AccessUserSearchQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"q\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"query\",\n    \"variableName\": \"q\"\n  }\n],\nv2 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"KnownUser\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"items\",\n      \"plural\": true,\n      \"selections\": [\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"displayName\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"userRole\",\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"KnownUserSearchResults\",\n  \"abstractKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"AccessUserSearchQuery\",\n    \"selections\": [\n      {\n        \"alias\": \"users\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"searchKnownUsers\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/)\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"AccessUserSearchQuery\",\n    \"selections\": [\n      {\n        \"alias\": \"users\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"searchKnownUsers\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"__typename\",\n            \"storageKey\": null\n          },\n          (v2/*: any*/)\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"e17c526201266163c406d705d6efd265\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"AccessUserSearchQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query AccessUserSearchQuery(\\n  $q: String!\\n) {\\n  users: searchKnownUsers(query: $q) {\\n    __typename\\n    ... on KnownUserSearchResults {\\n      items {\\n        displayName\\n        userRole\\n      }\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"5d3acdaeff0fcca5339ca211aadbbf02\";\n\nexport default node;\n","/**\n * @generated SignedSource<<dd4de1121dbb865472f5af0b7282f2fa>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nexport type SearchableSelectPlaylistsQuery$variables = {\n  q: string;\n  writableOnly: boolean;\n};\nexport type SearchableSelectPlaylistsQuery$data = {\n  readonly playlists: {\n    readonly items?: ReadonlyArray<{\n      readonly description: string | null | undefined;\n      readonly id: string;\n      readonly opencastId: string;\n      readonly title: string;\n    }>;\n  };\n};\nexport type SearchableSelectPlaylistsQuery = {\n  response: SearchableSelectPlaylistsQuery$data;\n  variables: SearchableSelectPlaylistsQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"q\"\n  },\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"writableOnly\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"query\",\n    \"variableName\": \"q\"\n  },\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"writableOnly\",\n    \"variableName\": \"writableOnly\"\n  }\n],\nv2 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"SearchPlaylist\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"items\",\n      \"plural\": true,\n      \"selections\": [\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"id\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"opencastId\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"title\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"description\",\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"PlaylistSearchResults\",\n  \"abstractKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"SearchableSelectPlaylistsQuery\",\n    \"selections\": [\n      {\n        \"alias\": \"playlists\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"searchAllPlaylists\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/)\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"SearchableSelectPlaylistsQuery\",\n    \"selections\": [\n      {\n        \"alias\": \"playlists\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"searchAllPlaylists\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"__typename\",\n            \"storageKey\": null\n          },\n          (v2/*: any*/)\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"c7123da31d985c98aaf00a2f60c22fe3\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"SearchableSelectPlaylistsQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query SearchableSelectPlaylistsQuery(\\n  $q: String!\\n  $writableOnly: Boolean!\\n) {\\n  playlists: searchAllPlaylists(query: $q, writableOnly: $writableOnly) {\\n    __typename\\n    ... on PlaylistSearchResults {\\n      items {\\n        id\\n        opencastId\\n        title\\n        description\\n      }\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"bd4ca03d70426bb30c23ae5064d43ca8\";\n\nexport default node;\n","/**\n * @generated SignedSource<<0613c3afb89e8e2a3693bbb340dcbf65>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nexport type SearchableSelectSeriesQuery$variables = {\n  q: string;\n  writableOnly: boolean;\n};\nexport type SearchableSelectSeriesQuery$data = {\n  readonly series: {\n    readonly items?: ReadonlyArray<{\n      readonly description: string | null | undefined;\n      readonly id: string;\n      readonly opencastId: string;\n      readonly title: string;\n    }>;\n  };\n};\nexport type SearchableSelectSeriesQuery = {\n  response: SearchableSelectSeriesQuery$data;\n  variables: SearchableSelectSeriesQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"q\"\n  },\n  {\n    \"defaultValue\": null,\n    \"kind\": \"LocalArgument\",\n    \"name\": \"writableOnly\"\n  }\n],\nv1 = [\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"query\",\n    \"variableName\": \"q\"\n  },\n  {\n    \"kind\": \"Variable\",\n    \"name\": \"writableOnly\",\n    \"variableName\": \"writableOnly\"\n  }\n],\nv2 = {\n  \"kind\": \"InlineFragment\",\n  \"selections\": [\n    {\n      \"alias\": null,\n      \"args\": null,\n      \"concreteType\": \"SearchSeries\",\n      \"kind\": \"LinkedField\",\n      \"name\": \"items\",\n      \"plural\": true,\n      \"selections\": [\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"id\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"opencastId\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"title\",\n          \"storageKey\": null\n        },\n        {\n          \"alias\": null,\n          \"args\": null,\n          \"kind\": \"ScalarField\",\n          \"name\": \"description\",\n          \"storageKey\": null\n        }\n      ],\n      \"storageKey\": null\n    }\n  ],\n  \"type\": \"SeriesSearchResults\",\n  \"abstractKey\": null\n};\nreturn {\n  \"fragment\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Fragment\",\n    \"metadata\": null,\n    \"name\": \"SearchableSelectSeriesQuery\",\n    \"selections\": [\n      {\n        \"alias\": \"series\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"searchAllSeries\",\n        \"plural\": false,\n        \"selections\": [\n          (v2/*: any*/)\n        ],\n        \"storageKey\": null\n      }\n    ],\n    \"type\": \"Query\",\n    \"abstractKey\": null\n  },\n  \"kind\": \"Request\",\n  \"operation\": {\n    \"argumentDefinitions\": (v0/*: any*/),\n    \"kind\": \"Operation\",\n    \"name\": \"SearchableSelectSeriesQuery\",\n    \"selections\": [\n      {\n        \"alias\": \"series\",\n        \"args\": (v1/*: any*/),\n        \"concreteType\": null,\n        \"kind\": \"LinkedField\",\n        \"name\": \"searchAllSeries\",\n        \"plural\": false,\n        \"selections\": [\n          {\n            \"alias\": null,\n            \"args\": null,\n            \"kind\": \"ScalarField\",\n            \"name\": \"__typename\",\n            \"storageKey\": null\n          },\n          (v2/*: any*/)\n        ],\n        \"storageKey\": null\n      }\n    ]\n  },\n  \"params\": {\n    \"cacheID\": \"f3070224f28f231774f26c79809539b3\",\n    \"id\": null,\n    \"metadata\": {},\n    \"name\": \"SearchableSelectSeriesQuery\",\n    \"operationKind\": \"query\",\n    \"text\": \"query SearchableSelectSeriesQuery(\\n  $q: String!\\n  $writableOnly: Boolean!\\n) {\\n  series: searchAllSeries(query: $q, writableOnly: $writableOnly) {\\n    __typename\\n    ... on SeriesSearchResults {\\n      items {\\n        id\\n        opencastId\\n        title\\n        description\\n      }\\n    }\\n  }\\n}\\n\"\n  }\n};\n})();\n\n(node as any).hash = \"bb8f878dbd3d5c07b1b784a8002d24b4\";\n\nexport default node;\n","import { ReactNode } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useUser } from \"../User\";\nimport { useTitle } from \"../util\";\nimport { Card, ErrorBox } from \"@opencast/appkit\";\n\nexport const NotAuthorized: React.FC = () => {\n    const { t } = useTranslation();\n    const user = useUser();\n\n    return <ErrorBox>\n        {t(\"errors.not-authorized-to-view-page\")}\n        {user === \"none\" && \" \" + t(\"errors.might-need-to-login\")}\n    </ErrorBox>;\n};\n\n\ntype ErrorPageProps = {\n    title: string;\n    children?: ReactNode;\n};\n\n/** Simple error page showing a red box. Additional information can be passed as `children`. */\nexport const ErrorPage: React.FC<ErrorPageProps> = ({ title, children }) => {\n    useTitle(`Error: ${title}`);\n\n    return (\n        <div css={{ display: \"flex\", flexDirection: \"column\", alignItems: \"center\" }}>\n            <Card kind=\"error\" iconPos=\"top\" css={{ fontSize: 18, marginBottom: 48 }}>\n                {title}\n            </Card>\n            <div css={{ maxWidth: 700 }}>\n                {children}\n            </div>\n        </div>\n    );\n};\n","import { match, WithTooltip, screenWidthAbove, useColorScheme } from \"@opencast/appkit\";\nimport { LuAlertTriangle, LuInfo } from \"react-icons/lu\";\nimport { ReactNode } from \"react\";\nimport { CSSObject } from \"@emotion/react\";\n\nimport { Link } from \"../router\";\nimport { BREAKPOINT as NAV_BREAKPOINT } from \"../layout/Navigation\";\nimport { COLORS } from \"../color\";\n\n\nexport const SIDE_BOX_BORDER_RADIUS = 8;\n\nexport const SideBox: React.FC<{ children: ReactNode }> = ({ children }) => (\n    <div css={{\n        backgroundColor: COLORS.neutral10,\n        borderRadius: SIDE_BOX_BORDER_RADIUS,\n        overflow: \"hidden\",\n        \":not(:first-child)\": { marginTop: 26 },\n        ...useColorScheme().scheme === \"dark\" && darkModeBoxShadow,\n    }}>{children}</div>\n);\n\ntype LinkListProps = {\n    items: JSX.Element[];\n    className?: string;\n};\n\n/** A box with light grey background containing a list of items */\nexport const LinkList: React.FC<LinkListProps> = ({ items, ...rest }) => {\n    const itemStyle = {\n        backgroundColor: COLORS.neutral10,\n        borderBottom: `2px solid ${COLORS.neutral05}`,\n        \"&:last-of-type\": { borderBottom: \"none\" },\n        \"& > a, & > span, & > form > button\": {\n            display: \"flex\",\n            padding: \"10px 16px\",\n        },\n    };\n\n    return <ul\n        css={{\n            listStyle: \"none\",\n            margin: 0,\n            padding: 0,\n            \"& a, & form button\": {\n                ...focusStyle({ inset: true }),\n                ...useColorScheme().scheme === \"dark\" && { color: COLORS.primary1 },\n            },\n            [screenWidthAbove(NAV_BREAKPOINT)]: {\n                \"& > li:last-child\": {\n                    \"> a, > form button\": {\n                        borderRadius: `0 0 ${SIDE_BOX_BORDER_RADIUS}px ${SIDE_BOX_BORDER_RADIUS}px`,\n                    },\n                },\n                \"&:first-child > li:first-child > a\": {\n                    borderRadius: `${SIDE_BOX_BORDER_RADIUS}px ${SIDE_BOX_BORDER_RADIUS}px 0 0`,\n                },\n            },\n        }}\n        {...rest}\n    >\n        {items.map((child, i) => <li css={itemStyle} key={i}>{child}</li>)}\n    </ul>;\n};\n\n\nexport const linkWithIconStyle = (isDark: boolean, iconPos: \"left\" | \"right\", active?: boolean) => {\n    const TRANSITION_DURATION = \"0.1s\";\n    const hoverActiveStyle = {\n        transitionDuration: \"0s\",\n        backgroundColor: COLORS.neutral20,\n        ...isDark && { color: COLORS.primary2 },\n    };\n\n    return {\n        display: \"flex\",\n        justifyContent: match(iconPos, {\n            \"left\": () => \"flex-start\",\n            \"right\": () => \"space-between\",\n        }),\n        textDecoration: \"none\",\n        alignItems: \"center\",\n        transition: `background-color ${TRANSITION_DURATION}`,\n        \"& > svg\": {\n            fontSize: 20,\n            minWidth: 20,\n            transition: `color ${TRANSITION_DURATION}`,\n            ...match(iconPos, {\n                \"left\": () => ({ marginRight: 12 } as Record<string, unknown>),\n                \"right\": () => ({ marginLeft: 12 } as Record<string, unknown>),\n            }),\n        },\n\n        \"&:hover, &:focus-visible\": hoverActiveStyle,\n        ...active && {\n            color: COLORS.primary2,\n            \"&\": hoverActiveStyle,\n        },\n    };\n};\n\ntype LinkWithIconProps = {\n    to: string;\n    iconPos: \"left\" | \"right\";\n    active?: boolean;\n    className?: string;\n    children: ReactNode;\n    close?: () => void;\n};\n\n/** A link designed for `LinkList`. Has an icon on the left or right side. */\nexport const LinkWithIcon: React.FC<LinkWithIconProps> = ({\n    to,\n    iconPos,\n    children,\n    active = false,\n    close,\n    ...rest\n}) => {\n    const isDark = useColorScheme().scheme === \"dark\";\n    const style = linkWithIconStyle(isDark, iconPos, active);\n\n    return active\n        ? <span css={style} aria-current=\"page\" {...rest}>{children}</span>\n        : <Link to={to} css={style} onClick={close} {...rest}>{children}</Link>;\n};\n\nexport const CenteredContent: React.FC<{ children: ReactNode }> = ({ children }) => (\n    <div css={{ margin: \"0 auto\", maxWidth: 600 }}>{children}</div>\n);\n\ntype TitleProps = {\n    title: string;\n    className?: string;\n};\n\nexport const Title: React.FC<TitleProps> = ({ title, className }) => (\n    <h2 className={className} css={{ margin: \"16px 0\" }}>{title}</h2>\n);\n\n\n/**\n * Applies focus outline with a default width of 2.5px to elements.\n * This should always be used instead of a custom focus property to ensure\n * consistency throughout the design.\n * If `({ inset: true })` is declared, the focus will be on the inside\n * of the focused element with a negative offset equal to the outline's width.\n * Otherwise is also possible to declare an additional offset (usually 1) for\n * elements with a similar color to the outline to make it stand out more.\n */\nexport const focusStyle = ({ width = 2.5, inset = false, offset = 0 }) => ({\n    \"&:focus-visible\": {\n        outline: `${width}px solid ${COLORS.focus}`,\n        outlineOffset: `${inset ? -width : offset}px`,\n    },\n} as const);\n\n/** Returns CSS that makes text longer than `lines` lines to be truncated with `...`. */\nexport const ellipsisOverflowCss = (lines: number): CSSObject => ({\n    overflow: \"hidden\",\n    textOverflow: \"ellipsis\",\n    ...lines === 1\n        ? {\n            whiteSpace: \"nowrap\",\n        }\n        : {\n            display: \"-webkit-box\",\n            WebkitBoxOrient: \"vertical\",\n            WebkitLineClamp: lines,\n        },\n});\n\n/** Box shadow used on multiple elements in dark mode */\nexport const darkModeBoxShadow = { boxShadow: \"0 0 5px rgba(0, 0, 0, .2)\" };\n\ntype InfoTooltipProps = {\n    info: JSX.Element | string;\n};\n\nexport const InfoTooltip: React.FC<InfoTooltipProps> = ({ info }) => (\n    <WithTooltip\n        tooltip={info}\n        tooltipCss={{ width: \"min(85vw, 460px)\" }}\n        css={{\n            display: \"inline-block\",\n            verticalAlign: \"middle\",\n            fontWeight: \"normal\",\n            marginLeft: 8,\n        }}\n    >\n        <span><LuInfo tabIndex={0} /></span>\n    </WithTooltip>\n);\n\ntype InfoWithTooltipProps = {\n    tooltip: string;\n    mode: \"info\" | \"warning\";\n}\n\nexport const InfoWithTooltip: React.FC<InfoWithTooltipProps> = ({ tooltip, mode }) => (\n    <WithTooltip\n        {...{ tooltip }}\n        css={{ display: \"flex\", fontWeight: \"normal\" }}\n        tooltipCss={{ width: \"min(85vw, 460px)\" }}\n    >\n        <span css={{ marginLeft: 6, display: \"flex\", alignItems: \"center\" }}>\n            {mode === \"info\" ? <LuInfo /> : <LuAlertTriangle css={{ color: COLORS.danger0 }}/>}\n        </span>\n    </WithTooltip>\n);\n","import { ReactNode, forwardRef, useEffect, useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { ProtoButton, useColorScheme } from \"@opencast/appkit\";\n\nimport { ellipsisOverflowCss, focusStyle } from \".\";\nimport { COLORS } from \"../color\";\nimport { Creators } from \"./Video\";\n\n\nexport const TitleLabel: React.FC<{ htmlFor: string }> = ({ htmlFor }) => {\n    const { t } = useTranslation();\n    return (\n        <label {...{ htmlFor }}>\n            {t(\"upload.metadata.title\")}\n            <FieldIsRequiredNote />\n        </label>\n    );\n};\n\nexport const FieldIsRequiredNote: React.FC = () => {\n    const { t } = useTranslation();\n\n    return <span css={{ fontWeight: \"normal\" }}>\n        {\" (\"}\n        <em>{t(\"upload.metadata.required\")}</em>\n        {\")\"}\n    </span>;\n};\n\n/** Separates different inputs in the metadata form */\nexport const InputContainer: React.FC<{ children: ReactNode }> = ({ children }) => (\n    <div css={{ margin: \"16px 0 \" }}>{children}</div>\n);\n\ntype SmallDescriptionProps = {\n    text?: string | null;\n    lines?: number;\n    className?: string;\n};\n\n/**\n * An event's or series' description in at most `lines` lines. The text is not\n * transformed at all, but emitted as is.\n */\nexport const SmallDescription: React.FC<SmallDescriptionProps> = ({\n    text,\n    className,\n    lines = 2,\n}) => {\n    const { t } = useTranslation();\n    const isDark = useColorScheme().scheme === \"dark\";\n    const sharedStyle = {\n        fontSize: 13,\n        marginTop: 4,\n        color: COLORS.neutral60,\n    };\n\n    if (text === null) {\n        return <div {...{ className }} css={{\n            ...sharedStyle,\n            fontStyle: \"italic\",\n            color: isDark ? COLORS.neutral60 : COLORS.neutral50,\n        }}>{t(\"manage.my-videos.no-description\")}</div>;\n    } else {\n        return <div {...{ className }} css={{\n            ...sharedStyle,\n            maxWidth: 800,\n            color: isDark ? COLORS.neutral70 : COLORS.neutral60,\n            ...ellipsisOverflowCss(lines),\n        }}>{text}</div>;\n    }\n};\n\n\ntype DescriptionProps = {\n    text?: string | null;\n    className?: string;\n};\n\n/**\n * Display an event's or series' description. The text is transformed slightly\n * into proper paragraphs.\n */\nexport const Description = forwardRef<HTMLDivElement, DescriptionProps>(\n    ({ text, className }, ref) => {\n        const { t } = useTranslation();\n\n        const stripped = text?.trim();\n        if (!stripped) {\n            return <div {...{ className }} css={{ fontStyle: \"italic\" }}>\n                {t(\"manage.my-videos.no-description\")}\n            </div>;\n        }\n\n        // We split the whole description by empty lines (two or more consecutive\n        // newlines). That's the typical \"make paragraphs from text\" algorithm also\n        // used by Markdown. However, we capture those newlines to be able to\n        // output any extra (in addition to two) newlines. If a user typed many\n        // newlines in their description, they probably want to have more space\n        // there. The newlines between and within the paragraphs are then displayed\n        // via `white-space: pre-line` below.\n        const paragraphs = stripped.split(/(\\n{2,})/);\n\n        // TODO: auto link URL-like things?\n        return (\n            <div ref ={ref} {...{ className }} css={{\n                lineHeight: \"1.43em\",\n                whiteSpace: \"pre-line\",\n                \"& > p:not(:first-child)\": {\n                    marginTop: 8,\n                },\n            }}>\n                {paragraphs.map((s, i) => i % 2 === 0\n                    ? <p key={i}>{s}</p>\n                    : s.slice(2))}\n            </div>\n        );\n    },\n);\n\ntype CollapsibleDescriptionProps = {\n    type: \"series\" | \"video\";\n    description?: string | null;\n    creators?: readonly string[];\n    bottomPadding: number;\n}\n\nexport const CollapsibleDescription: React.FC<CollapsibleDescriptionProps> = (\n    { type, description, creators, bottomPadding }\n) => {\n    const { t } = useTranslation();\n    const isVideo = type === \"video\";\n\n    const descriptionRef = useRef<HTMLDivElement>(null);\n    const descriptionContainerRef = useRef<HTMLDivElement>(null);\n\n    const [expanded, setExpanded] = useState(false);\n    const [showButton, setShowButton] = useState(false);\n\n    const resizeObserver = new ResizeObserver(() => {\n        if (descriptionRef.current && descriptionContainerRef.current) {\n            setShowButton(\n                descriptionRef.current.scrollHeight > descriptionContainerRef.current.offsetHeight\n                || expanded,\n            );\n        }\n    });\n\n    useEffect(() => {\n        if (descriptionRef.current) {\n            resizeObserver.observe(descriptionRef.current);\n        }\n\n        return () => resizeObserver.disconnect();\n    });\n\n    const InnerDescription: React.FC<({ truncated?: boolean })> = ({ truncated = false }) => <>\n        {creators && <Creators creators={creators} css={{\n            fontWeight: \"bold\",\n            marginBottom: 12,\n        }} />}\n        <Description\n            text={description}\n            css={{\n                color: COLORS.neutral80,\n                fontSize: 14,\n                maxWidth: isVideo ? \"90ch\" : \"85ch\",\n                ...truncated && ellipsisOverflowCss(6),\n            }}\n        />\n    </>;\n\n    const sharedStyle = {\n        padding: isVideo ? \"20px 22px\" : \"8px 12px\",\n        ...showButton && {\n            paddingBottom: expanded ? bottomPadding : 26,\n        },\n    };\n\n    return (\n        <div ref={descriptionContainerRef} css={{\n            flex: description ? \"1 400px\" : \"1 200px\",\n            alignSelf: \"flex-start\",\n            position: \"relative\",\n            overflow: \"hidden\",\n        }}>\n            <div ref={descriptionRef} css={{\n                position: expanded ? \"initial\" : \"absolute\",\n                top: 0,\n                left: 0,\n                ...sharedStyle,\n            }}><InnerDescription /></div>\n            <div css={{\n                visibility: \"hidden\",\n                ...sharedStyle,\n                ...expanded && { display: \"none\" },\n            }}><InnerDescription truncated /></div>\n            <div css={{\n                ...!showButton && { display: \"none\" },\n                ...!expanded && {\n                    background: `linear-gradient(transparent, ${COLORS.neutral10} 60%)`,\n                    paddingTop: 30,\n                },\n                position: \"absolute\",\n                bottom: 0,\n                left: 0,\n                right: 0,\n            }}>\n                <ProtoButton onClick={() => setExpanded(b => !b)} css={{\n                    textAlign: \"center\",\n                    fontSize: 12,\n                    ...isVideo ? {\n                        borderRadius: \"0 0 8px 8px\",\n                        padding: \"4px 0\",\n                        width: \"100%\",\n                    } : {\n                        borderRadius: 8,\n                        padding: \"4px 8px\",\n                        marginLeft: 4,\n                    },\n                    \":hover, :focus-visible\": { backgroundColor: COLORS.neutral15 },\n                    ...focusStyle({ inset: true }),\n                }}>\n                    <b>\n                        {expanded\n                            ? t(\"video.description.show-less\")\n                            : t(\"video.description.show-more\")\n                        }\n                    </b>\n                </ProtoButton>\n            </div>\n        </div>\n    );\n};\n","import {\n    Dispatch,\n    MutableRefObject,\n    PropsWithChildren,\n    SetStateAction,\n    createContext,\n    useContext,\n    useRef,\n    useState,\n} from \"react\";\nimport { PaellaState } from \"./Paella\";\nimport { bug } from \"@opencast/appkit\";\n\ntype PlayerContext = {\n    paella: MutableRefObject<PaellaState | undefined>;\n    playerIsLoaded: boolean;\n    setPlayerIsLoaded: Dispatch<SetStateAction<boolean>>;\n};\n\nconst PlayerContext = createContext<PlayerContext | null>(null);\n\nexport const PlayerContextProvider: React.FC<PropsWithChildren> = ({ children }) => {\n    const paella = useRef<PaellaState>();\n    const [playerIsLoaded, setPlayerIsLoaded] = useState(false);\n\n    return <PlayerContext.Provider value={{ paella, playerIsLoaded, setPlayerIsLoaded }}>\n        {children}\n    </PlayerContext.Provider>;\n};\n\nexport const usePlayerContext = () => useContext(PlayerContext)\n    ?? bug(\"Player context is not initialized!\");\n\n","import { Paella } from \"paella-core\";\nimport React, { createContext, useContext, PropsWithChildren } from \"react\";\n\ntype PlayerGroupContext = {\n    players: Set<Paella> | null;\n    register: (player: Paella) => void;\n    unregister: (player: Paella) => void;\n}\n\nconst PlayerGroupContext = createContext<PlayerGroupContext>({\n    players: null,\n    register: () => {},\n    unregister: () => {},\n});\n\nexport const PlayerGroupProvider: React.FC<PropsWithChildren> = ({ children }) => {\n    const players = new Set<Paella>(null);\n\n    const register = (player: Paella) => {\n        players.add(player);\n    };\n\n    const unregister = (player: Paella) => {\n        players.delete(player);\n    };\n\n    return (\n        <PlayerGroupContext.Provider value={{ players, register, unregister }}>\n            {children}\n        </PlayerGroupContext.Provider>\n    );\n};\n\nexport const usePlayerGroupContext = () => useContext(PlayerGroupContext);\n","import React, { PropsWithChildren, Suspense, useEffect, useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { LuClock } from \"react-icons/lu\";\nimport { HiOutlineStatusOffline } from \"react-icons/hi\";\nimport { BREAKPOINT_MEDIUM } from \"../../GlobalStyle\";\nimport { match, screenWidthAtMost, useColorScheme } from \"@opencast/appkit\";\n\nimport { MAIN_PADDING } from \"../../layout/Root\";\nimport { ExtraMetadata, useForceRerender } from \"../../util\";\nimport { getEventTimeInfo } from \"../../util/video\";\nimport { Spinner } from \"@opencast/appkit\";\nimport { RelativeDate } from \"../time\";\nimport { COLORS } from \"../../color\";\n\n\nexport type PlayerProps = {\n    event: PlayerEvent;\n\n    /** A function to execute when an event goes from pending to live or from live to ended. */\n    onEventStateChange?: () => void;\n\n    className?: string;\n};\n\nexport type PlayerEvent = {\n    title: string;\n    created: string;\n    isLive: boolean;\n    opencastId: string;\n    description?: string | null;\n    creators: readonly string[];\n    metadata: ExtraMetadata;\n    series?: null | {\n        opencastId: string;\n        title: string;\n    };\n    syncedData: {\n        updated: string;\n        startTime?: string | null;\n        endTime?: string | null;\n        duration: number;\n        tracks: readonly Track[];\n        captions: readonly Caption[];\n        thumbnail?: string | null;\n        segments: readonly Segment[];\n    };\n};\n\nexport type Track = {\n    uri: string;\n    flavor: string;\n    mimetype?: string | null;\n    resolution?: readonly number[] | null;\n    isMaster?: boolean | null;\n};\n\nexport type Caption = {\n    uri: string;\n    lang?: string | null;\n};\n\nexport type Segment = {\n    uri: string;\n    startTime: number;\n}\n\n/**\n * Video player.\n *\n * This is currently always Paella, but we once had two players that were used\n * depending on the number of tracks. For now we removed the other player, but\n * we might have multiple players in the future again. That's the reason for\n * leaving a bit of the \"dispatch\" logic in place.\n */\nexport const Player: React.FC<PlayerProps> = ({ event, onEventStateChange }) => {\n    const { startTime, endTime, hasStarted, hasEnded } = getEventTimeInfo(event);\n    const rerender = useForceRerender();\n\n    // When the livestream starts or ends, rerender the parent. We add some\n    // extra time (500ms) to be sure the stream is actually already running by\n    // that time.\n    useEffect(() => {\n        const handler = () => {\n            rerender();\n            onEventStateChange?.();\n        };\n\n        const handles: ReturnType<typeof setTimeout>[] = [];\n        if (event.isLive && hasStarted === false) {\n            handles.push(setTimeout(handler, delayTill(startTime)));\n        }\n        if (event.isLive && hasEnded === false) {\n            handles.push(setTimeout(handler, delayTill(endTime)));\n        }\n        return () => handles.forEach(clearTimeout);\n    });\n\n    return (\n        <Suspense fallback={<PlayerFallback image={event.syncedData.thumbnail} />}>\n            {event.isLive && (hasStarted === false || hasEnded === true)\n                ? <LiveEventPlaceholder {...{\n                    ...hasStarted === false\n                        ? { mode: \"pending\", startTime }\n                        : { mode: \"ended\" },\n                }} />\n                : <LoadPaellaPlayer {...{ event }} />}\n        </Suspense>\n    );\n};\n\n/**\n * Returns the duration till `date` as a value suitable for putting into\n * `setTimeout`. We have to do a special treatment as `setTimeout`\n * immediately executes the handler if the number is bigger than 2^31.\n */\nconst delayTill = (date: Date): number => {\n    const raw = date.getTime() - Date.now() + 500;\n    return Math.min(raw, 2_147_483_647);\n};\n\n/**\n * A more constrained version of the player component for use in normal page flow.\n * You probably want this one.\n * Important note: This needs to be placed inside a `<PlayerContextProvider>`\n * in order to work correctly.\n */\nexport const InlinePlayer: React.FC<PlayerProps> = ({ className, event, ...playerProps }) => {\n    const aspectRatio = getPlayerAspectRatio(event.syncedData.tracks);\n    const isDark = useColorScheme().scheme === \"dark\";\n    const ref = useRef<HTMLDivElement>(null);\n\n    const minControlWidth = 470;\n    const [controlsFit, setControlsFit] = useState(true);\n\n    const resizeObserver = new ResizeObserver(() => {\n        if (ref.current) {\n            const inferredWidth = ref.current.offsetHeight * aspectRatio[0] / aspectRatio[1];\n            setControlsFit(inferredWidth >= minControlWidth);\n        }\n    });\n\n    useEffect(() => {\n        if (ref.current) {\n            resizeObserver.observe(ref.current);\n        }\n        return () => resizeObserver.disconnect();\n    });\n\n    return (\n        <div {...{ className, ref }} css={{\n            \"div.loader-container\": {\n                backgroundColor: isDark ? COLORS.neutral20 : \"inherit\",\n            },\n            \"div.video-canvas\": {\n                backgroundColor: \"#000\",\n            },\n            \"div.preview-container\": {\n                backgroundColor: \"#000 !important\",\n                \"div, div img\": {\n                    height: \"inherit\",\n                },\n                \"div img\": {\n                    display: \"block\",\n                    margin: \"0 auto\",\n                    width: \"unset !important\",\n                },\n            },\n            display: \"flex\",\n            flexDirection: \"column\",\n            // We want to be able to see the full header, the video title and some metadata.\n            // So: full height minus header, minus separation line (18px), minus main\n            // padding (16px), minus breadcrumbs (roughly 42px), minus the amount of space\n            // we want to see below the video (roughly 120px).\n            maxHeight: \"calc(100vh - var(--header-height) - 18px - 16px - 38px - 60px)\",\n            minHeight: `min(320px, (100vw - 32px) / (${aspectRatio[0]} / ${aspectRatio[1]}))`,\n            width: controlsFit ? \"unset\" : \"100%\",\n            maxWidth: \"100%\",\n            aspectRatio: `${aspectRatio[0]} / ${aspectRatio[1]}`,\n\n            // If the player gets too small, the controls are pretty crammed, so\n            // we use all available width.\n            [screenWidthAtMost(380)]: {\n                margin: `0 -${MAIN_PADDING}px`,\n                width: `calc(100% + ${2 * MAIN_PADDING}px)`,\n                maxWidth: `calc(100% + ${2 * MAIN_PADDING}px)`,\n            },\n        }}>\n            <Player {...{ event, ...playerProps }} />\n        </div>\n    );\n};\n\n/**\n * Finds a suitable aspect ratio for our height/width limiting below. For events\n * with multiple streams, we just use 16:9 because it's unclear what else we\n * should use with multi stream video.\n */\nexport const getPlayerAspectRatio = (tracks: readonly Track[]): [number, number] => {\n    const flavors = new Set(tracks.map(t => t.flavor));\n    const default_: [number, number] = [16, 9];\n    return flavors.size > 1\n        ? default_\n        : tracks[0].resolution as [number, number] ?? default_;\n};\n\n\nconst LoadPaellaPlayer = React.lazy(() => import(/* webpackChunkName: \"paella\" */ \"./Paella\"));\n\n/**\n * Suspense fallback while the player JS files are still loading. This is\n * completely unused right now as the player code is embedded in the main\n * bundle. Splitting the bundle is tracked by #257.\n */\nconst PlayerFallback: React.FC<{ image?: string | null }> = ({ image }) => {\n    const { t } = useTranslation();\n\n    return (\n        <div css={{\n            position: \"relative\",\n            width: \"100%\",\n            height: \"100%\",\n            display: \"flex\",\n            alignItems: \"center\",\n            justifyContent: \"center\",\n        }}>\n            {image && <img src={image} css={{\n                objectFit: \"cover\",\n                opacity: 0.5,\n                position: \"absolute\",\n                width: \"100%\",\n                height: \"100%\",\n            }} />}\n            <div css={{\n                zIndex: 10,\n                padding: 16,\n                minWidth: 140,\n                textAlign: \"center\",\n                borderRadius: 4,\n                backgroundColor: \"rgba(255 255 255 / 50%)\",\n                border: \"1px solid rgba(255 255 255 / 15%)\",\n                \"@supports(backdrop-filter: none)\": {\n                    backgroundColor: \"rgba(255 255 255 / 10%)\",\n                    backdropFilter: \"blur(5px)\",\n                },\n            }}>\n                <Spinner size={32} />\n                <div css={{ marginTop: 8 }}>{t(\"general.loading\")}</div>\n            </div>\n        </div>\n    );\n};\n\nexport const isHlsTrack = (t: Track) =>\n    t.mimetype === \"application/x-mpegURL\" || t.uri.endsWith(\".m3u8\");\n\n\nexport const PlayerPlaceholder: React.FC<PropsWithChildren> = ({ children }) => {\n    const isDark = useColorScheme().scheme === \"dark\";\n    return <div css={{\n        height: \"100%\",\n        backgroundColor: isDark ? COLORS.neutral15 : COLORS.neutral80,\n        color: \"white\",\n        padding: 8,\n        display: \"flex\",\n        flexDirection: \"column\",\n        alignItems: \"center\",\n        justifyContent: \"center\",\n        gap: \"5%\",\n        textAlign: \"center\",\n        \"& > svg\": {\n            fontSize: 40,\n            margin: \"16px 0\",\n            strokeWidth: 1.5,\n            ...isDark && { color: COLORS.neutral80 },\n        },\n        div: {\n            ...isDark && { color: COLORS.neutral80 },\n        },\n        [screenWidthAtMost(BREAKPOINT_MEDIUM)]: {\n            \"& > *\": {\n                transform: \"scale(0.8)\",\n            },\n        },\n    }}>\n        {children}\n    </div>;\n};\n\ntype LiveEventPlaceholderProps =\n    | { mode: \"pending\"; startTime: Date }\n    | { mode: \"ended\" };\n\nconst LiveEventPlaceholder: React.FC<LiveEventPlaceholderProps> = props => {\n    const { t } = useTranslation();\n\n    return <PlayerPlaceholder>\n        {match(props.mode, {\n            \"pending\": () => <>\n                <LuClock />\n                <div>{t(\"video.stream-not-started-yet\")}</div>\n            </>,\n            \"ended\": () => <>\n                <HiOutlineStatusOffline />\n                <div>{t(\"video.stream-ended\")}</div>\n            </>,\n        })}\n        {props.mode === \"pending\" && (\n            <div css={{\n                backgroundColor: \"black\",\n                borderRadius: 4,\n                padding: \"8px 16px\",\n            }}>\n                <RelativeDate date={props.startTime} isLive />\n            </div>\n        )}\n    </PlayerPlaceholder>;\n};\n","import { useEffect, useState } from \"react\";\nimport { WithTooltip } from \"@opencast/appkit\";\nimport { useTranslation } from \"react-i18next\";\nimport i18n from \"../i18n\";\n\n\n/**\n * Calculates the time difference between a given date and a moment\n * (which is typically the current time).\n * Returns both the time as number (i.e. 2.1234...)\n * and formatted string (i.e. \"2 days ago\").\n */\nexport const relativeDate = (date: Date, moment: number): [number, string] => {\n    const secsAgo = Math.floor((moment - date.getTime()) / 1000);\n    const secsDiff = Math.abs(secsAgo);\n\n    const MINUTE = 60;\n    const HOUR = 60 * MINUTE;\n    const DAY = 24 * HOUR;\n    const WEEK = 7 * DAY;\n    const MONTH = 30.5 * DAY;\n    const YEAR = 365.25 * DAY;\n\n    let timeAndUnit: [number, Intl.RelativeTimeFormatUnit];\n    if (secsDiff <= 55) {\n        timeAndUnit = [secsAgo, \"second\"];\n    } else if (secsDiff <= 55 * MINUTE) {\n        timeAndUnit = [secsAgo / MINUTE, \"minute\"];\n    } else if (secsDiff <= 23 * HOUR) {\n        timeAndUnit = [secsAgo / HOUR, \"hour\"];\n    } else if (secsDiff <= 6 * DAY) {\n        timeAndUnit = [secsAgo / DAY, \"day\"];\n    } else if (secsDiff <= 3.5 * WEEK) {\n        timeAndUnit = [secsAgo / WEEK, \"week\"];\n    } else if (secsDiff <= 11 * MONTH) {\n        timeAndUnit = [secsAgo / MONTH, \"month\"];\n    } else {\n        timeAndUnit = [secsAgo / YEAR, \"year\"];\n    }\n\n    const [time, unit] = timeAndUnit;\n    const intl = new Intl.RelativeTimeFormat(i18n.language);\n    const relative = intl.format(Math.round(-time), unit);\n\n    return [time, relative];\n};\n\ntype RelativeDateProps = {\n    date: Date;\n    isLive: boolean;\n    noTooltip?: boolean;\n};\n\n/**\n * Formats a date as something relative like \"3 days ago\"\n * or \"Started 3 days ago\" in case of live events.\n */\nexport const RelativeDate: React.FC<RelativeDateProps> = ({ date, isLive, noTooltip = false }) => {\n    const { t, i18n } = useTranslation();\n    const [now, setNow] = useState(Date.now());\n    const secsAgo = Math.floor((now - date.getTime()) / 1000);\n\n    // We rerender this component regularly so that it's basically always up to\n    // date. Most dates are more than a couple minutes in the past, and for\n    // those we only update every 30 seconds to reduce CPU usage minimally.\n    useEffect(() => {\n        const intervalLength = secsAgo > 2 * 60 ? 30000 : 1000;\n        const interval = setInterval(() => setNow(Date.now()), intervalLength);\n        return () => clearInterval(interval);\n    });\n\n    const [time, relative] = relativeDate(date, now);\n    const prefix = time < 0 ? \"video.starts-in\" : \"video.started-when\";\n\n    const prettyDate = isLive ? t(prefix, { duration: relative }) : relative;\n    const preciseDate = date.toLocaleString(i18n.language);\n\n    return noTooltip\n        ? <time dateTime={date.toISOString()}>{prettyDate}</time>\n        : <WithTooltip tooltip={preciseDate} placement=\"bottom\" distance={2}>\n            <time dateTime={date.toISOString()}>{prettyDate}</time>\n        </WithTooltip>;\n};\n\n","import { i18n, ParseKeys } from \"i18next\";\nimport React from \"react\";\nimport { ReactNode } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { match } from \"@opencast/appkit\";\n\nimport { APIError, NotJson, ServerError } from \"../relay\";\n\n\n/** A network error while fetching the response. */\nexport class NetworkError extends Error {\n    public inner: Error;\n\n    public constructor(inner: Error) {\n        super();\n        this.name = \"Network Error\";\n        this.inner = inner;\n        this.message = `network error while contacting GraphQL API: ${inner}`;\n    }\n}\n\ntype ErrorDisplayInfo = {\n    /**\n     * A list of causes: human readable strings (already translated). Usually\n     * contains a single element.\n     */\n    causes: Set<string>;\n\n    /**\n     * If `true`, this error is likely caused by a programming bug or server\n     * configuration error: there is nothing the user can do about it.\n     */\n    probablyOurFault: boolean;\n\n    /**\n     * If `true`, indicates that a broken or unstable internet connection of the\n     * user might be the problem.\n     */\n    potentiallyInternetProblem: boolean;\n};\n\nexport const errorDisplayInfo = (error: unknown, i18n: i18n): ErrorDisplayInfo => {\n    const t = i18n.t.bind(i18n);\n\n    if (error instanceof NetworkError) {\n        return {\n            causes: new Set([t(\"errors.network-error\")]),\n            probablyOurFault: false,\n            potentiallyInternetProblem: true,\n        };\n    } else if (error instanceof ServerError) {\n        const cause = error.response.status >= 500 && error.response.status < 600\n            ? t(\"errors.internal-server-error\")\n            : t(\"errors.unexpected-server-error\");\n\n        return {\n            causes: new Set([cause]),\n            probablyOurFault: true,\n            potentiallyInternetProblem: false,\n        };\n    } else if (error instanceof NotJson) {\n        return {\n            causes: new Set([t(\"errors.unexpected-response\")]),\n            probablyOurFault: true,\n            potentiallyInternetProblem: false,\n        };\n    } else if (error instanceof APIError) {\n        // OK response, but it contained GraphQL errors.\n        const kinds = new Set();\n        const causes = new Set<string>();\n        let notOurFault = true;\n        for (const err of error.errors) {\n            // Use a message fitting to the exact error key, if it is present.\n            const translationKey = err.key ? `api-remote-errors.${err.key}` : null;\n            if (translationKey && i18n.exists(translationKey)) {\n                const msg = t(translationKey as ParseKeys);\n                causes.add(msg);\n                continue;\n            }\n\n            // Otherwise, derive an error message from the error kind. We\n            // use a set to make sure we only emit each kind-derived error\n            // message once.\n            if (kinds.has(err.kind)) {\n                continue;\n            }\n\n            kinds.add(err.kind);\n\n            // The error kind should always be here. But since we are in an\n            // error handler, and something is already wrong, we are\n            // careful and handle this case, too.\n            if (!err.kind) {\n                notOurFault = false;\n                causes.add(t(\"errors.unexpected-server-error\"));\n            } else {\n                const msg = match(err.kind, {\n                    INTERNAL_SERVER_ERROR: () => {\n                        notOurFault = false;\n                        return t(\"errors.internal-server-error\");\n                    },\n                    INVALID_INPUT: () => t(\"errors.invalid-input\"),\n                    NOT_AUTHORIZED: () => t(\"errors.not-authorized\"),\n                    OPENCAST_UNAVAILABLE: () => {\n                        notOurFault = false;\n                        return t(\"errors.opencast-unavailable\");\n                    },\n                });\n                causes.add(msg);\n            }\n        }\n\n\n        if (causes.size === 0) {\n            // This should never happen?\n            return {\n                causes: new Set([t(\"errors.unexpected-server-error\")]),\n                probablyOurFault: true,\n                potentiallyInternetProblem: false,\n            };\n        } else {\n            return {\n                causes,\n                probablyOurFault: !notOurFault,\n                potentiallyInternetProblem: false,\n            };\n        }\n    } else {\n        return {\n            causes: new Set([t(\"errors.unknown\")]),\n            probablyOurFault: true,\n            potentiallyInternetProblem: false,\n        };\n    }\n};\n\ntype ErrorDisplayProps = {\n    failedAction?: string;\n} & (\n    { info: ErrorDisplayInfo } | { error: unknown }\n);\n\nexport const ErrorDisplay: React.FC<ErrorDisplayProps> = ({ failedAction, ...props }) => {\n    const { t, i18n } = useTranslation();\n    const info = \"info\" in props ? props.info : errorDisplayInfo(props.error, i18n);\n    const causes = Array.from(info.causes);\n    const textColor = { color: \"var(--color-danger0-bw-inverted, white)\" };\n\n    return <>\n        <p css={textColor}>\n            {failedAction && failedAction + \" \"}\n            {causes.length === 1\n                ? causes[0] + \" \"\n                : <ul>{causes.map(cause => <li key={cause}>{cause}</li>)}</ul>\n            }\n            {info.potentiallyInternetProblem && t(\"errors.are-you-connected-to-internet\")}\n        </p>\n        {info.probablyOurFault && <p css={{ marginTop: 16, fontSize: 14, ...textColor }}>\n            {t(\"errors.not-your-fault\")}\n        </p>}\n    </>;\n};\n\n\ntype GlobalErrorBoundaryState = {\n    error?: unknown;\n};\n\ntype GlobalErrorBoundaryProps = {\n    children: ReactNode;\n};\n\nexport class GlobalErrorBoundary\n    extends React.Component<GlobalErrorBoundaryProps, GlobalErrorBoundaryState> {\n    public constructor(props: GlobalErrorBoundaryProps) {\n        super(props);\n        this.state = { error: undefined };\n    }\n\n    public static getDerivedStateFromError(error: unknown): GlobalErrorBoundaryState {\n        return { error };\n    }\n\n    public render(): ReactNode {\n        const error = this.state.error;\n        if (!error) {\n            return this.props.children;\n        }\n\n        // We are using English here instead of translated strings in order to\n        // have fewer possibilities this component will error itself. If this\n        // last error catcher errors, that would be bad. And since users should\n        // not see this anyway, I think it's fine. Even if users don't\n        // understand English at all, \"error\" is usually understood and the\n        // design should convey most of the information anyway.\n\n        if (window === window.top) {\n            return (\n                <div css={{\n                    margin: \"auto\",\n                    paddingTop: \"5vh\",\n                    width: 400,\n                    maxWidth: \"95%\",\n                    fontFamily: \"var(--main-font), sans-serif\",\n                }}>\n                    <div css={{\n                        backgroundColor: \"var(--color-danger0, #b64235)\",\n                        color: \"var(--color-danger0-bw-inverted, white)\",\n                        borderRadius: 4,\n                        padding: 16,\n                    }}>\n                        <h1 css={{ marginTop: 0, fontSize: 28 }}>Critical Error</h1>\n                        <p css={{ color: \"var(--color-danger0-bw-inverted, white)\" }}>\n                            A critical error has occurred!\n                            The application cannot resume in this state.\n                            Please try refreshing the page.\n                            If that does not work, please contact your system administrator.\n                            Sorry for the inconvenience!\n                        </p>\n                    </div>\n                    <div css={{ marginTop: 32 }}>\n                        <h2 css={{ fontSize: 22 }}>Information for developers</h2>\n                        <pre>\n                            <code css={{ whiteSpace: \"pre-wrap\" }}>\n                                {String(error)}\n                            </code>\n                        </pre>\n                    </div>\n                </div>\n            );\n        } else {\n            return <div css={{\n                fontFamily: \"var(--main-font), sans-serif\",\n                height: \"100%\",\n                backgroundColor: \"var(--color-neutral10, #333333)\",\n                color: \"white\",\n                padding: 8,\n                display: \"flex\",\n                flexDirection: \"column\",\n                alignItems: \"center\",\n                justifyContent: \"center\",\n                gap: \"5%\",\n                textAlign: \"center\",\n            }}>\n                <div>An error occurred in the embedded application</div>\n            </div>;\n        }\n    }\n}\n","import { i18n } from \"i18next\";\nimport { MutableRefObject, useEffect, useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { bug, match } from \"@opencast/appkit\";\n\nimport CONFIG, { TranslatedString } from \"../config\";\nimport { TimeUnit } from \"../ui/Input\";\n\n\n/**\n * Retrieves the key of an ID by stripping the \"kind\" prefix. If a key\n * (already without \"kind\" prefix) is passed as argument, it is returned\n * untouched. If the argument has the wrong length, meaning it's neither an ID\n * nor a key, this panics.\n */\nexport function keyOfId(id: string): string {\n    return match(id.length, {\n        13: () => id.substring(2),\n        11: () => id,\n    }, () => bug(\"argument of `keyOfId` is neither a key nor an ID\"));\n}\n\n/** Constructs event ID for graphQL by adding the \"ev\" prefix. */\nexport const eventId = (key: string) => `ev${key}`;\n\n/** Constructs series ID for graphQL by adding the \"sr\" prefix. */\nexport const seriesId = (key: string) => `sr${key}`;\n\n/** Constructs series ID for graphQL by adding the \"sr\" prefix. */\nexport const playlistId = (key: string) => `pl${key}`;\n\n/**\n * Create a comparison function for `Array.prototype.sort` comparing whatever\n * the given key function returns as numbers.\n */\nexport function compareByKey<T>(key: (item: T) => number): (itemA: T, itemB: T) => number {\n    return (itemA, itemB) => key(itemB) - key(itemA);\n}\n\n/** Swap a binary function's arguments. Useful for example for comparison functions. */\nexport function swap<T, U, R>(f: (x: T, y: U) => R): (y: U, x: T) => R {\n    return (y, x) => f(x, y);\n}\n\n/**\n * A safe way to make a character class matching regexp out of a string of characters.\n * Note that characters that have a meaning inside of a character class are unconditionally escaped,\n * i.e. `characterClass(\"a-z\")` might not do what you think it does!\n */\nexport function characterClass(characters: string): string {\n    characters = characters.replace(\n        /[\\\\\\]^-]/gu,\n        specialChar => `\\\\${specialChar}`,\n    );\n    return `[${characters}]`;\n}\n\n/**\n * Sets the HTML title to the given string (plus base title) on mount, resets\n * it on unmount. If the given title is `null`, does not do anything on mount.\n */\nexport const useTitle = (title?: string | null, noSuffix = false): void => {\n    const siteTitle = useTranslatedConfig(CONFIG.siteTitle);\n    useEffect(() => {\n        if (title != null) {\n            document.title = noSuffix ? title : `${title} • ${siteTitle}`;\n        }\n\n        // On unmount, we set the title to the base title.\n        return () => {\n            document.title = siteTitle;\n        };\n    });\n};\n\n/** Extracts the string corresponding to the current language from a translated config string. */\nexport const useTranslatedConfig = (s: TranslatedString): string => {\n    const { i18n } = useTranslation();\n    return translatedConfig(s, i18n);\n};\n\n/** Extracts the string corresponding to `i18n.resolvedLanguage` from a translated config string. */\nexport const translatedConfig = (s: TranslatedString, i18n: i18n): string =>\n    getTranslatedString(s, i18n.resolvedLanguage);\n\nexport const getTranslatedString = (s: TranslatedString, lang: string | undefined): string => {\n    const l = lang ?? \"en\";\n    return (l in s ? s[l as keyof TranslatedString] : undefined) ?? s.en;\n};\n\nexport const useOnOutsideClick = (\n    ref: MutableRefObject<Node | null>,\n    callback: () => void,\n): void => {\n    useEffect(() => {\n        const handler = (event: MouseEvent) => {\n            const target = event.target;\n            if (ref.current && target instanceof Element && !ref.current.contains(target)) {\n                callback();\n            }\n        };\n\n        document.addEventListener(\"mousedown\", handler);\n        return () => document.removeEventListener(\"mousedown\", handler);\n    });\n};\n\n/** Helper hook returning a function that, when called, forces a rerender of the component. */\nexport const useForceRerender = (): () => void => {\n    const setState = useState({})[1];\n    return () => setState({});\n};\n\n/**\n * Like `useState`, but also returns a ref object containing that state. This is\n * useful if the current state needs to be accessed from callbacks that were\n * created when the state had a different value.\n */\nexport const useRefState = <T, >(\n    initialValue: T,\n): [MutableRefObject<T>, (newValue: T) => void] => {\n    const forceRerender = useForceRerender();\n    const ref = useRef<T>(initialValue);\n    const update = (newValue: T) => {\n        ref.current = newValue;\n        forceRerender();\n    };\n\n    return [ref, update];\n};\n\n/**\n * Accesses the current value of a ref, signaling an error when it is unbound.\n * Note: **Don't** use this if you expect the ref to be unbound temporarily.\n * This is mainly for accessing refs in event handlers for elements\n * that are guaranteed to be alive as long as the ref itself.\n */\nexport const currentRef = <T>(ref: React.RefObject<T>): T => (\n    ref.current ?? bug(\"ref unexpectedly unbound\")\n);\n\n\n// Some utilities to handle the different lifecycle stages of events and series\ntype OpencastEntity = { syncedData: unknown };\nexport type SyncedOpencastEntity<T extends OpencastEntity> = T & {\n    syncedData: NonNullable<T[\"syncedData\"]>;\n};\nexport const isSynced = <T extends OpencastEntity>(e: T): e is SyncedOpencastEntity<T> => (\n    Boolean(e.syncedData)\n);\n\n/**\n * Adds `<meta name=\"robots\" content=\"noindex\">` to the document `<head>` and\n * removes it when the calling component gets unmounted. Does nothing if\n * `false` is passed as argument.\n */\nexport const useNoindexTag = (noindex = true) => {\n    useEffect(() => {\n        if (!noindex) {\n            return () => {};\n        }\n\n        const tag = document.createElement(\"meta\");\n        tag.setAttribute(\"name\", \"robots\");\n        tag.setAttribute(\"content\", \"noindex\");\n        document.head.appendChild(tag);\n\n        return () => {\n            document.head.removeChild(tag);\n        };\n    });\n};\n\n/** Can be used to debounce API calls or any other function */\nexport const useDebounce = () => {\n    const timeout = useRef<NodeJS.Timeout>();\n\n    const debounce = (fn: (...args: string[]) => void, delay: number) =>\n        (...args: string[]) => {\n            clearTimeout(timeout.current);\n            timeout.current = setTimeout(() => fn(...args), delay);\n        };\n\n    useEffect(() => {\n        if (timeout.current) {\n            clearTimeout(timeout.current);\n        }\n    }, []);\n\n    return { debounce };\n};\n\n/** Formats the given number of milliseconds as ISO 8601 duration string, e.g. \"PT3M47S\" */\nexport const toIsoDuration = (milliseconds: number): string => {\n    let acc = Math.floor(milliseconds / 1000);\n    const seconds = acc % 60;\n    acc = Math.floor(acc / 60);\n    const minutes = acc % 60;\n    acc = Math.floor(acc / 60);\n    const hours = acc;\n\n    return `PT${hours}H${minutes}M${seconds}S`;\n};\n\nexport const isExperimentalFlagSet = () => (\n    window.localStorage.getItem(\"tobiraExperimentalFeatures\") === \"true\"\n);\n\n/**\n * Converts a time string used in URL params like \"01h30m49s\" to seconds.\n */\nexport const timeStringToSeconds = (timeString: string): number => {\n    const timeSplit = /((\\d+)h)?((\\d+)m)?((\\d+)s)?/.exec(timeString);\n    const hours = timeSplit && timeSplit[2] ? parseInt(timeSplit[2]) * 60 * 60 : 0;\n    const minutes = timeSplit && timeSplit[4] ? parseInt(timeSplit[4]) * 60 : 0;\n    const seconds = timeSplit && timeSplit[6] ? parseInt(timeSplit[6]) : 0;\n\n    return hours + minutes + seconds;\n};\n\n/**\n * Formats the given number of seconds as string containing hours, minutes and seconds,\n * e.g. \"0h2m4s\".\n */\nexport const secondsToTimeString = (seconds: number): string => {\n    const formatTime = (time: number, unit: TimeUnit): string =>\n        time > 0 ? time.toString().padStart(2, \"0\") + unit : \"\";\n\n    const hours = formatTime(Math.floor(seconds / 3600), \"h\");\n    const minutes = formatTime(Math.floor((seconds % 3600) / 60), \"m\");\n    const remainingSeconds = formatTime(Math.floor(seconds % 60), \"s\");\n\n    return hours + minutes + remainingSeconds;\n};\n\nexport type ExtraMetadata = Record<string, Record<string, string[]>>;\n","export type PermissionLevel = \"read\" | \"write\" | \"moderate\" | \"admin\" | \"unknown\";\nexport type PermissionLevels = {\n    /** Must include the below `default` and `highest` values. */\n    all: Partial<Record<PermissionLevel, { actions: Set<PermissionLevel> }>>;\n    /** Default action for new entries. */\n    default: PermissionLevel;\n    /** Most privileged action, usually includes every other action. */\n    highest: PermissionLevel;\n}\n\nexport const READ_WRITE_ACTIONS: PermissionLevels = {\n    all: {\n        \"read\": { actions: new Set([\"read\"]) },\n        \"write\": { actions: new Set([\"read\", \"write\"]) },\n    },\n    default: \"read\",\n    highest: \"write\",\n};\n\nexport const MODERATE_ADMIN_ACTIONS: PermissionLevels = {\n    all: {\n        \"moderate\": { actions: new Set([\"moderate\"]) },\n        \"admin\": { actions: new Set([\"moderate\", \"admin\"]) },\n    },\n    default: \"moderate\",\n    highest: \"admin\",\n};\n\n","import { TFunction } from \"i18next\";\nimport { Props as BreadcrumbsProps } from \"../ui/Breadcrumbs\";\n\n\nexport const realmBreadcrumbs = (\n    t: TFunction,\n    realms: readonly ({ name?: string | null; path: string })[],\n): BreadcrumbsProps[\"path\"] => (\n    realms.map(({ name, path }) => ({\n        label: name ?? t(\"realm.missing-name\"),\n        render: name == null ? label => <i>{label}</i> : undefined,\n        link: path,\n    }))\n);\n","import CONFIG from \"../config\";\n\nexport const COMMON_ROLES = {\n    ANONYMOUS: \"ROLE_ANONYMOUS\",\n    ADMIN: \"ROLE_ADMIN\",\n    USER_ADMIN: \"ROLE_USER_ADMIN\",\n    USER: \"ROLE_USER\",\n    TOBIRA_GLOBAL_PAGE_ADMIN: CONFIG.auth.globalPageAdminRole,\n    TOBIRA_GLOBAL_PAGE_MODERATOR: CONFIG.auth.globalPageModeratorRole,\n};\n\n","\ntype EventWithTimeInfo = {\n    created: string;\n    syncedData: {\n        updated: string;\n        startTime?: string | null;\n        endTime?: string | null;\n    };\n};\n\ntype TimeInfo = {\n    created: Date;\n    updated: Date;\n} & (\n    { hasStarted: boolean; startTime: Date }\n    | { hasStarted: null; startTime: null }\n) & (\n    { hasEnded: boolean; endTime: Date }\n    | { hasEnded: null; endTime: null }\n);\n\n/** Converts the string dates into real `Date` objects and adds useful time information. */\nexport const getEventTimeInfo = (event: EventWithTimeInfo): TimeInfo => {\n    const created = new Date(event.created);\n    const updated = new Date(event.syncedData.updated);\n    const startTime = event.syncedData.startTime == null\n        ? null\n        : new Date(event.syncedData.startTime);\n    const endTime = event.syncedData.endTime == null\n        ? null\n        : new Date(event.syncedData.endTime);\n\n    return {\n        created,\n        updated,\n        ...startTime == null\n            ? { startTime, hasStarted: null }\n            : { startTime, hasStarted: startTime < new Date() },\n        ...endTime == null\n            ? { endTime, hasEnded: null }\n            : { endTime, hasEnded: endTime < new Date() },\n    };\n};\n","function _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(r) {\n  if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(e) {\n  if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  return e;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nvar setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _construct(t, e, r) {\n  if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n  var o = [null];\n  o.push.apply(o, e);\n  var p = new (t.bind.apply(t, o))();\n  return r && setPrototypeOf(p, r.prototype), p;\n}\nmodule.exports = _construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nfunction _createForOfIteratorHelper(r, e) {\n  var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (!t) {\n    if (Array.isArray(r) || (t = unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n      t && (r = t);\n      var _n = 0,\n        F = function F() {};\n      return {\n        s: F,\n        n: function n() {\n          return _n >= r.length ? {\n            done: !0\n          } : {\n            done: !1,\n            value: r[_n++]\n          };\n        },\n        e: function e(r) {\n          throw r;\n        },\n        f: F\n      };\n    }\n    throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n  }\n  var o,\n    a = !0,\n    u = !1;\n  return {\n    s: function s() {\n      t = t.call(r);\n    },\n    n: function n() {\n      var r = t.next();\n      return a = r.done, r;\n    },\n    e: function e(r) {\n      u = !0, o = r;\n    },\n    f: function f() {\n      try {\n        a || null == t[\"return\"] || t[\"return\"]();\n      } finally {\n        if (u) throw o;\n      }\n    }\n  };\n}\nmodule.exports = _createForOfIteratorHelper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n  return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(t) {\n  return module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n    return t.__proto__ || Object.getPrototypeOf(t);\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _getPrototypeOf(t);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inheritsLoose(t, o) {\n  t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(e) {\n  return e && e.__esModule ? e : {\n    \"default\": e\n  };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeFunction(t) {\n  try {\n    return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n  } catch (n) {\n    return \"function\" == typeof t;\n  }\n}\nmodule.exports = _isNativeFunction, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n  try {\n    var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n  } catch (t) {}\n  return (module.exports = _isNativeReflectConstruct = function _isNativeReflectConstruct() {\n    return !!t;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(r) {\n  if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var defineProperty = require(\"./defineProperty.js\");\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread2(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nmodule.exports = _objectSpread2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(r, e) {\n  if (null == r) return {};\n  var t = {};\n  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n    if (e.includes(n)) continue;\n    t[n] = r[n];\n  }\n  return t;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(t, e) {\n  return module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n    return t.__proto__ = e, t;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _setPrototypeOf(t, e);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(r) {\n  return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n  }\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nvar setPrototypeOf = require(\"./setPrototypeOf.js\");\nvar isNativeFunction = require(\"./isNativeFunction.js\");\nvar construct = require(\"./construct.js\");\nfunction _wrapNativeSuper(t) {\n  var r = \"function\" == typeof Map ? new Map() : void 0;\n  return module.exports = _wrapNativeSuper = function _wrapNativeSuper(t) {\n    if (null === t || !isNativeFunction(t)) return t;\n    if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n    if (void 0 !== r) {\n      if (r.has(t)) return r.get(t);\n      r.set(t, Wrapper);\n    }\n    function Wrapper() {\n      return construct(t, arguments, getPrototypeOf(this).constructor);\n    }\n    return Wrapper.prototype = Object.create(t.prototype, {\n      constructor: {\n        value: Wrapper,\n        enumerable: !1,\n        writable: !0,\n        configurable: !0\n      }\n    }), setPrototypeOf(Wrapper, t);\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _wrapNativeSuper(t);\n}\nmodule.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n  x: v,\n  y: v\n});\nconst oppositeSideMap = {\n  left: 'right',\n  right: 'left',\n  bottom: 'top',\n  top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n  start: 'end',\n  end: 'start'\n};\nfunction clamp(start, value, end) {\n  return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n  return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n  return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n  return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n  return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n  return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n  return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n  return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n  if (rtl === void 0) {\n    rtl = false;\n  }\n  const alignment = getAlignment(placement);\n  const alignmentAxis = getAlignmentAxis(placement);\n  const length = getAxisLength(alignmentAxis);\n  let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n  if (rects.reference[length] > rects.floating[length]) {\n    mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n  }\n  return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n  const oppositePlacement = getOppositePlacement(placement);\n  return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n  return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n  const lr = ['left', 'right'];\n  const rl = ['right', 'left'];\n  const tb = ['top', 'bottom'];\n  const bt = ['bottom', 'top'];\n  switch (side) {\n    case 'top':\n    case 'bottom':\n      if (rtl) return isStart ? rl : lr;\n      return isStart ? lr : rl;\n    case 'left':\n    case 'right':\n      return isStart ? tb : bt;\n    default:\n      return [];\n  }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n  const alignment = getAlignment(placement);\n  let list = getSideList(getSide(placement), direction === 'start', rtl);\n  if (alignment) {\n    list = list.map(side => side + \"-\" + alignment);\n    if (flipAlignment) {\n      list = list.concat(list.map(getOppositeAlignmentPlacement));\n    }\n  }\n  return list;\n}\nfunction getOppositePlacement(placement) {\n  return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n  return {\n    top: 0,\n    right: 0,\n    bottom: 0,\n    left: 0,\n    ...padding\n  };\n}\nfunction getPaddingObject(padding) {\n  return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n    top: padding,\n    right: padding,\n    bottom: padding,\n    left: padding\n  };\n}\nfunction rectToClientRect(rect) {\n  const {\n    x,\n    y,\n    width,\n    height\n  } = rect;\n  return {\n    width,\n    height,\n    top: y,\n    left: x,\n    right: x + width,\n    bottom: y + height,\n    x,\n    y\n  };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n  let {\n    reference,\n    floating\n  } = _ref;\n  const sideAxis = getSideAxis(placement);\n  const alignmentAxis = getAlignmentAxis(placement);\n  const alignLength = getAxisLength(alignmentAxis);\n  const side = getSide(placement);\n  const isVertical = sideAxis === 'y';\n  const commonX = reference.x + reference.width / 2 - floating.width / 2;\n  const commonY = reference.y + reference.height / 2 - floating.height / 2;\n  const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n  let coords;\n  switch (side) {\n    case 'top':\n      coords = {\n        x: commonX,\n        y: reference.y - floating.height\n      };\n      break;\n    case 'bottom':\n      coords = {\n        x: commonX,\n        y: reference.y + reference.height\n      };\n      break;\n    case 'right':\n      coords = {\n        x: reference.x + reference.width,\n        y: commonY\n      };\n      break;\n    case 'left':\n      coords = {\n        x: reference.x - floating.width,\n        y: commonY\n      };\n      break;\n    default:\n      coords = {\n        x: reference.x,\n        y: reference.y\n      };\n  }\n  switch (getAlignment(placement)) {\n    case 'start':\n      coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n      break;\n    case 'end':\n      coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n      break;\n  }\n  return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n  const {\n    placement = 'bottom',\n    strategy = 'absolute',\n    middleware = [],\n    platform\n  } = config;\n  const validMiddleware = middleware.filter(Boolean);\n  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n  let rects = await platform.getElementRects({\n    reference,\n    floating,\n    strategy\n  });\n  let {\n    x,\n    y\n  } = computeCoordsFromPlacement(rects, placement, rtl);\n  let statefulPlacement = placement;\n  let middlewareData = {};\n  let resetCount = 0;\n  for (let i = 0; i < validMiddleware.length; i++) {\n    const {\n      name,\n      fn\n    } = validMiddleware[i];\n    const {\n      x: nextX,\n      y: nextY,\n      data,\n      reset\n    } = await fn({\n      x,\n      y,\n      initialPlacement: placement,\n      placement: statefulPlacement,\n      strategy,\n      middlewareData,\n      rects,\n      platform,\n      elements: {\n        reference,\n        floating\n      }\n    });\n    x = nextX != null ? nextX : x;\n    y = nextY != null ? nextY : y;\n    middlewareData = {\n      ...middlewareData,\n      [name]: {\n        ...middlewareData[name],\n        ...data\n      }\n    };\n    if (reset && resetCount <= 50) {\n      resetCount++;\n      if (typeof reset === 'object') {\n        if (reset.placement) {\n          statefulPlacement = reset.placement;\n        }\n        if (reset.rects) {\n          rects = reset.rects === true ? await platform.getElementRects({\n            reference,\n            floating,\n            strategy\n          }) : reset.rects;\n        }\n        ({\n          x,\n          y\n        } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n      }\n      i = -1;\n    }\n  }\n  return {\n    x,\n    y,\n    placement: statefulPlacement,\n    strategy,\n    middlewareData\n  };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n  var _await$platform$isEle;\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    x,\n    y,\n    platform,\n    rects,\n    elements,\n    strategy\n  } = state;\n  const {\n    boundary = 'clippingAncestors',\n    rootBoundary = 'viewport',\n    elementContext = 'floating',\n    altBoundary = false,\n    padding = 0\n  } = evaluate(options, state);\n  const paddingObject = getPaddingObject(padding);\n  const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n  const element = elements[altBoundary ? altContext : elementContext];\n  const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n    element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n    boundary,\n    rootBoundary,\n    strategy\n  }));\n  const rect = elementContext === 'floating' ? {\n    x,\n    y,\n    width: rects.floating.width,\n    height: rects.floating.height\n  } : rects.reference;\n  const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n  const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n    x: 1,\n    y: 1\n  } : {\n    x: 1,\n    y: 1\n  };\n  const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n    elements,\n    rect,\n    offsetParent,\n    strategy\n  }) : rect);\n  return {\n    top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n    bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n    left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n    right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n  };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n  name: 'arrow',\n  options,\n  async fn(state) {\n    const {\n      x,\n      y,\n      placement,\n      rects,\n      platform,\n      elements,\n      middlewareData\n    } = state;\n    // Since `element` is required, we don't Partial<> the type.\n    const {\n      element,\n      padding = 0\n    } = evaluate(options, state) || {};\n    if (element == null) {\n      return {};\n    }\n    const paddingObject = getPaddingObject(padding);\n    const coords = {\n      x,\n      y\n    };\n    const axis = getAlignmentAxis(placement);\n    const length = getAxisLength(axis);\n    const arrowDimensions = await platform.getDimensions(element);\n    const isYAxis = axis === 'y';\n    const minProp = isYAxis ? 'top' : 'left';\n    const maxProp = isYAxis ? 'bottom' : 'right';\n    const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n    const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n    const startDiff = coords[axis] - rects.reference[axis];\n    const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n    let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n    // DOM platform can return `window` as the `offsetParent`.\n    if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n      clientSize = elements.floating[clientProp] || rects.floating[length];\n    }\n    const centerToReference = endDiff / 2 - startDiff / 2;\n\n    // If the padding is large enough that it causes the arrow to no longer be\n    // centered, modify the padding so that it is centered.\n    const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n    const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n    const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n    // Make sure the arrow doesn't overflow the floating element if the center\n    // point is outside the floating element's bounds.\n    const min$1 = minPadding;\n    const max = clientSize - arrowDimensions[length] - maxPadding;\n    const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n    const offset = clamp(min$1, center, max);\n\n    // If the reference is small enough that the arrow's padding causes it to\n    // to point to nothing for an aligned placement, adjust the offset of the\n    // floating element itself. To ensure `shift()` continues to take action,\n    // a single reset is performed when this is true.\n    const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n    const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n    return {\n      [axis]: coords[axis] + alignmentOffset,\n      data: {\n        [axis]: offset,\n        centerOffset: center - offset - alignmentOffset,\n        ...(shouldAddOffset && {\n          alignmentOffset\n        })\n      },\n      reset: shouldAddOffset\n    };\n  }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n  const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n  return allowedPlacementsSortedByAlignment.filter(placement => {\n    if (alignment) {\n      return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n    }\n    return true;\n  });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'autoPlacement',\n    options,\n    async fn(state) {\n      var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n      const {\n        rects,\n        middlewareData,\n        placement,\n        platform,\n        elements\n      } = state;\n      const {\n        crossAxis = false,\n        alignment,\n        allowedPlacements = placements,\n        autoAlignment = true,\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n      const overflow = await detectOverflow(state, detectOverflowOptions);\n      const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n      const currentPlacement = placements$1[currentIndex];\n      if (currentPlacement == null) {\n        return {};\n      }\n      const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n      // Make `computeCoords` start from the right place.\n      if (placement !== currentPlacement) {\n        return {\n          reset: {\n            placement: placements$1[0]\n          }\n        };\n      }\n      const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n      const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n        placement: currentPlacement,\n        overflows: currentOverflows\n      }];\n      const nextPlacement = placements$1[currentIndex + 1];\n\n      // There are more placements to check.\n      if (nextPlacement) {\n        return {\n          data: {\n            index: currentIndex + 1,\n            overflows: allOverflows\n          },\n          reset: {\n            placement: nextPlacement\n          }\n        };\n      }\n      const placementsSortedByMostSpace = allOverflows.map(d => {\n        const alignment = getAlignment(d.placement);\n        return [d.placement, alignment && crossAxis ?\n        // Check along the mainAxis and main crossAxis side.\n        d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n        // Check only the mainAxis.\n        d.overflows[0], d.overflows];\n      }).sort((a, b) => a[1] - b[1]);\n      const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n      // Aligned placements should not check their opposite crossAxis\n      // side.\n      getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n      const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n      if (resetPlacement !== placement) {\n        return {\n          data: {\n            index: currentIndex + 1,\n            overflows: allOverflows\n          },\n          reset: {\n            placement: resetPlacement\n          }\n        };\n      }\n      return {};\n    }\n  };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'flip',\n    options,\n    async fn(state) {\n      var _middlewareData$arrow, _middlewareData$flip;\n      const {\n        placement,\n        middlewareData,\n        rects,\n        initialPlacement,\n        platform,\n        elements\n      } = state;\n      const {\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = true,\n        fallbackPlacements: specifiedFallbackPlacements,\n        fallbackStrategy = 'bestFit',\n        fallbackAxisSideDirection = 'none',\n        flipAlignment = true,\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n\n      // If a reset by the arrow was caused due to an alignment offset being\n      // added, we should skip any logic now since `flip()` has already done its\n      // work.\n      // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n      if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n        return {};\n      }\n      const side = getSide(placement);\n      const initialSideAxis = getSideAxis(initialPlacement);\n      const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n      const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n      const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n      const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n      if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n        fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n      }\n      const placements = [initialPlacement, ...fallbackPlacements];\n      const overflow = await detectOverflow(state, detectOverflowOptions);\n      const overflows = [];\n      let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n      if (checkMainAxis) {\n        overflows.push(overflow[side]);\n      }\n      if (checkCrossAxis) {\n        const sides = getAlignmentSides(placement, rects, rtl);\n        overflows.push(overflow[sides[0]], overflow[sides[1]]);\n      }\n      overflowsData = [...overflowsData, {\n        placement,\n        overflows\n      }];\n\n      // One or more sides is overflowing.\n      if (!overflows.every(side => side <= 0)) {\n        var _middlewareData$flip2, _overflowsData$filter;\n        const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n        const nextPlacement = placements[nextIndex];\n        if (nextPlacement) {\n          // Try next placement and re-run the lifecycle.\n          return {\n            data: {\n              index: nextIndex,\n              overflows: overflowsData\n            },\n            reset: {\n              placement: nextPlacement\n            }\n          };\n        }\n\n        // First, find the candidates that fit on the mainAxis side of overflow,\n        // then find the placement that fits the best on the main crossAxis side.\n        let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n        // Otherwise fallback.\n        if (!resetPlacement) {\n          switch (fallbackStrategy) {\n            case 'bestFit':\n              {\n                var _overflowsData$filter2;\n                const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n                  if (hasFallbackAxisSideDirection) {\n                    const currentSideAxis = getSideAxis(d.placement);\n                    return currentSideAxis === initialSideAxis ||\n                    // Create a bias to the `y` side axis due to horizontal\n                    // reading directions favoring greater width.\n                    currentSideAxis === 'y';\n                  }\n                  return true;\n                }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n                if (placement) {\n                  resetPlacement = placement;\n                }\n                break;\n              }\n            case 'initialPlacement':\n              resetPlacement = initialPlacement;\n              break;\n          }\n        }\n        if (placement !== resetPlacement) {\n          return {\n            reset: {\n              placement: resetPlacement\n            }\n          };\n        }\n      }\n      return {};\n    }\n  };\n};\n\nfunction getSideOffsets(overflow, rect) {\n  return {\n    top: overflow.top - rect.height,\n    right: overflow.right - rect.width,\n    bottom: overflow.bottom - rect.height,\n    left: overflow.left - rect.width\n  };\n}\nfunction isAnySideFullyClipped(overflow) {\n  return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'hide',\n    options,\n    async fn(state) {\n      const {\n        rects\n      } = state;\n      const {\n        strategy = 'referenceHidden',\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      switch (strategy) {\n        case 'referenceHidden':\n          {\n            const overflow = await detectOverflow(state, {\n              ...detectOverflowOptions,\n              elementContext: 'reference'\n            });\n            const offsets = getSideOffsets(overflow, rects.reference);\n            return {\n              data: {\n                referenceHiddenOffsets: offsets,\n                referenceHidden: isAnySideFullyClipped(offsets)\n              }\n            };\n          }\n        case 'escaped':\n          {\n            const overflow = await detectOverflow(state, {\n              ...detectOverflowOptions,\n              altBoundary: true\n            });\n            const offsets = getSideOffsets(overflow, rects.floating);\n            return {\n              data: {\n                escapedOffsets: offsets,\n                escaped: isAnySideFullyClipped(offsets)\n              }\n            };\n          }\n        default:\n          {\n            return {};\n          }\n      }\n    }\n  };\n};\n\nfunction getBoundingRect(rects) {\n  const minX = min(...rects.map(rect => rect.left));\n  const minY = min(...rects.map(rect => rect.top));\n  const maxX = max(...rects.map(rect => rect.right));\n  const maxY = max(...rects.map(rect => rect.bottom));\n  return {\n    x: minX,\n    y: minY,\n    width: maxX - minX,\n    height: maxY - minY\n  };\n}\nfunction getRectsByLine(rects) {\n  const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n  const groups = [];\n  let prevRect = null;\n  for (let i = 0; i < sortedRects.length; i++) {\n    const rect = sortedRects[i];\n    if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n      groups.push([rect]);\n    } else {\n      groups[groups.length - 1].push(rect);\n    }\n    prevRect = rect;\n  }\n  return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'inline',\n    options,\n    async fn(state) {\n      const {\n        placement,\n        elements,\n        rects,\n        platform,\n        strategy\n      } = state;\n      // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n      // ClientRect's bounds, despite the event listener being triggered. A\n      // padding of 2 seems to handle this issue.\n      const {\n        padding = 2,\n        x,\n        y\n      } = evaluate(options, state);\n      const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n      const clientRects = getRectsByLine(nativeClientRects);\n      const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n      const paddingObject = getPaddingObject(padding);\n      function getBoundingClientRect() {\n        // There are two rects and they are disjoined.\n        if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n          // Find the first rect in which the point is fully inside.\n          return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n        }\n\n        // There are 2 or more connected rects.\n        if (clientRects.length >= 2) {\n          if (getSideAxis(placement) === 'y') {\n            const firstRect = clientRects[0];\n            const lastRect = clientRects[clientRects.length - 1];\n            const isTop = getSide(placement) === 'top';\n            const top = firstRect.top;\n            const bottom = lastRect.bottom;\n            const left = isTop ? firstRect.left : lastRect.left;\n            const right = isTop ? firstRect.right : lastRect.right;\n            const width = right - left;\n            const height = bottom - top;\n            return {\n              top,\n              bottom,\n              left,\n              right,\n              width,\n              height,\n              x: left,\n              y: top\n            };\n          }\n          const isLeftSide = getSide(placement) === 'left';\n          const maxRight = max(...clientRects.map(rect => rect.right));\n          const minLeft = min(...clientRects.map(rect => rect.left));\n          const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n          const top = measureRects[0].top;\n          const bottom = measureRects[measureRects.length - 1].bottom;\n          const left = minLeft;\n          const right = maxRight;\n          const width = right - left;\n          const height = bottom - top;\n          return {\n            top,\n            bottom,\n            left,\n            right,\n            width,\n            height,\n            x: left,\n            y: top\n          };\n        }\n        return fallback;\n      }\n      const resetRects = await platform.getElementRects({\n        reference: {\n          getBoundingClientRect\n        },\n        floating: elements.floating,\n        strategy\n      });\n      if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n        return {\n          reset: {\n            rects: resetRects\n          }\n        };\n      }\n      return {};\n    }\n  };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n  const {\n    placement,\n    platform,\n    elements\n  } = state;\n  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n  const side = getSide(placement);\n  const alignment = getAlignment(placement);\n  const isVertical = getSideAxis(placement) === 'y';\n  const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n  const crossAxisMulti = rtl && isVertical ? -1 : 1;\n  const rawValue = evaluate(options, state);\n\n  // eslint-disable-next-line prefer-const\n  let {\n    mainAxis,\n    crossAxis,\n    alignmentAxis\n  } = typeof rawValue === 'number' ? {\n    mainAxis: rawValue,\n    crossAxis: 0,\n    alignmentAxis: null\n  } : {\n    mainAxis: rawValue.mainAxis || 0,\n    crossAxis: rawValue.crossAxis || 0,\n    alignmentAxis: rawValue.alignmentAxis\n  };\n  if (alignment && typeof alignmentAxis === 'number') {\n    crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n  }\n  return isVertical ? {\n    x: crossAxis * crossAxisMulti,\n    y: mainAxis * mainAxisMulti\n  } : {\n    x: mainAxis * mainAxisMulti,\n    y: crossAxis * crossAxisMulti\n  };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n  if (options === void 0) {\n    options = 0;\n  }\n  return {\n    name: 'offset',\n    options,\n    async fn(state) {\n      var _middlewareData$offse, _middlewareData$arrow;\n      const {\n        x,\n        y,\n        placement,\n        middlewareData\n      } = state;\n      const diffCoords = await convertValueToCoords(state, options);\n\n      // If the placement is the same and the arrow caused an alignment offset\n      // then we don't need to change the positioning coordinates.\n      if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n        return {};\n      }\n      return {\n        x: x + diffCoords.x,\n        y: y + diffCoords.y,\n        data: {\n          ...diffCoords,\n          placement\n        }\n      };\n    }\n  };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'shift',\n    options,\n    async fn(state) {\n      const {\n        x,\n        y,\n        placement\n      } = state;\n      const {\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = false,\n        limiter = {\n          fn: _ref => {\n            let {\n              x,\n              y\n            } = _ref;\n            return {\n              x,\n              y\n            };\n          }\n        },\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      const coords = {\n        x,\n        y\n      };\n      const overflow = await detectOverflow(state, detectOverflowOptions);\n      const crossAxis = getSideAxis(getSide(placement));\n      const mainAxis = getOppositeAxis(crossAxis);\n      let mainAxisCoord = coords[mainAxis];\n      let crossAxisCoord = coords[crossAxis];\n      if (checkMainAxis) {\n        const minSide = mainAxis === 'y' ? 'top' : 'left';\n        const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n        const min = mainAxisCoord + overflow[minSide];\n        const max = mainAxisCoord - overflow[maxSide];\n        mainAxisCoord = clamp(min, mainAxisCoord, max);\n      }\n      if (checkCrossAxis) {\n        const minSide = crossAxis === 'y' ? 'top' : 'left';\n        const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n        const min = crossAxisCoord + overflow[minSide];\n        const max = crossAxisCoord - overflow[maxSide];\n        crossAxisCoord = clamp(min, crossAxisCoord, max);\n      }\n      const limitedCoords = limiter.fn({\n        ...state,\n        [mainAxis]: mainAxisCoord,\n        [crossAxis]: crossAxisCoord\n      });\n      return {\n        ...limitedCoords,\n        data: {\n          x: limitedCoords.x - x,\n          y: limitedCoords.y - y,\n          enabled: {\n            [mainAxis]: checkMainAxis,\n            [crossAxis]: checkCrossAxis\n          }\n        }\n      };\n    }\n  };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    options,\n    fn(state) {\n      const {\n        x,\n        y,\n        placement,\n        rects,\n        middlewareData\n      } = state;\n      const {\n        offset = 0,\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = true\n      } = evaluate(options, state);\n      const coords = {\n        x,\n        y\n      };\n      const crossAxis = getSideAxis(placement);\n      const mainAxis = getOppositeAxis(crossAxis);\n      let mainAxisCoord = coords[mainAxis];\n      let crossAxisCoord = coords[crossAxis];\n      const rawOffset = evaluate(offset, state);\n      const computedOffset = typeof rawOffset === 'number' ? {\n        mainAxis: rawOffset,\n        crossAxis: 0\n      } : {\n        mainAxis: 0,\n        crossAxis: 0,\n        ...rawOffset\n      };\n      if (checkMainAxis) {\n        const len = mainAxis === 'y' ? 'height' : 'width';\n        const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n        const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n        if (mainAxisCoord < limitMin) {\n          mainAxisCoord = limitMin;\n        } else if (mainAxisCoord > limitMax) {\n          mainAxisCoord = limitMax;\n        }\n      }\n      if (checkCrossAxis) {\n        var _middlewareData$offse, _middlewareData$offse2;\n        const len = mainAxis === 'y' ? 'width' : 'height';\n        const isOriginSide = ['top', 'left'].includes(getSide(placement));\n        const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n        const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n        if (crossAxisCoord < limitMin) {\n          crossAxisCoord = limitMin;\n        } else if (crossAxisCoord > limitMax) {\n          crossAxisCoord = limitMax;\n        }\n      }\n      return {\n        [mainAxis]: mainAxisCoord,\n        [crossAxis]: crossAxisCoord\n      };\n    }\n  };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'size',\n    options,\n    async fn(state) {\n      var _state$middlewareData, _state$middlewareData2;\n      const {\n        placement,\n        rects,\n        platform,\n        elements\n      } = state;\n      const {\n        apply = () => {},\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      const overflow = await detectOverflow(state, detectOverflowOptions);\n      const side = getSide(placement);\n      const alignment = getAlignment(placement);\n      const isYAxis = getSideAxis(placement) === 'y';\n      const {\n        width,\n        height\n      } = rects.floating;\n      let heightSide;\n      let widthSide;\n      if (side === 'top' || side === 'bottom') {\n        heightSide = side;\n        widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n      } else {\n        widthSide = side;\n        heightSide = alignment === 'end' ? 'top' : 'bottom';\n      }\n      const maximumClippingHeight = height - overflow.top - overflow.bottom;\n      const maximumClippingWidth = width - overflow.left - overflow.right;\n      const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n      const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n      const noShift = !state.middlewareData.shift;\n      let availableHeight = overflowAvailableHeight;\n      let availableWidth = overflowAvailableWidth;\n      if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n        availableWidth = maximumClippingWidth;\n      }\n      if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n        availableHeight = maximumClippingHeight;\n      }\n      if (noShift && !alignment) {\n        const xMin = max(overflow.left, 0);\n        const xMax = max(overflow.right, 0);\n        const yMin = max(overflow.top, 0);\n        const yMax = max(overflow.bottom, 0);\n        if (isYAxis) {\n          availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n        } else {\n          availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n        }\n      }\n      await apply({\n        ...state,\n        availableWidth,\n        availableHeight\n      });\n      const nextDimensions = await platform.getDimensions(elements.floating);\n      if (width !== nextDimensions.width || height !== nextDimensions.height) {\n        return {\n          reset: {\n            rects: true\n          }\n        };\n      }\n      return {};\n    }\n  };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","import { rectToClientRect, detectOverflow as detectOverflow$1, offset as offset$1, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getNodeScroll, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n  const css = getComputedStyle(element);\n  // In testing environments, the `width` and `height` properties are empty\n  // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n  let width = parseFloat(css.width) || 0;\n  let height = parseFloat(css.height) || 0;\n  const hasOffset = isHTMLElement(element);\n  const offsetWidth = hasOffset ? element.offsetWidth : width;\n  const offsetHeight = hasOffset ? element.offsetHeight : height;\n  const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n  if (shouldFallback) {\n    width = offsetWidth;\n    height = offsetHeight;\n  }\n  return {\n    width,\n    height,\n    $: shouldFallback\n  };\n}\n\nfunction unwrapElement(element) {\n  return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n  const domElement = unwrapElement(element);\n  if (!isHTMLElement(domElement)) {\n    return createCoords(1);\n  }\n  const rect = domElement.getBoundingClientRect();\n  const {\n    width,\n    height,\n    $\n  } = getCssDimensions(domElement);\n  let x = ($ ? round(rect.width) : rect.width) / width;\n  let y = ($ ? round(rect.height) : rect.height) / height;\n\n  // 0, NaN, or Infinity should always fallback to 1.\n\n  if (!x || !Number.isFinite(x)) {\n    x = 1;\n  }\n  if (!y || !Number.isFinite(y)) {\n    y = 1;\n  }\n  return {\n    x,\n    y\n  };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n  const win = getWindow(element);\n  if (!isWebKit() || !win.visualViewport) {\n    return noOffsets;\n  }\n  return {\n    x: win.visualViewport.offsetLeft,\n    y: win.visualViewport.offsetTop\n  };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n  if (isFixed === void 0) {\n    isFixed = false;\n  }\n  if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n    return false;\n  }\n  return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n  if (includeScale === void 0) {\n    includeScale = false;\n  }\n  if (isFixedStrategy === void 0) {\n    isFixedStrategy = false;\n  }\n  const clientRect = element.getBoundingClientRect();\n  const domElement = unwrapElement(element);\n  let scale = createCoords(1);\n  if (includeScale) {\n    if (offsetParent) {\n      if (isElement(offsetParent)) {\n        scale = getScale(offsetParent);\n      }\n    } else {\n      scale = getScale(element);\n    }\n  }\n  const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n  let x = (clientRect.left + visualOffsets.x) / scale.x;\n  let y = (clientRect.top + visualOffsets.y) / scale.y;\n  let width = clientRect.width / scale.x;\n  let height = clientRect.height / scale.y;\n  if (domElement) {\n    const win = getWindow(domElement);\n    const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n    let currentWin = win;\n    let currentIFrame = getFrameElement(currentWin);\n    while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n      const iframeScale = getScale(currentIFrame);\n      const iframeRect = currentIFrame.getBoundingClientRect();\n      const css = getComputedStyle(currentIFrame);\n      const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n      const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n      x *= iframeScale.x;\n      y *= iframeScale.y;\n      width *= iframeScale.x;\n      height *= iframeScale.y;\n      x += left;\n      y += top;\n      currentWin = getWindow(currentIFrame);\n      currentIFrame = getFrameElement(currentWin);\n    }\n  }\n  return rectToClientRect({\n    width,\n    height,\n    x,\n    y\n  });\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n  let {\n    elements,\n    rect,\n    offsetParent,\n    strategy\n  } = _ref;\n  const isFixed = strategy === 'fixed';\n  const documentElement = getDocumentElement(offsetParent);\n  const topLayer = elements ? isTopLayer(elements.floating) : false;\n  if (offsetParent === documentElement || topLayer && isFixed) {\n    return rect;\n  }\n  let scroll = {\n    scrollLeft: 0,\n    scrollTop: 0\n  };\n  let scale = createCoords(1);\n  const offsets = createCoords(0);\n  const isOffsetParentAnElement = isHTMLElement(offsetParent);\n  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n    if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n      scroll = getNodeScroll(offsetParent);\n    }\n    if (isHTMLElement(offsetParent)) {\n      const offsetRect = getBoundingClientRect(offsetParent);\n      scale = getScale(offsetParent);\n      offsets.x = offsetRect.x + offsetParent.clientLeft;\n      offsets.y = offsetRect.y + offsetParent.clientTop;\n    }\n  }\n  return {\n    width: rect.width * scale.x,\n    height: rect.height * scale.y,\n    x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n    y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n  };\n}\n\nfunction getClientRects(element) {\n  return Array.from(element.getClientRects());\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n  const leftScroll = getNodeScroll(element).scrollLeft;\n  if (!rect) {\n    return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n  }\n  return rect.left + leftScroll;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n  const html = getDocumentElement(element);\n  const scroll = getNodeScroll(element);\n  const body = element.ownerDocument.body;\n  const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n  const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n  let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n  const y = -scroll.scrollTop;\n  if (getComputedStyle(body).direction === 'rtl') {\n    x += max(html.clientWidth, body.clientWidth) - width;\n  }\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\n\nfunction getViewportRect(element, strategy) {\n  const win = getWindow(element);\n  const html = getDocumentElement(element);\n  const visualViewport = win.visualViewport;\n  let width = html.clientWidth;\n  let height = html.clientHeight;\n  let x = 0;\n  let y = 0;\n  if (visualViewport) {\n    width = visualViewport.width;\n    height = visualViewport.height;\n    const visualViewportBased = isWebKit();\n    if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n      x = visualViewport.offsetLeft;\n      y = visualViewport.offsetTop;\n    }\n  }\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n  const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n  const top = clientRect.top + element.clientTop;\n  const left = clientRect.left + element.clientLeft;\n  const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n  const width = element.clientWidth * scale.x;\n  const height = element.clientHeight * scale.y;\n  const x = left * scale.x;\n  const y = top * scale.y;\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n  let rect;\n  if (clippingAncestor === 'viewport') {\n    rect = getViewportRect(element, strategy);\n  } else if (clippingAncestor === 'document') {\n    rect = getDocumentRect(getDocumentElement(element));\n  } else if (isElement(clippingAncestor)) {\n    rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n  } else {\n    const visualOffsets = getVisualOffsets(element);\n    rect = {\n      ...clippingAncestor,\n      x: clippingAncestor.x - visualOffsets.x,\n      y: clippingAncestor.y - visualOffsets.y\n    };\n  }\n  return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n  const parentNode = getParentNode(element);\n  if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n    return false;\n  }\n  return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n  const cachedResult = cache.get(element);\n  if (cachedResult) {\n    return cachedResult;\n  }\n  let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n  let currentContainingBlockComputedStyle = null;\n  const elementIsFixed = getComputedStyle(element).position === 'fixed';\n  let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n  while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n    const computedStyle = getComputedStyle(currentNode);\n    const currentNodeIsContaining = isContainingBlock(currentNode);\n    if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n      currentContainingBlockComputedStyle = null;\n    }\n    const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n    if (shouldDropCurrentNode) {\n      // Drop non-containing blocks.\n      result = result.filter(ancestor => ancestor !== currentNode);\n    } else {\n      // Record last containing block for next iteration.\n      currentContainingBlockComputedStyle = computedStyle;\n    }\n    currentNode = getParentNode(currentNode);\n  }\n  cache.set(element, result);\n  return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n  let {\n    element,\n    boundary,\n    rootBoundary,\n    strategy\n  } = _ref;\n  const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n  const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n  const firstClippingAncestor = clippingAncestors[0];\n  const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n    const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n    accRect.top = max(rect.top, accRect.top);\n    accRect.right = min(rect.right, accRect.right);\n    accRect.bottom = min(rect.bottom, accRect.bottom);\n    accRect.left = max(rect.left, accRect.left);\n    return accRect;\n  }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n  return {\n    width: clippingRect.right - clippingRect.left,\n    height: clippingRect.bottom - clippingRect.top,\n    x: clippingRect.left,\n    y: clippingRect.top\n  };\n}\n\nfunction getDimensions(element) {\n  const {\n    width,\n    height\n  } = getCssDimensions(element);\n  return {\n    width,\n    height\n  };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n  const isOffsetParentAnElement = isHTMLElement(offsetParent);\n  const documentElement = getDocumentElement(offsetParent);\n  const isFixed = strategy === 'fixed';\n  const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n  let scroll = {\n    scrollLeft: 0,\n    scrollTop: 0\n  };\n  const offsets = createCoords(0);\n  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n    if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n      scroll = getNodeScroll(offsetParent);\n    }\n    if (isOffsetParentAnElement) {\n      const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n      offsets.x = offsetRect.x + offsetParent.clientLeft;\n      offsets.y = offsetRect.y + offsetParent.clientTop;\n    } else if (documentElement) {\n      // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n      // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n      offsets.x = getWindowScrollBarX(documentElement);\n    }\n  }\n  let htmlX = 0;\n  let htmlY = 0;\n  if (documentElement && !isOffsetParentAnElement && !isFixed) {\n    const htmlRect = documentElement.getBoundingClientRect();\n    htmlY = htmlRect.top + scroll.scrollTop;\n    htmlX = htmlRect.left + scroll.scrollLeft -\n    // RTL <body> scrollbar.\n    getWindowScrollBarX(documentElement, htmlRect);\n  }\n  const x = rect.left + scroll.scrollLeft - offsets.x - htmlX;\n  const y = rect.top + scroll.scrollTop - offsets.y - htmlY;\n  return {\n    x,\n    y,\n    width: rect.width,\n    height: rect.height\n  };\n}\n\nfunction isStaticPositioned(element) {\n  return getComputedStyle(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n  if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n    return null;\n  }\n  if (polyfill) {\n    return polyfill(element);\n  }\n  let rawOffsetParent = element.offsetParent;\n\n  // Firefox returns the <html> element as the offsetParent if it's non-static,\n  // while Chrome and Safari return the <body> element. The <body> element must\n  // be used to perform the correct calculations even if the <html> element is\n  // non-static.\n  if (getDocumentElement(element) === rawOffsetParent) {\n    rawOffsetParent = rawOffsetParent.ownerDocument.body;\n  }\n  return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n  const win = getWindow(element);\n  if (isTopLayer(element)) {\n    return win;\n  }\n  if (!isHTMLElement(element)) {\n    let svgOffsetParent = getParentNode(element);\n    while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n      if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n        return svgOffsetParent;\n      }\n      svgOffsetParent = getParentNode(svgOffsetParent);\n    }\n    return win;\n  }\n  let offsetParent = getTrueOffsetParent(element, polyfill);\n  while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n    offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n  }\n  if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n    return win;\n  }\n  return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n  const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n  const getDimensionsFn = this.getDimensions;\n  const floatingDimensions = await getDimensionsFn(data.floating);\n  return {\n    reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n    floating: {\n      x: 0,\n      y: 0,\n      width: floatingDimensions.width,\n      height: floatingDimensions.height\n    }\n  };\n};\n\nfunction isRTL(element) {\n  return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n  convertOffsetParentRelativeRectToViewportRelativeRect,\n  getDocumentElement,\n  getClippingRect,\n  getOffsetParent,\n  getElementRects,\n  getClientRects,\n  getDimensions,\n  getScale,\n  isElement,\n  isRTL\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n  let io = null;\n  let timeoutId;\n  const root = getDocumentElement(element);\n  function cleanup() {\n    var _io;\n    clearTimeout(timeoutId);\n    (_io = io) == null || _io.disconnect();\n    io = null;\n  }\n  function refresh(skip, threshold) {\n    if (skip === void 0) {\n      skip = false;\n    }\n    if (threshold === void 0) {\n      threshold = 1;\n    }\n    cleanup();\n    const {\n      left,\n      top,\n      width,\n      height\n    } = element.getBoundingClientRect();\n    if (!skip) {\n      onMove();\n    }\n    if (!width || !height) {\n      return;\n    }\n    const insetTop = floor(top);\n    const insetRight = floor(root.clientWidth - (left + width));\n    const insetBottom = floor(root.clientHeight - (top + height));\n    const insetLeft = floor(left);\n    const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n    const options = {\n      rootMargin,\n      threshold: max(0, min(1, threshold)) || 1\n    };\n    let isFirstUpdate = true;\n    function handleObserve(entries) {\n      const ratio = entries[0].intersectionRatio;\n      if (ratio !== threshold) {\n        if (!isFirstUpdate) {\n          return refresh();\n        }\n        if (!ratio) {\n          // If the reference is clipped, the ratio is 0. Throttle the refresh\n          // to prevent an infinite loop of updates.\n          timeoutId = setTimeout(() => {\n            refresh(false, 1e-7);\n          }, 1000);\n        } else {\n          refresh(false, ratio);\n        }\n      }\n      isFirstUpdate = false;\n    }\n\n    // Older browsers don't support a `document` as the root and will throw an\n    // error.\n    try {\n      io = new IntersectionObserver(handleObserve, {\n        ...options,\n        // Handle <iframe>s\n        root: root.ownerDocument\n      });\n    } catch (e) {\n      io = new IntersectionObserver(handleObserve, options);\n    }\n    io.observe(element);\n  }\n  refresh(true);\n  return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    ancestorScroll = true,\n    ancestorResize = true,\n    elementResize = typeof ResizeObserver === 'function',\n    layoutShift = typeof IntersectionObserver === 'function',\n    animationFrame = false\n  } = options;\n  const referenceEl = unwrapElement(reference);\n  const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n  ancestors.forEach(ancestor => {\n    ancestorScroll && ancestor.addEventListener('scroll', update, {\n      passive: true\n    });\n    ancestorResize && ancestor.addEventListener('resize', update);\n  });\n  const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n  let reobserveFrame = -1;\n  let resizeObserver = null;\n  if (elementResize) {\n    resizeObserver = new ResizeObserver(_ref => {\n      let [firstEntry] = _ref;\n      if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n        // Prevent update loops when using the `size` middleware.\n        // https://github.com/floating-ui/floating-ui/issues/1740\n        resizeObserver.unobserve(floating);\n        cancelAnimationFrame(reobserveFrame);\n        reobserveFrame = requestAnimationFrame(() => {\n          var _resizeObserver;\n          (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n        });\n      }\n      update();\n    });\n    if (referenceEl && !animationFrame) {\n      resizeObserver.observe(referenceEl);\n    }\n    resizeObserver.observe(floating);\n  }\n  let frameId;\n  let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n  if (animationFrame) {\n    frameLoop();\n  }\n  function frameLoop() {\n    const nextRefRect = getBoundingClientRect(reference);\n    if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n      update();\n    }\n    prevRefRect = nextRefRect;\n    frameId = requestAnimationFrame(frameLoop);\n  }\n  update();\n  return () => {\n    var _resizeObserver2;\n    ancestors.forEach(ancestor => {\n      ancestorScroll && ancestor.removeEventListener('scroll', update);\n      ancestorResize && ancestor.removeEventListener('resize', update);\n    });\n    cleanupIo == null || cleanupIo();\n    (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n    resizeObserver = null;\n    if (animationFrame) {\n      cancelAnimationFrame(frameId);\n    }\n  };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n  // This caches the expensive `getClippingElementAncestors` function so that\n  // multiple lifecycle resets re-use the same result. It only lives for a\n  // single call. If other functions become expensive, we can add them as well.\n  const cache = new Map();\n  const mergedOptions = {\n    platform,\n    ...options\n  };\n  const platformWithCache = {\n    ...mergedOptions.platform,\n    _c: cache\n  };\n  return computePosition$1(reference, floating, {\n    ...mergedOptions,\n    platform: platformWithCache\n  });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","function hasWindow() {\n  return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n  if (isNode(node)) {\n    return (node.nodeName || '').toLowerCase();\n  }\n  // Mocked nodes in testing environments may not be instances of Node. By\n  // returning `#document` an infinite loop won't occur.\n  // https://github.com/floating-ui/floating-ui/issues/2317\n  return '#document';\n}\nfunction getWindow(node) {\n  var _node$ownerDocument;\n  return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n  var _ref;\n  return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n  if (!hasWindow()) {\n    return false;\n  }\n  return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n  if (!hasWindow()) {\n    return false;\n  }\n  return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n  if (!hasWindow()) {\n    return false;\n  }\n  return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n  if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n    return false;\n  }\n  return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n  const {\n    overflow,\n    overflowX,\n    overflowY,\n    display\n  } = getComputedStyle(element);\n  return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n  return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n  return [':popover-open', ':modal'].some(selector => {\n    try {\n      return element.matches(selector);\n    } catch (e) {\n      return false;\n    }\n  });\n}\nfunction isContainingBlock(elementOrCss) {\n  const webkit = isWebKit();\n  const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n  return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n  let currentNode = getParentNode(element);\n  while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n    if (isContainingBlock(currentNode)) {\n      return currentNode;\n    } else if (isTopLayer(currentNode)) {\n      return null;\n    }\n    currentNode = getParentNode(currentNode);\n  }\n  return null;\n}\nfunction isWebKit() {\n  if (typeof CSS === 'undefined' || !CSS.supports) return false;\n  return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n  return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n  return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n  if (isElement(element)) {\n    return {\n      scrollLeft: element.scrollLeft,\n      scrollTop: element.scrollTop\n    };\n  }\n  return {\n    scrollLeft: element.scrollX,\n    scrollTop: element.scrollY\n  };\n}\nfunction getParentNode(node) {\n  if (getNodeName(node) === 'html') {\n    return node;\n  }\n  const result =\n  // Step into the shadow DOM of the parent of a slotted node.\n  node.assignedSlot ||\n  // DOM Element detected.\n  node.parentNode ||\n  // ShadowRoot detected.\n  isShadowRoot(node) && node.host ||\n  // Fallback.\n  getDocumentElement(node);\n  return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n  const parentNode = getParentNode(node);\n  if (isLastTraversableNode(parentNode)) {\n    return node.ownerDocument ? node.ownerDocument.body : node.body;\n  }\n  if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n    return parentNode;\n  }\n  return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n  var _node$ownerDocument2;\n  if (list === void 0) {\n    list = [];\n  }\n  if (traverseIframes === void 0) {\n    traverseIframes = true;\n  }\n  const scrollableAncestor = getNearestOverflowAncestor(node);\n  const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n  const win = getWindow(scrollableAncestor);\n  if (isBody) {\n    const frameElement = getFrameElement(win);\n    return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n  }\n  return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n  return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","function _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nexport { _arrayLikeToArray as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread2(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nexport { _objectSpread2 as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n  if (null == e) return {};\n  var o,\n    r,\n    i = objectWithoutPropertiesLoose(e, t);\n  if (Object.getOwnPropertySymbols) {\n    var s = Object.getOwnPropertySymbols(e);\n    for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n  }\n  return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n  if (null == r) return {};\n  var t = {};\n  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n    if (e.includes(n)) continue;\n    t[n] = r[n];\n  }\n  return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function _setPrototypeOf(t, e) {\n  return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n    return t.__proto__ = e, t;\n  }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n  return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n  if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n  var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (null != t) {\n    var e,\n      n,\n      i,\n      u,\n      a = [],\n      f = !0,\n      o = !1;\n    try {\n      if (i = (t = t.call(r)).next, 0 === l) {\n        if (Object(t) !== t) return;\n        f = !1;\n      } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n    } catch (r) {\n      o = !0, n = r;\n    } finally {\n      try {\n        if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n      } finally {\n        if (o) throw n;\n      }\n    }\n    return a;\n  }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n  return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n  if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n  if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","function _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nexport { _typeof as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n  }\n}\nexport { _unsupportedIterableToArray as default };","import lookup from 'void-elements'\nconst attrRE = /\\s([^'\"/\\s><]+?)[\\s/>]|([^\\s=]+)=\\s?(\".*?\"|'.*?')/g\n\nexport default function stringify(tag) {\n  const res = {\n    type: 'tag',\n    name: '',\n    voidElement: false,\n    attrs: {},\n    children: [],\n  }\n\n  const tagMatch = tag.match(/<\\/?([^\\s]+?)[/\\s>]/)\n  if (tagMatch) {\n    res.name = tagMatch[1]\n    if (\n      lookup[tagMatch[1]] ||\n      tag.charAt(tag.length - 2) === '/'\n    ) {\n      res.voidElement = true\n    }\n\n    // handle comment tag\n    if (res.name.startsWith('!--')) {\n      const endIndex = tag.indexOf('-->')\n      return {\n        type: 'comment',\n        comment: endIndex !== -1 ? tag.slice(4, endIndex) : '',\n      }\n    }\n  }\n\n  const reg = new RegExp(attrRE)\n  let result = null\n  for (;;) {\n    result = reg.exec(tag)\n\n    if (result === null) {\n      break\n    }\n\n    if (!result[0].trim()) {\n      continue\n    }\n\n    if (result[1]) {\n      const attr = result[1].trim()\n      let arr = [attr, '']\n\n      if (attr.indexOf('=') > -1) {\n        arr = attr.split('=')\n      }\n\n      res.attrs[arr[0]] = arr[1]\n      reg.lastIndex--\n    } else if (result[2]) {\n      res.attrs[result[2]] = result[3].trim().substring(1, result[3].length - 1)\n    }\n  }\n\n  return res\n}\n","import parseTag from './parse-tag'\n\nconst tagRE = /<[a-zA-Z0-9\\-\\!\\/](?:\"[^\"]*\"|'[^']*'|[^'\">])*>/g\nconst whitespaceRE = /^\\s*$/\n\n// re-used obj for quick lookups of components\nconst empty = Object.create(null)\n\nexport default function parse(html, options) {\n  options || (options = {})\n  options.components || (options.components = empty)\n  const result = []\n  const arr = []\n  let current\n  let level = -1\n  let inComponent = false\n\n  // handle text at top level\n  if (html.indexOf('<') !== 0) {\n    var end = html.indexOf('<')\n    result.push({\n      type: 'text',\n      content: end === -1 ? html : html.substring(0, end),\n    })\n  }\n\n  html.replace(tagRE, function (tag, index) {\n    if (inComponent) {\n      if (tag !== '</' + current.name + '>') {\n        return\n      } else {\n        inComponent = false\n      }\n    }\n    const isOpen = tag.charAt(1) !== '/'\n    const isComment = tag.startsWith('<!--')\n    const start = index + tag.length\n    const nextChar = html.charAt(start)\n    let parent\n\n    if (isComment) {\n      const comment = parseTag(tag)\n\n      // if we're at root, push new base node\n      if (level < 0) {\n        result.push(comment)\n        return result\n      }\n      parent = arr[level]\n      parent.children.push(comment)\n      return result\n    }\n\n    if (isOpen) {\n      level++\n\n      current = parseTag(tag)\n      if (current.type === 'tag' && options.components[current.name]) {\n        current.type = 'component'\n        inComponent = true\n      }\n\n      if (\n        !current.voidElement &&\n        !inComponent &&\n        nextChar &&\n        nextChar !== '<'\n      ) {\n        current.children.push({\n          type: 'text',\n          content: html.slice(start, html.indexOf('<', start)),\n        })\n      }\n\n      // if we're at root, push new base node\n      if (level === 0) {\n        result.push(current)\n      }\n\n      parent = arr[level - 1]\n\n      if (parent) {\n        parent.children.push(current)\n      }\n\n      arr[level] = current\n    }\n\n    if (!isOpen || current.voidElement) {\n      if (\n        level > -1 &&\n        (current.voidElement || current.name === tag.slice(2, -1))\n      ) {\n        level--\n        // move current up a level to match the end tag\n        current = level === -1 ? result : arr[level]\n      }\n      if (!inComponent && nextChar !== '<' && nextChar) {\n        // trailing text node\n        // if we're at the root, push a base text node. otherwise add as\n        // a child to the current node.\n        parent = level === -1 ? result : arr[level].children\n\n        // calculate correct end of the content slice in case there's\n        // no tag after the text node.\n        const end = html.indexOf('<', start)\n        let content = html.slice(start, end === -1 ? undefined : end)\n        // if a node is nothing but whitespace, collapse it as the spec states:\n        // https://www.w3.org/TR/html4/struct/text.html#h-9.1\n        if (whitespaceRE.test(content)) {\n          content = ' '\n        }\n        // don't add whitespace-only text nodes if they would be trailing text nodes\n        // or if they would be leading whitespace-only text nodes:\n        //  * end > -1 indicates this is not a trailing text node\n        //  * leading node is when level is -1 and parent has length 0\n        if ((end > -1 && level + parent.length >= 0) || content !== ' ') {\n          parent.push({\n            type: 'text',\n            content: content,\n          })\n        }\n      }\n    }\n  })\n\n  return result\n}\n","function attrString(attrs) {\n  const buff = []\n  for (let key in attrs) {\n    buff.push(key + '=\"' + attrs[key] + '\"')\n  }\n  if (!buff.length) {\n    return ''\n  }\n  return ' ' + buff.join(' ')\n}\n\nfunction stringify(buff, doc) {\n  switch (doc.type) {\n    case 'text':\n      return buff + doc.content\n    case 'tag':\n      buff +=\n        '<' +\n        doc.name +\n        (doc.attrs ? attrString(doc.attrs) : '') +\n        (doc.voidElement ? '/>' : '>')\n      if (doc.voidElement) {\n        return buff\n      }\n      return buff + doc.children.reduce(stringify, '') + '</' + doc.name + '>'\n    case 'comment':\n      buff += '<!--' + doc.comment + '-->'\n      return buff\n  }\n}\n\nexport default function (doc) {\n  return doc.reduce(function (token, rootEl) {\n    return token + stringify('', rootEl)\n  }, '')\n}\n","export const warn = (...args) => {\n  if (console?.warn) {\n    if (isString(args[0])) args[0] = `react-i18next:: ${args[0]}`;\n    console.warn(...args);\n  }\n};\nconst alreadyWarned = {};\nexport const warnOnce = (...args) => {\n  if (isString(args[0]) && alreadyWarned[args[0]]) return;\n  if (isString(args[0])) alreadyWarned[args[0]] = new Date();\n  warn(...args);\n};\nconst loadedClb = (i18n, cb) => () => {\n  if (i18n.isInitialized) {\n    cb();\n  } else {\n    const initialized = () => {\n      setTimeout(() => {\n        i18n.off('initialized', initialized);\n      }, 0);\n      cb();\n    };\n    i18n.on('initialized', initialized);\n  }\n};\nexport const loadNamespaces = (i18n, ns, cb) => {\n  i18n.loadNamespaces(ns, loadedClb(i18n, cb));\n};\nexport const loadLanguages = (i18n, lng, ns, cb) => {\n  if (isString(ns)) ns = [ns];\n  ns.forEach(n => {\n    if (i18n.options.ns.indexOf(n) < 0) i18n.options.ns.push(n);\n  });\n  i18n.loadLanguages(lng, loadedClb(i18n, cb));\n};\nexport const hasLoadedNamespace = (ns, i18n, options = {}) => {\n  if (!i18n.languages || !i18n.languages.length) {\n    warnOnce('i18n.languages were undefined or empty', i18n.languages);\n    return true;\n  }\n  return i18n.hasLoadedNamespace(ns, {\n    lng: options.lng,\n    precheck: (i18nInstance, loadNotPending) => {\n      if (options.bindI18n?.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n    }\n  });\n};\nexport const getDisplayName = Component => Component.displayName || Component.name || (isString(Component) && Component.length > 0 ? Component : 'Unknown');\nexport const isString = obj => typeof obj === 'string';\nexport const isObject = obj => typeof obj === 'object' && obj !== null;","const matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nconst htmlEntities = {\n  '&amp;': '&',\n  '&#38;': '&',\n  '&lt;': '<',\n  '&#60;': '<',\n  '&gt;': '>',\n  '&#62;': '>',\n  '&apos;': \"'\",\n  '&#39;': \"'\",\n  '&quot;': '\"',\n  '&#34;': '\"',\n  '&nbsp;': ' ',\n  '&#160;': ' ',\n  '&copy;': '©',\n  '&#169;': '©',\n  '&reg;': '®',\n  '&#174;': '®',\n  '&hellip;': '…',\n  '&#8230;': '…',\n  '&#x2F;': '/',\n  '&#47;': '/'\n};\nconst unescapeHtmlEntity = m => htmlEntities[m];\nexport const unescape = text => text.replace(matchHtmlEntity, unescapeHtmlEntity);","import { unescape } from './unescape.js';\nlet defaultOptions = {\n  bindI18n: 'languageChanged',\n  bindI18nStore: '',\n  transEmptyNodeValue: '',\n  transSupportBasicHtmlNodes: true,\n  transWrapTextNodes: '',\n  transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n  useSuspense: true,\n  unescape\n};\nexport const setDefaults = (options = {}) => {\n  defaultOptions = {\n    ...defaultOptions,\n    ...options\n  };\n};\nexport const getDefaults = () => defaultOptions;","let i18nInstance;\nexport const setI18n = instance => {\n  i18nInstance = instance;\n};\nexport const getI18n = () => i18nInstance;","import { Fragment, isValidElement, cloneElement, createElement, Children } from 'react';\nimport HTML from 'html-parse-stringify';\nimport { isObject, isString, warn, warnOnce } from './utils.js';\nimport { getDefaults } from './defaults.js';\nimport { getI18n } from './i18nInstance.js';\nconst hasChildren = (node, checkLength) => {\n  if (!node) return false;\n  const base = node.props?.children ?? node.children;\n  if (checkLength) return base.length > 0;\n  return !!base;\n};\nconst getChildren = node => {\n  if (!node) return [];\n  const children = node.props?.children ?? node.children;\n  return node.props?.i18nIsDynamicList ? getAsArray(children) : children;\n};\nconst hasValidReactChildren = children => Array.isArray(children) && children.every(isValidElement);\nconst getAsArray = data => Array.isArray(data) ? data : [data];\nconst mergeProps = (source, target) => {\n  const newTarget = {\n    ...target\n  };\n  newTarget.props = Object.assign(source.props, target.props);\n  return newTarget;\n};\nexport const nodesToString = (children, i18nOptions) => {\n  if (!children) return '';\n  let stringNode = '';\n  const childrenArray = getAsArray(children);\n  const keepArray = i18nOptions?.transSupportBasicHtmlNodes ? i18nOptions.transKeepBasicHtmlNodesFor ?? [] : [];\n  childrenArray.forEach((child, childIndex) => {\n    if (isString(child)) {\n      stringNode += `${child}`;\n    } else if (isValidElement(child)) {\n      const {\n        props,\n        type\n      } = child;\n      const childPropsCount = Object.keys(props).length;\n      const shouldKeepChild = keepArray.indexOf(type) > -1;\n      const childChildren = props.children;\n      if (!childChildren && shouldKeepChild && !childPropsCount) {\n        stringNode += `<${type}/>`;\n      } else if (!childChildren && (!shouldKeepChild || childPropsCount) || props.i18nIsDynamicList) {\n        stringNode += `<${childIndex}></${childIndex}>`;\n      } else if (shouldKeepChild && childPropsCount === 1 && isString(childChildren)) {\n        stringNode += `<${type}>${childChildren}</${type}>`;\n      } else {\n        const content = nodesToString(childChildren, i18nOptions);\n        stringNode += `<${childIndex}>${content}</${childIndex}>`;\n      }\n    } else if (child === null) {\n      warn(`Trans: the passed in value is invalid - seems you passed in a null child.`);\n    } else if (isObject(child)) {\n      const {\n        format,\n        ...clone\n      } = child;\n      const keys = Object.keys(clone);\n      if (keys.length === 1) {\n        const value = format ? `${keys[0]}, ${format}` : keys[0];\n        stringNode += `{{${value}}}`;\n      } else {\n        warn(`react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.`, child);\n      }\n    } else {\n      warn(`Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.`, child);\n    }\n  });\n  return stringNode;\n};\nconst renderNodes = (children, targetString, i18n, i18nOptions, combinedTOpts, shouldUnescape) => {\n  if (targetString === '') return [];\n  const keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];\n  const emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.map(keep => `<${keep}`).join('|')).test(targetString);\n  if (!children && !emptyChildrenButNeedsHandling && !shouldUnescape) return [targetString];\n  const data = {};\n  const getData = childs => {\n    const childrenArray = getAsArray(childs);\n    childrenArray.forEach(child => {\n      if (isString(child)) return;\n      if (hasChildren(child)) getData(getChildren(child));else if (isObject(child) && !isValidElement(child)) Object.assign(data, child);\n    });\n  };\n  getData(children);\n  const ast = HTML.parse(`<0>${targetString}</0>`);\n  const opts = {\n    ...data,\n    ...combinedTOpts\n  };\n  const renderInner = (child, node, rootReactNode) => {\n    const childs = getChildren(child);\n    const mappedChildren = mapAST(childs, node.children, rootReactNode);\n    return hasValidReactChildren(childs) && mappedChildren.length === 0 || child.props?.i18nIsDynamicList ? childs : mappedChildren;\n  };\n  const pushTranslatedJSX = (child, inner, mem, i, isVoid) => {\n    if (child.dummy) {\n      child.children = inner;\n      mem.push(cloneElement(child, {\n        key: i\n      }, isVoid ? undefined : inner));\n    } else {\n      mem.push(...Children.map([child], c => {\n        const props = {\n          ...c.props\n        };\n        delete props.i18nIsDynamicList;\n        return createElement(c.type, {\n          ...props,\n          key: i,\n          ref: c.ref\n        }, isVoid ? null : inner);\n      }));\n    }\n  };\n  const mapAST = (reactNode, astNode, rootReactNode) => {\n    const reactNodes = getAsArray(reactNode);\n    const astNodes = getAsArray(astNode);\n    return astNodes.reduce((mem, node, i) => {\n      const translationContent = node.children?.[0]?.content && i18n.services.interpolator.interpolate(node.children[0].content, opts, i18n.language);\n      if (node.type === 'tag') {\n        let tmp = reactNodes[parseInt(node.name, 10)];\n        if (rootReactNode.length === 1 && !tmp) tmp = rootReactNode[0][node.name];\n        if (!tmp) tmp = {};\n        const child = Object.keys(node.attrs).length !== 0 ? mergeProps({\n          props: node.attrs\n        }, tmp) : tmp;\n        const isElement = isValidElement(child);\n        const isValidTranslationWithChildren = isElement && hasChildren(node, true) && !node.voidElement;\n        const isEmptyTransWithHTML = emptyChildrenButNeedsHandling && isObject(child) && child.dummy && !isElement;\n        const isKnownComponent = isObject(children) && Object.hasOwnProperty.call(children, node.name);\n        if (isString(child)) {\n          const value = i18n.services.interpolator.interpolate(child, opts, i18n.language);\n          mem.push(value);\n        } else if (hasChildren(child) || isValidTranslationWithChildren) {\n          const inner = renderInner(child, node, rootReactNode);\n          pushTranslatedJSX(child, inner, mem, i);\n        } else if (isEmptyTransWithHTML) {\n          const inner = mapAST(reactNodes, node.children, rootReactNode);\n          pushTranslatedJSX(child, inner, mem, i);\n        } else if (Number.isNaN(parseFloat(node.name))) {\n          if (isKnownComponent) {\n            const inner = renderInner(child, node, rootReactNode);\n            pushTranslatedJSX(child, inner, mem, i, node.voidElement);\n          } else if (i18nOptions.transSupportBasicHtmlNodes && keepArray.indexOf(node.name) > -1) {\n            if (node.voidElement) {\n              mem.push(createElement(node.name, {\n                key: `${node.name}-${i}`\n              }));\n            } else {\n              const inner = mapAST(reactNodes, node.children, rootReactNode);\n              mem.push(createElement(node.name, {\n                key: `${node.name}-${i}`\n              }, inner));\n            }\n          } else if (node.voidElement) {\n            mem.push(`<${node.name} />`);\n          } else {\n            const inner = mapAST(reactNodes, node.children, rootReactNode);\n            mem.push(`<${node.name}>${inner}</${node.name}>`);\n          }\n        } else if (isObject(child) && !isElement) {\n          const content = node.children[0] ? translationContent : null;\n          if (content) mem.push(content);\n        } else {\n          pushTranslatedJSX(child, translationContent, mem, i, node.children.length !== 1 || !translationContent);\n        }\n      } else if (node.type === 'text') {\n        const wrapTextNodes = i18nOptions.transWrapTextNodes;\n        const content = shouldUnescape ? i18nOptions.unescape(i18n.services.interpolator.interpolate(node.content, opts, i18n.language)) : i18n.services.interpolator.interpolate(node.content, opts, i18n.language);\n        if (wrapTextNodes) {\n          mem.push(createElement(wrapTextNodes, {\n            key: `${node.name}-${i}`\n          }, content));\n        } else {\n          mem.push(content);\n        }\n      }\n      return mem;\n    }, []);\n  };\n  const result = mapAST([{\n    dummy: true,\n    children: children || []\n  }], ast, getAsArray(children || []));\n  return getChildren(result[0]);\n};\nexport function Trans({\n  children,\n  count,\n  parent,\n  i18nKey,\n  context,\n  tOptions = {},\n  values,\n  defaults,\n  components,\n  ns,\n  i18n: i18nFromProps,\n  t: tFromProps,\n  shouldUnescape,\n  ...additionalProps\n}) {\n  const i18n = i18nFromProps || getI18n();\n  if (!i18n) {\n    warnOnce('You will need to pass in an i18next instance by using i18nextReactModule');\n    return children;\n  }\n  const t = tFromProps || i18n.t.bind(i18n) || (k => k);\n  const reactI18nextOptions = {\n    ...getDefaults(),\n    ...i18n.options?.react\n  };\n  let namespaces = ns || t.ns || i18n.options?.defaultNS;\n  namespaces = isString(namespaces) ? [namespaces] : namespaces || ['translation'];\n  const nodeAsString = nodesToString(children, reactI18nextOptions);\n  const defaultValue = defaults || nodeAsString || reactI18nextOptions.transEmptyNodeValue || i18nKey;\n  const {\n    hashTransKey\n  } = reactI18nextOptions;\n  const key = i18nKey || (hashTransKey ? hashTransKey(nodeAsString || defaultValue) : nodeAsString || defaultValue);\n  if (i18n.options?.interpolation?.defaultVariables) {\n    values = values && Object.keys(values).length > 0 ? {\n      ...values,\n      ...i18n.options.interpolation.defaultVariables\n    } : {\n      ...i18n.options.interpolation.defaultVariables\n    };\n  }\n  const interpolationOverride = values || count !== undefined && !i18n.options?.interpolation?.alwaysFormat || !children ? tOptions.interpolation : {\n    interpolation: {\n      ...tOptions.interpolation,\n      prefix: '#$?',\n      suffix: '?$#'\n    }\n  };\n  const combinedTOpts = {\n    ...tOptions,\n    context: context || tOptions.context,\n    count,\n    ...values,\n    ...interpolationOverride,\n    defaultValue,\n    ns: namespaces\n  };\n  const translation = key ? t(key, combinedTOpts) : defaultValue;\n  if (components) {\n    Object.keys(components).forEach(c => {\n      const comp = components[c];\n      if (typeof comp.type === 'function' || !comp.props || !comp.props.children || translation.indexOf(`${c}/>`) < 0 && translation.indexOf(`${c} />`) < 0) return;\n      function Componentized() {\n        return createElement(Fragment, null, comp);\n      }\n      components[c] = createElement(Componentized);\n    });\n  }\n  const content = renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts, shouldUnescape);\n  const useAsParent = parent ?? reactI18nextOptions.defaultTransParent;\n  return useAsParent ? createElement(useAsParent, additionalProps, content) : content;\n}","import { setDefaults } from './defaults.js';\nimport { setI18n } from './i18nInstance.js';\nexport const initReactI18next = {\n  type: '3rdParty',\n  init(instance) {\n    setDefaults(instance.options.react);\n    setI18n(instance);\n  }\n};","import { createContext } from 'react';\nimport { getDefaults, setDefaults } from './defaults.js';\nimport { getI18n, setI18n } from './i18nInstance.js';\nimport { initReactI18next } from './initReactI18next.js';\nexport { getDefaults, setDefaults, getI18n, setI18n, initReactI18next };\nexport const I18nContext = createContext();\nexport class ReportNamespaces {\n  constructor() {\n    this.usedNamespaces = {};\n  }\n  addUsedNamespaces(namespaces) {\n    namespaces.forEach(ns => {\n      this.usedNamespaces[ns] ??= true;\n    });\n  }\n  getUsedNamespaces() {\n    return Object.keys(this.usedNamespaces);\n  }\n}\nexport const composeInitialProps = ForComponent => async ctx => {\n  const componentsInitialProps = (await ForComponent.getInitialProps?.(ctx)) ?? {};\n  const i18nInitialProps = getInitialProps();\n  return {\n    ...componentsInitialProps,\n    ...i18nInitialProps\n  };\n};\nexport const getInitialProps = () => {\n  const i18n = getI18n();\n  const namespaces = i18n.reportNamespaces?.getUsedNamespaces() ?? [];\n  const ret = {};\n  const initialI18nStore = {};\n  i18n.languages.forEach(l => {\n    initialI18nStore[l] = {};\n    namespaces.forEach(ns => {\n      initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n    });\n  });\n  ret.initialI18nStore = initialI18nStore;\n  ret.initialLanguage = i18n.language;\n  return ret;\n};","import { useContext } from 'react';\nimport { nodesToString, Trans as TransWithoutContext } from './TransWithoutContext.js';\nimport { getI18n, I18nContext } from './context.js';\nexport { nodesToString };\nexport function Trans({\n  children,\n  count,\n  parent,\n  i18nKey,\n  context,\n  tOptions = {},\n  values,\n  defaults,\n  components,\n  ns,\n  i18n: i18nFromProps,\n  t: tFromProps,\n  shouldUnescape,\n  ...additionalProps\n}) {\n  const {\n    i18n: i18nFromContext,\n    defaultNS: defaultNSFromContext\n  } = useContext(I18nContext) || {};\n  const i18n = i18nFromProps || i18nFromContext || getI18n();\n  const t = tFromProps || i18n?.t.bind(i18n);\n  return TransWithoutContext({\n    children,\n    count,\n    parent,\n    i18nKey,\n    context,\n    tOptions,\n    values,\n    defaults,\n    components,\n    ns: ns || t?.ns || defaultNSFromContext || i18n?.options?.defaultNS,\n    i18n,\n    t: tFromProps,\n    shouldUnescape,\n    ...additionalProps\n  });\n}","import { useState, useEffect, useContext, useRef, useCallback } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context.js';\nimport { warnOnce, loadNamespaces, loadLanguages, hasLoadedNamespace, isString, isObject } from './utils.js';\nconst usePrevious = (value, ignore) => {\n  const ref = useRef();\n  useEffect(() => {\n    ref.current = ignore ? ref.current : value;\n  }, [value, ignore]);\n  return ref.current;\n};\nconst alwaysNewT = (i18n, language, namespace, keyPrefix) => i18n.getFixedT(language, namespace, keyPrefix);\nconst useMemoizedT = (i18n, language, namespace, keyPrefix) => useCallback(alwaysNewT(i18n, language, namespace, keyPrefix), [i18n, language, namespace, keyPrefix]);\nexport const useTranslation = (ns, props = {}) => {\n  const {\n    i18n: i18nFromProps\n  } = props;\n  const {\n    i18n: i18nFromContext,\n    defaultNS: defaultNSFromContext\n  } = useContext(I18nContext) || {};\n  const i18n = i18nFromProps || i18nFromContext || getI18n();\n  if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n  if (!i18n) {\n    warnOnce('You will need to pass in an i18next instance by using initReactI18next');\n    const notReadyT = (k, optsOrDefaultValue) => {\n      if (isString(optsOrDefaultValue)) return optsOrDefaultValue;\n      if (isObject(optsOrDefaultValue) && isString(optsOrDefaultValue.defaultValue)) return optsOrDefaultValue.defaultValue;\n      return Array.isArray(k) ? k[k.length - 1] : k;\n    };\n    const retNotReady = [notReadyT, {}, false];\n    retNotReady.t = notReadyT;\n    retNotReady.i18n = {};\n    retNotReady.ready = false;\n    return retNotReady;\n  }\n  if (i18n.options.react?.wait) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n  const i18nOptions = {\n    ...getDefaults(),\n    ...i18n.options.react,\n    ...props\n  };\n  const {\n    useSuspense,\n    keyPrefix\n  } = i18nOptions;\n  let namespaces = ns || defaultNSFromContext || i18n.options?.defaultNS;\n  namespaces = isString(namespaces) ? [namespaces] : namespaces || ['translation'];\n  i18n.reportNamespaces.addUsedNamespaces?.(namespaces);\n  const ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(n => hasLoadedNamespace(n, i18n, i18nOptions));\n  const memoGetT = useMemoizedT(i18n, props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n  const getT = () => memoGetT;\n  const getNewT = () => alwaysNewT(i18n, props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n  const [t, setT] = useState(getT);\n  let joinedNS = namespaces.join();\n  if (props.lng) joinedNS = `${props.lng}${joinedNS}`;\n  const previousJoinedNS = usePrevious(joinedNS);\n  const isMounted = useRef(true);\n  useEffect(() => {\n    const {\n      bindI18n,\n      bindI18nStore\n    } = i18nOptions;\n    isMounted.current = true;\n    if (!ready && !useSuspense) {\n      if (props.lng) {\n        loadLanguages(i18n, props.lng, namespaces, () => {\n          if (isMounted.current) setT(getNewT);\n        });\n      } else {\n        loadNamespaces(i18n, namespaces, () => {\n          if (isMounted.current) setT(getNewT);\n        });\n      }\n    }\n    if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n      setT(getNewT);\n    }\n    const boundReset = () => {\n      if (isMounted.current) setT(getNewT);\n    };\n    if (bindI18n) i18n?.on(bindI18n, boundReset);\n    if (bindI18nStore) i18n?.store.on(bindI18nStore, boundReset);\n    return () => {\n      isMounted.current = false;\n      if (i18n) bindI18n?.split(' ').forEach(e => i18n.off(e, boundReset));\n      if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(e => i18n.store.off(e, boundReset));\n    };\n  }, [i18n, joinedNS]);\n  useEffect(() => {\n    if (isMounted.current && ready) {\n      setT(getT);\n    }\n  }, [i18n, keyPrefix, ready]);\n  const ret = [t, i18n, ready];\n  ret.t = t;\n  ret.i18n = i18n;\n  ret.ready = ready;\n  if (ready) return ret;\n  if (!ready && !useSuspense) return ret;\n  throw new Promise(resolve => {\n    if (props.lng) {\n      loadLanguages(i18n, props.lng, namespaces, () => resolve());\n    } else {\n      loadNamespaces(i18n, namespaces, () => resolve());\n    }\n  });\n};","import { useTranslation } from './useTranslation.js';\nexport const Translation = ({\n  ns,\n  children,\n  ...options\n}) => {\n  const [t, i18n, ready] = useTranslation(ns, options);\n  return children(t, {\n    i18n,\n    lng: i18n.language\n  }, ready);\n};","import React from 'react';\n\nvar isCheckBoxInput = (element) => element.type === 'checkbox';\n\nvar isDateObject = (value) => value instanceof Date;\n\nvar isNullOrUndefined = (value) => value == null;\n\nconst isObjectType = (value) => typeof value === 'object';\nvar isObject = (value) => !isNullOrUndefined(value) &&\n    !Array.isArray(value) &&\n    isObjectType(value) &&\n    !isDateObject(value);\n\nvar getEventValue = (event) => isObject(event) && event.target\n    ? isCheckBoxInput(event.target)\n        ? event.target.checked\n        : event.target.value\n    : event;\n\nvar getNodeParentName = (name) => name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n\nvar isNameInFieldArray = (names, name) => names.has(getNodeParentName(name));\n\nvar isPlainObject = (tempObject) => {\n    const prototypeCopy = tempObject.constructor && tempObject.constructor.prototype;\n    return (isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf'));\n};\n\nvar isWeb = typeof window !== 'undefined' &&\n    typeof window.HTMLElement !== 'undefined' &&\n    typeof document !== 'undefined';\n\nfunction cloneObject(data) {\n    let copy;\n    const isArray = Array.isArray(data);\n    if (data instanceof Date) {\n        copy = new Date(data);\n    }\n    else if (data instanceof Set) {\n        copy = new Set(data);\n    }\n    else if (!(isWeb && (data instanceof Blob || data instanceof FileList)) &&\n        (isArray || isObject(data))) {\n        copy = isArray ? [] : {};\n        if (!isArray && !isPlainObject(data)) {\n            copy = data;\n        }\n        else {\n            for (const key in data) {\n                if (data.hasOwnProperty(key)) {\n                    copy[key] = cloneObject(data[key]);\n                }\n            }\n        }\n    }\n    else {\n        return data;\n    }\n    return copy;\n}\n\nvar compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];\n\nvar isUndefined = (val) => val === undefined;\n\nvar get = (object, path, defaultValue) => {\n    if (!path || !isObject(object)) {\n        return defaultValue;\n    }\n    const result = compact(path.split(/[,[\\].]+?/)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], object);\n    return isUndefined(result) || result === object\n        ? isUndefined(object[path])\n            ? defaultValue\n            : object[path]\n        : result;\n};\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nvar isKey = (value) => /^\\w*$/.test(value);\n\nvar stringToPath = (input) => compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n\nvar set = (object, path, value) => {\n    let index = -1;\n    const tempPath = isKey(path) ? [path] : stringToPath(path);\n    const length = tempPath.length;\n    const lastIndex = length - 1;\n    while (++index < length) {\n        const key = tempPath[index];\n        let newValue = value;\n        if (index !== lastIndex) {\n            const objValue = object[key];\n            newValue =\n                isObject(objValue) || Array.isArray(objValue)\n                    ? objValue\n                    : !isNaN(+tempPath[index + 1])\n                        ? []\n                        : {};\n        }\n        if (key === '__proto__') {\n            return;\n        }\n        object[key] = newValue;\n        object = object[key];\n    }\n    return object;\n};\n\nconst EVENTS = {\n    BLUR: 'blur',\n    FOCUS_OUT: 'focusout',\n    CHANGE: 'change',\n};\nconst VALIDATION_MODE = {\n    onBlur: 'onBlur',\n    onChange: 'onChange',\n    onSubmit: 'onSubmit',\n    onTouched: 'onTouched',\n    all: 'all',\n};\nconst INPUT_VALIDATION_RULES = {\n    max: 'max',\n    min: 'min',\n    maxLength: 'maxLength',\n    minLength: 'minLength',\n    pattern: 'pattern',\n    required: 'required',\n    validate: 'validate',\n};\n\nconst HookFormContext = React.createContext(null);\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n *   const methods = useForm();\n *   const onSubmit = data => console.log(data);\n *\n *   return (\n *     <FormProvider {...methods} >\n *       <form onSubmit={methods.handleSubmit(onSubmit)}>\n *         <NestedInput />\n *         <input type=\"submit\" />\n *       </form>\n *     </FormProvider>\n *   );\n * }\n *\n *  function NestedInput() {\n *   const { register } = useFormContext(); // retrieve all hook methods\n *   return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst useFormContext = () => React.useContext(HookFormContext);\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n *   const methods = useForm();\n *   const onSubmit = data => console.log(data);\n *\n *   return (\n *     <FormProvider {...methods} >\n *       <form onSubmit={methods.handleSubmit(onSubmit)}>\n *         <NestedInput />\n *         <input type=\"submit\" />\n *       </form>\n *     </FormProvider>\n *   );\n * }\n *\n *  function NestedInput() {\n *   const { register } = useFormContext(); // retrieve all hook methods\n *   return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst FormProvider = (props) => {\n    const { children, ...data } = props;\n    return (React.createElement(HookFormContext.Provider, { value: data }, children));\n};\n\nvar getProxyFormState = (formState, control, localProxyFormState, isRoot = true) => {\n    const result = {\n        defaultValues: control._defaultValues,\n    };\n    for (const key in formState) {\n        Object.defineProperty(result, key, {\n            get: () => {\n                const _key = key;\n                if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n                    control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n                }\n                localProxyFormState && (localProxyFormState[_key] = true);\n                return formState[_key];\n            },\n        });\n    }\n    return result;\n};\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar shouldRenderFormState = (formStateData, _proxyFormState, updateFormState, isRoot) => {\n    updateFormState(formStateData);\n    const { name, ...formState } = formStateData;\n    return (isEmptyObject(formState) ||\n        Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n        Object.keys(formState).find((key) => _proxyFormState[key] ===\n            (!isRoot || VALIDATION_MODE.all)));\n};\n\nvar convertToArrayPayload = (value) => (Array.isArray(value) ? value : [value]);\n\nvar shouldSubscribeByName = (name, signalName, exact) => !name ||\n    !signalName ||\n    name === signalName ||\n    convertToArrayPayload(name).some((currentName) => currentName &&\n        (exact\n            ? currentName === signalName\n            : currentName.startsWith(signalName) ||\n                signalName.startsWith(currentName)));\n\nfunction useSubscribe(props) {\n    const _props = React.useRef(props);\n    _props.current = props;\n    React.useEffect(() => {\n        const subscription = !props.disabled &&\n            _props.current.subject &&\n            _props.current.subject.subscribe({\n                next: _props.current.next,\n            });\n        return () => {\n            subscription && subscription.unsubscribe();\n        };\n    }, [props.disabled]);\n}\n\n/**\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\n *\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\n *\n * @example\n * ```tsx\n * function App() {\n *   const { register, handleSubmit, control } = useForm({\n *     defaultValues: {\n *     firstName: \"firstName\"\n *   }});\n *   const { dirtyFields } = useFormState({\n *     control\n *   });\n *   const onSubmit = (data) => console.log(data);\n *\n *   return (\n *     <form onSubmit={handleSubmit(onSubmit)}>\n *       <input {...register(\"firstName\")} placeholder=\"First Name\" />\n *       {dirtyFields.firstName && <p>Field is dirty.</p>}\n *       <input type=\"submit\" />\n *     </form>\n *   );\n * }\n * ```\n */\nfunction useFormState(props) {\n    const methods = useFormContext();\n    const { control = methods.control, disabled, name, exact } = props || {};\n    const [formState, updateFormState] = React.useState(control._formState);\n    const _mounted = React.useRef(true);\n    const _localProxyFormState = React.useRef({\n        isDirty: false,\n        isLoading: false,\n        dirtyFields: false,\n        touchedFields: false,\n        validatingFields: false,\n        isValidating: false,\n        isValid: false,\n        errors: false,\n    });\n    const _name = React.useRef(name);\n    _name.current = name;\n    useSubscribe({\n        disabled,\n        next: (value) => _mounted.current &&\n            shouldSubscribeByName(_name.current, value.name, exact) &&\n            shouldRenderFormState(value, _localProxyFormState.current, control._updateFormState) &&\n            updateFormState({\n                ...control._formState,\n                ...value,\n            }),\n        subject: control._subjects.state,\n    });\n    React.useEffect(() => {\n        _mounted.current = true;\n        _localProxyFormState.current.isValid && control._updateValid(true);\n        return () => {\n            _mounted.current = false;\n        };\n    }, [control]);\n    return getProxyFormState(formState, control, _localProxyFormState.current, false);\n}\n\nvar isString = (value) => typeof value === 'string';\n\nvar generateWatchOutput = (names, _names, formValues, isGlobal, defaultValue) => {\n    if (isString(names)) {\n        isGlobal && _names.watch.add(names);\n        return get(formValues, names, defaultValue);\n    }\n    if (Array.isArray(names)) {\n        return names.map((fieldName) => (isGlobal && _names.watch.add(fieldName), get(formValues, fieldName)));\n    }\n    isGlobal && (_names.watchAll = true);\n    return formValues;\n};\n\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n *   name: \"fieldName\"\n *   control,\n * })\n * ```\n */\nfunction useWatch(props) {\n    const methods = useFormContext();\n    const { control = methods.control, name, defaultValue, disabled, exact, } = props || {};\n    const _name = React.useRef(name);\n    _name.current = name;\n    useSubscribe({\n        disabled,\n        subject: control._subjects.values,\n        next: (formState) => {\n            if (shouldSubscribeByName(_name.current, formState.name, exact)) {\n                updateValue(cloneObject(generateWatchOutput(_name.current, control._names, formState.values || control._formValues, false, defaultValue)));\n            }\n        },\n    });\n    const [value, updateValue] = React.useState(control._getWatch(name, defaultValue));\n    React.useEffect(() => control._removeUnmounted());\n    return value;\n}\n\n/**\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns field properties, field and form state. {@link UseControllerReturn}\n *\n * @example\n * ```tsx\n * function Input(props) {\n *   const { field, fieldState, formState } = useController(props);\n *   return (\n *     <div>\n *       <input {...field} placeholder={props.name} />\n *       <p>{fieldState.isTouched && \"Touched\"}</p>\n *       <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n *     </div>\n *   );\n * }\n * ```\n */\nfunction useController(props) {\n    const methods = useFormContext();\n    const { name, disabled, control = methods.control, shouldUnregister } = props;\n    const isArrayField = isNameInFieldArray(control._names.array, name);\n    const value = useWatch({\n        control,\n        name,\n        defaultValue: get(control._formValues, name, get(control._defaultValues, name, props.defaultValue)),\n        exact: true,\n    });\n    const formState = useFormState({\n        control,\n        name,\n        exact: true,\n    });\n    const _registerProps = React.useRef(control.register(name, {\n        ...props.rules,\n        value,\n        ...(isBoolean(props.disabled) ? { disabled: props.disabled } : {}),\n    }));\n    React.useEffect(() => {\n        const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;\n        const updateMounted = (name, value) => {\n            const field = get(control._fields, name);\n            if (field && field._f) {\n                field._f.mount = value;\n            }\n        };\n        updateMounted(name, true);\n        if (_shouldUnregisterField) {\n            const value = cloneObject(get(control._options.defaultValues, name));\n            set(control._defaultValues, name, value);\n            if (isUndefined(get(control._formValues, name))) {\n                set(control._formValues, name, value);\n            }\n        }\n        return () => {\n            (isArrayField\n                ? _shouldUnregisterField && !control._state.action\n                : _shouldUnregisterField)\n                ? control.unregister(name)\n                : updateMounted(name, false);\n        };\n    }, [name, control, isArrayField, shouldUnregister]);\n    React.useEffect(() => {\n        if (get(control._fields, name)) {\n            control._updateDisabledField({\n                disabled,\n                fields: control._fields,\n                name,\n                value: get(control._fields, name)._f.value,\n            });\n        }\n    }, [disabled, name, control]);\n    return {\n        field: {\n            name,\n            value,\n            ...(isBoolean(disabled) || formState.disabled\n                ? { disabled: formState.disabled || disabled }\n                : {}),\n            onChange: React.useCallback((event) => _registerProps.current.onChange({\n                target: {\n                    value: getEventValue(event),\n                    name: name,\n                },\n                type: EVENTS.CHANGE,\n            }), [name]),\n            onBlur: React.useCallback(() => _registerProps.current.onBlur({\n                target: {\n                    value: get(control._formValues, name),\n                    name: name,\n                },\n                type: EVENTS.BLUR,\n            }), [name, control]),\n            ref: React.useCallback((elm) => {\n                const field = get(control._fields, name);\n                if (field && elm) {\n                    field._f.ref = {\n                        focus: () => elm.focus(),\n                        select: () => elm.select(),\n                        setCustomValidity: (message) => elm.setCustomValidity(message),\n                        reportValidity: () => elm.reportValidity(),\n                    };\n                }\n            }, [control._fields, name]),\n        },\n        formState,\n        fieldState: Object.defineProperties({}, {\n            invalid: {\n                enumerable: true,\n                get: () => !!get(formState.errors, name),\n            },\n            isDirty: {\n                enumerable: true,\n                get: () => !!get(formState.dirtyFields, name),\n            },\n            isTouched: {\n                enumerable: true,\n                get: () => !!get(formState.touchedFields, name),\n            },\n            isValidating: {\n                enumerable: true,\n                get: () => !!get(formState.validatingFields, name),\n            },\n            error: {\n                enumerable: true,\n                get: () => get(formState.errors, name),\n            },\n        }),\n    };\n}\n\n/**\n * Component based on `useController` hook to work with controlled component.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns provide field handler functions, field and form state.\n *\n * @example\n * ```tsx\n * function App() {\n *   const { control } = useForm<FormValues>({\n *     defaultValues: {\n *       test: \"\"\n *     }\n *   });\n *\n *   return (\n *     <form>\n *       <Controller\n *         control={control}\n *         name=\"test\"\n *         render={({ field: { onChange, onBlur, value, ref }, formState, fieldState }) => (\n *           <>\n *             <input\n *               onChange={onChange} // send value to hook form\n *               onBlur={onBlur} // notify when input is touched\n *               value={value} // return updated value\n *               ref={ref} // set ref for focus management\n *             />\n *             <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n *             <p>{fieldState.isTouched ? \"touched\" : \"\"}</p>\n *           </>\n *         )}\n *       />\n *     </form>\n *   );\n * }\n * ```\n */\nconst Controller = (props) => props.render(useController(props));\n\nconst POST_REQUEST = 'post';\n/**\n * Form component to manage submission.\n *\n * @param props - to setup submission detail. {@link FormProps}\n *\n * @returns form component or headless render prop.\n *\n * @example\n * ```tsx\n * function App() {\n *   const { control, formState: { errors } } = useForm();\n *\n *   return (\n *     <Form action=\"/api\" control={control}>\n *       <input {...register(\"name\")} />\n *       <p>{errors?.root?.server && 'Server error'}</p>\n *       <button>Submit</button>\n *     </Form>\n *   );\n * }\n * ```\n */\nfunction Form(props) {\n    const methods = useFormContext();\n    const [mounted, setMounted] = React.useState(false);\n    const { control = methods.control, onSubmit, children, action, method = POST_REQUEST, headers, encType, onError, render, onSuccess, validateStatus, ...rest } = props;\n    const submit = async (event) => {\n        let hasError = false;\n        let type = '';\n        await control.handleSubmit(async (data) => {\n            const formData = new FormData();\n            let formDataJson = '';\n            try {\n                formDataJson = JSON.stringify(data);\n            }\n            catch (_a) { }\n            for (const name of control._names.mount) {\n                formData.append(name, get(data, name));\n            }\n            if (onSubmit) {\n                await onSubmit({\n                    data,\n                    event,\n                    method,\n                    formData,\n                    formDataJson,\n                });\n            }\n            if (action) {\n                try {\n                    const shouldStringifySubmissionData = [\n                        headers && headers['Content-Type'],\n                        encType,\n                    ].some((value) => value && value.includes('json'));\n                    const response = await fetch(action, {\n                        method,\n                        headers: {\n                            ...headers,\n                            ...(encType ? { 'Content-Type': encType } : {}),\n                        },\n                        body: shouldStringifySubmissionData ? formDataJson : formData,\n                    });\n                    if (response &&\n                        (validateStatus\n                            ? !validateStatus(response.status)\n                            : response.status < 200 || response.status >= 300)) {\n                        hasError = true;\n                        onError && onError({ response });\n                        type = String(response.status);\n                    }\n                    else {\n                        onSuccess && onSuccess({ response });\n                    }\n                }\n                catch (error) {\n                    hasError = true;\n                    onError && onError({ error });\n                }\n            }\n        })(event);\n        if (hasError && props.control) {\n            props.control._subjects.state.next({\n                isSubmitSuccessful: false,\n            });\n            props.control.setError('root.server', {\n                type,\n            });\n        }\n    };\n    React.useEffect(() => {\n        setMounted(true);\n    }, []);\n    return render ? (React.createElement(React.Fragment, null, render({\n        submit,\n    }))) : (React.createElement(\"form\", { noValidate: mounted, action: action, method: method, encType: encType, onSubmit: submit, ...rest }, children));\n}\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria\n    ? {\n        ...errors[name],\n        types: {\n            ...(errors[name] && errors[name].types ? errors[name].types : {}),\n            [type]: message || true,\n        },\n    }\n    : {};\n\nvar generateId = () => {\n    const d = typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\n    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n        const r = (Math.random() * 16 + d) % 16 | 0;\n        return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\n    });\n};\n\nvar getFocusFieldName = (name, index, options = {}) => options.shouldFocus || isUndefined(options.shouldFocus)\n    ? options.focusName ||\n        `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\n    : '';\n\nvar getValidationModes = (mode) => ({\n    isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n    isOnBlur: mode === VALIDATION_MODE.onBlur,\n    isOnChange: mode === VALIDATION_MODE.onChange,\n    isOnAll: mode === VALIDATION_MODE.all,\n    isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n\nvar isWatched = (name, _names, isBlurEvent) => !isBlurEvent &&\n    (_names.watchAll ||\n        _names.watch.has(name) ||\n        [..._names.watch].some((watchName) => name.startsWith(watchName) &&\n            /^\\.\\w+/.test(name.slice(watchName.length))));\n\nconst iterateFieldsByAction = (fields, action, fieldsNames, abortEarly) => {\n    for (const key of fieldsNames || Object.keys(fields)) {\n        const field = get(fields, key);\n        if (field) {\n            const { _f, ...currentField } = field;\n            if (_f) {\n                if (_f.refs && _f.refs[0] && action(_f.refs[0], key) && !abortEarly) {\n                    return true;\n                }\n                else if (_f.ref && action(_f.ref, _f.name) && !abortEarly) {\n                    return true;\n                }\n                else {\n                    if (iterateFieldsByAction(currentField, action)) {\n                        break;\n                    }\n                }\n            }\n            else if (isObject(currentField)) {\n                if (iterateFieldsByAction(currentField, action)) {\n                    break;\n                }\n            }\n        }\n    }\n    return;\n};\n\nvar updateFieldArrayRootError = (errors, error, name) => {\n    const fieldArrayErrors = convertToArrayPayload(get(errors, name));\n    set(fieldArrayErrors, 'root', error[name]);\n    set(errors, name, fieldArrayErrors);\n    return errors;\n};\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar isHTMLElement = (value) => {\n    if (!isWeb) {\n        return false;\n    }\n    const owner = value ? value.ownerDocument : 0;\n    return (value instanceof\n        (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement));\n};\n\nvar isMessage = (value) => isString(value);\n\nvar isRadioInput = (element) => element.type === 'radio';\n\nvar isRegex = (value) => value instanceof RegExp;\n\nconst defaultResult = {\n    value: false,\n    isValid: false,\n};\nconst validResult = { value: true, isValid: true };\nvar getCheckboxValue = (options) => {\n    if (Array.isArray(options)) {\n        if (options.length > 1) {\n            const values = options\n                .filter((option) => option && option.checked && !option.disabled)\n                .map((option) => option.value);\n            return { value: values, isValid: !!values.length };\n        }\n        return options[0].checked && !options[0].disabled\n            ? // @ts-expect-error expected to work in the browser\n                options[0].attributes && !isUndefined(options[0].attributes.value)\n                    ? isUndefined(options[0].value) || options[0].value === ''\n                        ? validResult\n                        : { value: options[0].value, isValid: true }\n                    : validResult\n            : defaultResult;\n    }\n    return defaultResult;\n};\n\nconst defaultReturn = {\n    isValid: false,\n    value: null,\n};\nvar getRadioValue = (options) => Array.isArray(options)\n    ? options.reduce((previous, option) => option && option.checked && !option.disabled\n        ? {\n            isValid: true,\n            value: option.value,\n        }\n        : previous, defaultReturn)\n    : defaultReturn;\n\nfunction getValidateError(result, ref, type = 'validate') {\n    if (isMessage(result) ||\n        (Array.isArray(result) && result.every(isMessage)) ||\n        (isBoolean(result) && !result)) {\n        return {\n            type,\n            message: isMessage(result) ? result : '',\n            ref,\n        };\n    }\n}\n\nvar getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)\n    ? validationData\n    : {\n        value: validationData,\n        message: '',\n    };\n\nvar validateField = async (field, formValues, validateAllFieldCriteria, shouldUseNativeValidation, isFieldArray) => {\n    const { ref, refs, required, maxLength, minLength, min, max, pattern, validate, name, valueAsNumber, mount, disabled, } = field._f;\n    const inputValue = get(formValues, name);\n    if (!mount || disabled) {\n        return {};\n    }\n    const inputRef = refs ? refs[0] : ref;\n    const setCustomValidity = (message) => {\n        if (shouldUseNativeValidation && inputRef.reportValidity) {\n            inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n            inputRef.reportValidity();\n        }\n    };\n    const error = {};\n    const isRadio = isRadioInput(ref);\n    const isCheckBox = isCheckBoxInput(ref);\n    const isRadioOrCheckbox = isRadio || isCheckBox;\n    const isEmpty = ((valueAsNumber || isFileInput(ref)) &&\n        isUndefined(ref.value) &&\n        isUndefined(inputValue)) ||\n        (isHTMLElement(ref) && ref.value === '') ||\n        inputValue === '' ||\n        (Array.isArray(inputValue) && !inputValue.length);\n    const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\n    const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {\n        const message = exceedMax ? maxLengthMessage : minLengthMessage;\n        error[name] = {\n            type: exceedMax ? maxType : minType,\n            message,\n            ref,\n            ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n        };\n    };\n    if (isFieldArray\n        ? !Array.isArray(inputValue) || !inputValue.length\n        : required &&\n            ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n                (isBoolean(inputValue) && !inputValue) ||\n                (isCheckBox && !getCheckboxValue(refs).isValid) ||\n                (isRadio && !getRadioValue(refs).isValid))) {\n        const { value, message } = isMessage(required)\n            ? { value: !!required, message: required }\n            : getValueAndMessage(required);\n        if (value) {\n            error[name] = {\n                type: INPUT_VALIDATION_RULES.required,\n                message,\n                ref: inputRef,\n                ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n            };\n            if (!validateAllFieldCriteria) {\n                setCustomValidity(message);\n                return error;\n            }\n        }\n    }\n    if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n        let exceedMax;\n        let exceedMin;\n        const maxOutput = getValueAndMessage(max);\n        const minOutput = getValueAndMessage(min);\n        if (!isNullOrUndefined(inputValue) && !isNaN(inputValue)) {\n            const valueNumber = ref.valueAsNumber ||\n                (inputValue ? +inputValue : inputValue);\n            if (!isNullOrUndefined(maxOutput.value)) {\n                exceedMax = valueNumber > maxOutput.value;\n            }\n            if (!isNullOrUndefined(minOutput.value)) {\n                exceedMin = valueNumber < minOutput.value;\n            }\n        }\n        else {\n            const valueDate = ref.valueAsDate || new Date(inputValue);\n            const convertTimeToDate = (time) => new Date(new Date().toDateString() + ' ' + time);\n            const isTime = ref.type == 'time';\n            const isWeek = ref.type == 'week';\n            if (isString(maxOutput.value) && inputValue) {\n                exceedMax = isTime\n                    ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n                    : isWeek\n                        ? inputValue > maxOutput.value\n                        : valueDate > new Date(maxOutput.value);\n            }\n            if (isString(minOutput.value) && inputValue) {\n                exceedMin = isTime\n                    ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n                    : isWeek\n                        ? inputValue < minOutput.value\n                        : valueDate < new Date(minOutput.value);\n            }\n        }\n        if (exceedMax || exceedMin) {\n            getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\n            if (!validateAllFieldCriteria) {\n                setCustomValidity(error[name].message);\n                return error;\n            }\n        }\n    }\n    if ((maxLength || minLength) &&\n        !isEmpty &&\n        (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))) {\n        const maxLengthOutput = getValueAndMessage(maxLength);\n        const minLengthOutput = getValueAndMessage(minLength);\n        const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&\n            inputValue.length > +maxLengthOutput.value;\n        const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&\n            inputValue.length < +minLengthOutput.value;\n        if (exceedMax || exceedMin) {\n            getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\n            if (!validateAllFieldCriteria) {\n                setCustomValidity(error[name].message);\n                return error;\n            }\n        }\n    }\n    if (pattern && !isEmpty && isString(inputValue)) {\n        const { value: patternValue, message } = getValueAndMessage(pattern);\n        if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n            error[name] = {\n                type: INPUT_VALIDATION_RULES.pattern,\n                message,\n                ref,\n                ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n            };\n            if (!validateAllFieldCriteria) {\n                setCustomValidity(message);\n                return error;\n            }\n        }\n    }\n    if (validate) {\n        if (isFunction(validate)) {\n            const result = await validate(inputValue, formValues);\n            const validateError = getValidateError(result, inputRef);\n            if (validateError) {\n                error[name] = {\n                    ...validateError,\n                    ...appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message),\n                };\n                if (!validateAllFieldCriteria) {\n                    setCustomValidity(validateError.message);\n                    return error;\n                }\n            }\n        }\n        else if (isObject(validate)) {\n            let validationResult = {};\n            for (const key in validate) {\n                if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n                    break;\n                }\n                const validateError = getValidateError(await validate[key](inputValue, formValues), inputRef, key);\n                if (validateError) {\n                    validationResult = {\n                        ...validateError,\n                        ...appendErrorsCurry(key, validateError.message),\n                    };\n                    setCustomValidity(validateError.message);\n                    if (validateAllFieldCriteria) {\n                        error[name] = validationResult;\n                    }\n                }\n            }\n            if (!isEmptyObject(validationResult)) {\n                error[name] = {\n                    ref: inputRef,\n                    ...validationResult,\n                };\n                if (!validateAllFieldCriteria) {\n                    return error;\n                }\n            }\n        }\n    }\n    setCustomValidity(true);\n    return error;\n};\n\nvar appendAt = (data, value) => [\n    ...data,\n    ...convertToArrayPayload(value),\n];\n\nvar fillEmptyArray = (value) => Array.isArray(value) ? value.map(() => undefined) : undefined;\n\nfunction insert(data, index, value) {\n    return [\n        ...data.slice(0, index),\n        ...convertToArrayPayload(value),\n        ...data.slice(index),\n    ];\n}\n\nvar moveArrayAt = (data, from, to) => {\n    if (!Array.isArray(data)) {\n        return [];\n    }\n    if (isUndefined(data[to])) {\n        data[to] = undefined;\n    }\n    data.splice(to, 0, data.splice(from, 1)[0]);\n    return data;\n};\n\nvar prependAt = (data, value) => [\n    ...convertToArrayPayload(value),\n    ...convertToArrayPayload(data),\n];\n\nfunction removeAtIndexes(data, indexes) {\n    let i = 0;\n    const temp = [...data];\n    for (const index of indexes) {\n        temp.splice(index - i, 1);\n        i++;\n    }\n    return compact(temp).length ? temp : [];\n}\nvar removeArrayAt = (data, index) => isUndefined(index)\n    ? []\n    : removeAtIndexes(data, convertToArrayPayload(index).sort((a, b) => a - b));\n\nvar swapArrayAt = (data, indexA, indexB) => {\n    [data[indexA], data[indexB]] = [data[indexB], data[indexA]];\n};\n\nfunction baseGet(object, updatePath) {\n    const length = updatePath.slice(0, -1).length;\n    let index = 0;\n    while (index < length) {\n        object = isUndefined(object) ? index++ : object[updatePath[index++]];\n    }\n    return object;\n}\nfunction isEmptyArray(obj) {\n    for (const key in obj) {\n        if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n            return false;\n        }\n    }\n    return true;\n}\nfunction unset(object, path) {\n    const paths = Array.isArray(path)\n        ? path\n        : isKey(path)\n            ? [path]\n            : stringToPath(path);\n    const childObject = paths.length === 1 ? object : baseGet(object, paths);\n    const index = paths.length - 1;\n    const key = paths[index];\n    if (childObject) {\n        delete childObject[key];\n    }\n    if (index !== 0 &&\n        ((isObject(childObject) && isEmptyObject(childObject)) ||\n            (Array.isArray(childObject) && isEmptyArray(childObject)))) {\n        unset(object, paths.slice(0, -1));\n    }\n    return object;\n}\n\nvar updateAt = (fieldValues, index, value) => {\n    fieldValues[index] = value;\n    return fieldValues;\n};\n\n/**\n * A custom hook that exposes convenient methods to perform operations with a list of dynamic inputs that need to be appended, updated, removed etc. • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn) • [Video](https://youtu.be/4MrbfGSFY2A)\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usefieldarray) • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)\n *\n * @param props - useFieldArray props\n *\n * @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}\n *\n * @example\n * ```tsx\n * function App() {\n *   const { register, control, handleSubmit, reset, trigger, setError } = useForm({\n *     defaultValues: {\n *       test: []\n *     }\n *   });\n *   const { fields, append } = useFieldArray({\n *     control,\n *     name: \"test\"\n *   });\n *\n *   return (\n *     <form onSubmit={handleSubmit(data => console.log(data))}>\n *       {fields.map((item, index) => (\n *          <input key={item.id} {...register(`test.${index}.firstName`)}  />\n *       ))}\n *       <button type=\"button\" onClick={() => append({ firstName: \"bill\" })}>\n *         append\n *       </button>\n *       <input type=\"submit\" />\n *     </form>\n *   );\n * }\n * ```\n */\nfunction useFieldArray(props) {\n    const methods = useFormContext();\n    const { control = methods.control, name, keyName = 'id', shouldUnregister, } = props;\n    const [fields, setFields] = React.useState(control._getFieldArray(name));\n    const ids = React.useRef(control._getFieldArray(name).map(generateId));\n    const _fieldIds = React.useRef(fields);\n    const _name = React.useRef(name);\n    const _actioned = React.useRef(false);\n    _name.current = name;\n    _fieldIds.current = fields;\n    control._names.array.add(name);\n    props.rules &&\n        control.register(name, props.rules);\n    useSubscribe({\n        next: ({ values, name: fieldArrayName, }) => {\n            if (fieldArrayName === _name.current || !fieldArrayName) {\n                const fieldValues = get(values, _name.current);\n                if (Array.isArray(fieldValues)) {\n                    setFields(fieldValues);\n                    ids.current = fieldValues.map(generateId);\n                }\n            }\n        },\n        subject: control._subjects.array,\n    });\n    const updateValues = React.useCallback((updatedFieldArrayValues) => {\n        _actioned.current = true;\n        control._updateFieldArray(name, updatedFieldArrayValues);\n    }, [control, name]);\n    const append = (value, options) => {\n        const appendValue = convertToArrayPayload(cloneObject(value));\n        const updatedFieldArrayValues = appendAt(control._getFieldArray(name), appendValue);\n        control._names.focus = getFocusFieldName(name, updatedFieldArrayValues.length - 1, options);\n        ids.current = appendAt(ids.current, appendValue.map(generateId));\n        updateValues(updatedFieldArrayValues);\n        setFields(updatedFieldArrayValues);\n        control._updateFieldArray(name, updatedFieldArrayValues, appendAt, {\n            argA: fillEmptyArray(value),\n        });\n    };\n    const prepend = (value, options) => {\n        const prependValue = convertToArrayPayload(cloneObject(value));\n        const updatedFieldArrayValues = prependAt(control._getFieldArray(name), prependValue);\n        control._names.focus = getFocusFieldName(name, 0, options);\n        ids.current = prependAt(ids.current, prependValue.map(generateId));\n        updateValues(updatedFieldArrayValues);\n        setFields(updatedFieldArrayValues);\n        control._updateFieldArray(name, updatedFieldArrayValues, prependAt, {\n            argA: fillEmptyArray(value),\n        });\n    };\n    const remove = (index) => {\n        const updatedFieldArrayValues = removeArrayAt(control._getFieldArray(name), index);\n        ids.current = removeArrayAt(ids.current, index);\n        updateValues(updatedFieldArrayValues);\n        setFields(updatedFieldArrayValues);\n        control._updateFieldArray(name, updatedFieldArrayValues, removeArrayAt, {\n            argA: index,\n        });\n    };\n    const insert$1 = (index, value, options) => {\n        const insertValue = convertToArrayPayload(cloneObject(value));\n        const updatedFieldArrayValues = insert(control._getFieldArray(name), index, insertValue);\n        control._names.focus = getFocusFieldName(name, index, options);\n        ids.current = insert(ids.current, index, insertValue.map(generateId));\n        updateValues(updatedFieldArrayValues);\n        setFields(updatedFieldArrayValues);\n        control._updateFieldArray(name, updatedFieldArrayValues, insert, {\n            argA: index,\n            argB: fillEmptyArray(value),\n        });\n    };\n    const swap = (indexA, indexB) => {\n        const updatedFieldArrayValues = control._getFieldArray(name);\n        swapArrayAt(updatedFieldArrayValues, indexA, indexB);\n        swapArrayAt(ids.current, indexA, indexB);\n        updateValues(updatedFieldArrayValues);\n        setFields(updatedFieldArrayValues);\n        control._updateFieldArray(name, updatedFieldArrayValues, swapArrayAt, {\n            argA: indexA,\n            argB: indexB,\n        }, false);\n    };\n    const move = (from, to) => {\n        const updatedFieldArrayValues = control._getFieldArray(name);\n        moveArrayAt(updatedFieldArrayValues, from, to);\n        moveArrayAt(ids.current, from, to);\n        updateValues(updatedFieldArrayValues);\n        setFields(updatedFieldArrayValues);\n        control._updateFieldArray(name, updatedFieldArrayValues, moveArrayAt, {\n            argA: from,\n            argB: to,\n        }, false);\n    };\n    const update = (index, value) => {\n        const updateValue = cloneObject(value);\n        const updatedFieldArrayValues = updateAt(control._getFieldArray(name), index, updateValue);\n        ids.current = [...updatedFieldArrayValues].map((item, i) => !item || i === index ? generateId() : ids.current[i]);\n        updateValues(updatedFieldArrayValues);\n        setFields([...updatedFieldArrayValues]);\n        control._updateFieldArray(name, updatedFieldArrayValues, updateAt, {\n            argA: index,\n            argB: updateValue,\n        }, true, false);\n    };\n    const replace = (value) => {\n        const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));\n        ids.current = updatedFieldArrayValues.map(generateId);\n        updateValues([...updatedFieldArrayValues]);\n        setFields([...updatedFieldArrayValues]);\n        control._updateFieldArray(name, [...updatedFieldArrayValues], (data) => data, {}, true, false);\n    };\n    React.useEffect(() => {\n        control._state.action = false;\n        isWatched(name, control._names) &&\n            control._subjects.state.next({\n                ...control._formState,\n            });\n        if (_actioned.current &&\n            (!getValidationModes(control._options.mode).isOnSubmit ||\n                control._formState.isSubmitted)) {\n            if (control._options.resolver) {\n                control._executeSchema([name]).then((result) => {\n                    const error = get(result.errors, name);\n                    const existingError = get(control._formState.errors, name);\n                    if (existingError\n                        ? (!error && existingError.type) ||\n                            (error &&\n                                (existingError.type !== error.type ||\n                                    existingError.message !== error.message))\n                        : error && error.type) {\n                        error\n                            ? set(control._formState.errors, name, error)\n                            : unset(control._formState.errors, name);\n                        control._subjects.state.next({\n                            errors: control._formState.errors,\n                        });\n                    }\n                });\n            }\n            else {\n                const field = get(control._fields, name);\n                if (field &&\n                    field._f &&\n                    !(getValidationModes(control._options.reValidateMode).isOnSubmit &&\n                        getValidationModes(control._options.mode).isOnSubmit)) {\n                    validateField(field, control._formValues, control._options.criteriaMode === VALIDATION_MODE.all, control._options.shouldUseNativeValidation, true).then((error) => !isEmptyObject(error) &&\n                        control._subjects.state.next({\n                            errors: updateFieldArrayRootError(control._formState.errors, error, name),\n                        }));\n                }\n            }\n        }\n        control._subjects.values.next({\n            name,\n            values: { ...control._formValues },\n        });\n        control._names.focus &&\n            iterateFieldsByAction(control._fields, (ref, key) => {\n                if (control._names.focus &&\n                    key.startsWith(control._names.focus) &&\n                    ref.focus) {\n                    ref.focus();\n                    return 1;\n                }\n                return;\n            });\n        control._names.focus = '';\n        control._updateValid();\n        _actioned.current = false;\n    }, [fields, name, control]);\n    React.useEffect(() => {\n        !get(control._formValues, name) && control._updateFieldArray(name);\n        return () => {\n            (control._options.shouldUnregister || shouldUnregister) &&\n                control.unregister(name);\n        };\n    }, [name, control, keyName, shouldUnregister]);\n    return {\n        swap: React.useCallback(swap, [updateValues, name, control]),\n        move: React.useCallback(move, [updateValues, name, control]),\n        prepend: React.useCallback(prepend, [updateValues, name, control]),\n        append: React.useCallback(append, [updateValues, name, control]),\n        remove: React.useCallback(remove, [updateValues, name, control]),\n        insert: React.useCallback(insert$1, [updateValues, name, control]),\n        update: React.useCallback(update, [updateValues, name, control]),\n        replace: React.useCallback(replace, [updateValues, name, control]),\n        fields: React.useMemo(() => fields.map((field, index) => ({\n            ...field,\n            [keyName]: ids.current[index] || generateId(),\n        })), [fields, keyName]),\n    };\n}\n\nvar createSubject = () => {\n    let _observers = [];\n    const next = (value) => {\n        for (const observer of _observers) {\n            observer.next && observer.next(value);\n        }\n    };\n    const subscribe = (observer) => {\n        _observers.push(observer);\n        return {\n            unsubscribe: () => {\n                _observers = _observers.filter((o) => o !== observer);\n            },\n        };\n    };\n    const unsubscribe = () => {\n        _observers = [];\n    };\n    return {\n        get observers() {\n            return _observers;\n        },\n        next,\n        subscribe,\n        unsubscribe,\n    };\n};\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nfunction deepEqual(object1, object2) {\n    if (isPrimitive(object1) || isPrimitive(object2)) {\n        return object1 === object2;\n    }\n    if (isDateObject(object1) && isDateObject(object2)) {\n        return object1.getTime() === object2.getTime();\n    }\n    const keys1 = Object.keys(object1);\n    const keys2 = Object.keys(object2);\n    if (keys1.length !== keys2.length) {\n        return false;\n    }\n    for (const key of keys1) {\n        const val1 = object1[key];\n        if (!keys2.includes(key)) {\n            return false;\n        }\n        if (key !== 'ref') {\n            const val2 = object2[key];\n            if ((isDateObject(val1) && isDateObject(val2)) ||\n                (isObject(val1) && isObject(val2)) ||\n                (Array.isArray(val1) && Array.isArray(val2))\n                ? !deepEqual(val1, val2)\n                : val1 !== val2) {\n                return false;\n            }\n        }\n    }\n    return true;\n}\n\nvar isMultipleSelect = (element) => element.type === `select-multiple`;\n\nvar isRadioOrCheckbox = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nvar live = (ref) => isHTMLElement(ref) && ref.isConnected;\n\nvar objectHasFunction = (data) => {\n    for (const key in data) {\n        if (isFunction(data[key])) {\n            return true;\n        }\n    }\n    return false;\n};\n\nfunction markFieldsDirty(data, fields = {}) {\n    const isParentNodeArray = Array.isArray(data);\n    if (isObject(data) || isParentNodeArray) {\n        for (const key in data) {\n            if (Array.isArray(data[key]) ||\n                (isObject(data[key]) && !objectHasFunction(data[key]))) {\n                fields[key] = Array.isArray(data[key]) ? [] : {};\n                markFieldsDirty(data[key], fields[key]);\n            }\n            else if (!isNullOrUndefined(data[key])) {\n                fields[key] = true;\n            }\n        }\n    }\n    return fields;\n}\nfunction getDirtyFieldsFromDefaultValues(data, formValues, dirtyFieldsFromValues) {\n    const isParentNodeArray = Array.isArray(data);\n    if (isObject(data) || isParentNodeArray) {\n        for (const key in data) {\n            if (Array.isArray(data[key]) ||\n                (isObject(data[key]) && !objectHasFunction(data[key]))) {\n                if (isUndefined(formValues) ||\n                    isPrimitive(dirtyFieldsFromValues[key])) {\n                    dirtyFieldsFromValues[key] = Array.isArray(data[key])\n                        ? markFieldsDirty(data[key], [])\n                        : { ...markFieldsDirty(data[key]) };\n                }\n                else {\n                    getDirtyFieldsFromDefaultValues(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);\n                }\n            }\n            else {\n                dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\n            }\n        }\n    }\n    return dirtyFieldsFromValues;\n}\nvar getDirtyFields = (defaultValues, formValues) => getDirtyFieldsFromDefaultValues(defaultValues, formValues, markFieldsDirty(formValues));\n\nvar getFieldValueAs = (value, { valueAsNumber, valueAsDate, setValueAs }) => isUndefined(value)\n    ? value\n    : valueAsNumber\n        ? value === ''\n            ? NaN\n            : value\n                ? +value\n                : value\n        : valueAsDate && isString(value)\n            ? new Date(value)\n            : setValueAs\n                ? setValueAs(value)\n                : value;\n\nfunction getFieldValue(_f) {\n    const ref = _f.ref;\n    if (_f.refs ? _f.refs.every((ref) => ref.disabled) : ref.disabled) {\n        return;\n    }\n    if (isFileInput(ref)) {\n        return ref.files;\n    }\n    if (isRadioInput(ref)) {\n        return getRadioValue(_f.refs).value;\n    }\n    if (isMultipleSelect(ref)) {\n        return [...ref.selectedOptions].map(({ value }) => value);\n    }\n    if (isCheckBoxInput(ref)) {\n        return getCheckboxValue(_f.refs).value;\n    }\n    return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n\nvar getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {\n    const fields = {};\n    for (const name of fieldsNames) {\n        const field = get(_fields, name);\n        field && set(fields, name, field._f);\n    }\n    return {\n        criteriaMode,\n        names: [...fieldsNames],\n        fields,\n        shouldUseNativeValidation,\n    };\n};\n\nvar getRuleValue = (rule) => isUndefined(rule)\n    ? rule\n    : isRegex(rule)\n        ? rule.source\n        : isObject(rule)\n            ? isRegex(rule.value)\n                ? rule.value.source\n                : rule.value\n            : rule;\n\nconst ASYNC_FUNCTION = 'AsyncFunction';\nvar hasPromiseValidation = (fieldReference) => (!fieldReference || !fieldReference.validate) &&\n    !!((isFunction(fieldReference.validate) &&\n        fieldReference.validate.constructor.name === ASYNC_FUNCTION) ||\n        (isObject(fieldReference.validate) &&\n            Object.values(fieldReference.validate).find((validateFunction) => validateFunction.constructor.name === ASYNC_FUNCTION)));\n\nvar hasValidation = (options) => options.mount &&\n    (options.required ||\n        options.min ||\n        options.max ||\n        options.maxLength ||\n        options.minLength ||\n        options.pattern ||\n        options.validate);\n\nfunction schemaErrorLookup(errors, _fields, name) {\n    const error = get(errors, name);\n    if (error || isKey(name)) {\n        return {\n            error,\n            name,\n        };\n    }\n    const names = name.split('.');\n    while (names.length) {\n        const fieldName = names.join('.');\n        const field = get(_fields, fieldName);\n        const foundError = get(errors, fieldName);\n        if (field && !Array.isArray(field) && name !== fieldName) {\n            return { name };\n        }\n        if (foundError && foundError.type) {\n            return {\n                name: fieldName,\n                error: foundError,\n            };\n        }\n        names.pop();\n    }\n    return {\n        name,\n    };\n}\n\nvar skipValidation = (isBlurEvent, isTouched, isSubmitted, reValidateMode, mode) => {\n    if (mode.isOnAll) {\n        return false;\n    }\n    else if (!isSubmitted && mode.isOnTouch) {\n        return !(isTouched || isBlurEvent);\n    }\n    else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n        return !isBlurEvent;\n    }\n    else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n        return isBlurEvent;\n    }\n    return true;\n};\n\nvar unsetEmptyArray = (ref, name) => !compact(get(ref, name)).length && unset(ref, name);\n\nconst defaultOptions = {\n    mode: VALIDATION_MODE.onSubmit,\n    reValidateMode: VALIDATION_MODE.onChange,\n    shouldFocusError: true,\n};\nfunction createFormControl(props = {}) {\n    let _options = {\n        ...defaultOptions,\n        ...props,\n    };\n    let _formState = {\n        submitCount: 0,\n        isDirty: false,\n        isLoading: isFunction(_options.defaultValues),\n        isValidating: false,\n        isSubmitted: false,\n        isSubmitting: false,\n        isSubmitSuccessful: false,\n        isValid: false,\n        touchedFields: {},\n        dirtyFields: {},\n        validatingFields: {},\n        errors: _options.errors || {},\n        disabled: _options.disabled || false,\n    };\n    let _fields = {};\n    let _defaultValues = isObject(_options.defaultValues) || isObject(_options.values)\n        ? cloneObject(_options.defaultValues || _options.values) || {}\n        : {};\n    let _formValues = _options.shouldUnregister\n        ? {}\n        : cloneObject(_defaultValues);\n    let _state = {\n        action: false,\n        mount: false,\n        watch: false,\n    };\n    let _names = {\n        mount: new Set(),\n        unMount: new Set(),\n        array: new Set(),\n        watch: new Set(),\n    };\n    let delayErrorCallback;\n    let timer = 0;\n    const _proxyFormState = {\n        isDirty: false,\n        dirtyFields: false,\n        validatingFields: false,\n        touchedFields: false,\n        isValidating: false,\n        isValid: false,\n        errors: false,\n    };\n    const _subjects = {\n        values: createSubject(),\n        array: createSubject(),\n        state: createSubject(),\n    };\n    const validationModeBeforeSubmit = getValidationModes(_options.mode);\n    const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n    const shouldDisplayAllAssociatedErrors = _options.criteriaMode === VALIDATION_MODE.all;\n    const debounce = (callback) => (wait) => {\n        clearTimeout(timer);\n        timer = setTimeout(callback, wait);\n    };\n    const _updateValid = async (shouldUpdateValid) => {\n        if (_proxyFormState.isValid || shouldUpdateValid) {\n            const isValid = _options.resolver\n                ? isEmptyObject((await _executeSchema()).errors)\n                : await executeBuiltInValidation(_fields, true);\n            if (isValid !== _formState.isValid) {\n                _subjects.state.next({\n                    isValid,\n                });\n            }\n        }\n    };\n    const _updateIsValidating = (names, isValidating) => {\n        if (_proxyFormState.isValidating || _proxyFormState.validatingFields) {\n            (names || Array.from(_names.mount)).forEach((name) => {\n                if (name) {\n                    isValidating\n                        ? set(_formState.validatingFields, name, isValidating)\n                        : unset(_formState.validatingFields, name);\n                }\n            });\n            _subjects.state.next({\n                validatingFields: _formState.validatingFields,\n                isValidating: !isEmptyObject(_formState.validatingFields),\n            });\n        }\n    };\n    const _updateFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = true) => {\n        if (args && method) {\n            _state.action = true;\n            if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n                const fieldValues = method(get(_fields, name), args.argA, args.argB);\n                shouldSetValues && set(_fields, name, fieldValues);\n            }\n            if (shouldUpdateFieldsAndState &&\n                Array.isArray(get(_formState.errors, name))) {\n                const errors = method(get(_formState.errors, name), args.argA, args.argB);\n                shouldSetValues && set(_formState.errors, name, errors);\n                unsetEmptyArray(_formState.errors, name);\n            }\n            if (_proxyFormState.touchedFields &&\n                shouldUpdateFieldsAndState &&\n                Array.isArray(get(_formState.touchedFields, name))) {\n                const touchedFields = method(get(_formState.touchedFields, name), args.argA, args.argB);\n                shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n            }\n            if (_proxyFormState.dirtyFields) {\n                _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n            }\n            _subjects.state.next({\n                name,\n                isDirty: _getDirty(name, values),\n                dirtyFields: _formState.dirtyFields,\n                errors: _formState.errors,\n                isValid: _formState.isValid,\n            });\n        }\n        else {\n            set(_formValues, name, values);\n        }\n    };\n    const updateErrors = (name, error) => {\n        set(_formState.errors, name, error);\n        _subjects.state.next({\n            errors: _formState.errors,\n        });\n    };\n    const _setErrors = (errors) => {\n        _formState.errors = errors;\n        _subjects.state.next({\n            errors: _formState.errors,\n            isValid: false,\n        });\n    };\n    const updateValidAndValue = (name, shouldSkipSetValueAs, value, ref) => {\n        const field = get(_fields, name);\n        if (field) {\n            const defaultValue = get(_formValues, name, isUndefined(value) ? get(_defaultValues, name) : value);\n            isUndefined(defaultValue) ||\n                (ref && ref.defaultChecked) ||\n                shouldSkipSetValueAs\n                ? set(_formValues, name, shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f))\n                : setFieldValue(name, defaultValue);\n            _state.mount && _updateValid();\n        }\n    };\n    const updateTouchAndDirty = (name, fieldValue, isBlurEvent, shouldDirty, shouldRender) => {\n        let shouldUpdateField = false;\n        let isPreviousDirty = false;\n        const output = {\n            name,\n        };\n        const disabledField = !!(get(_fields, name) &&\n            get(_fields, name)._f &&\n            get(_fields, name)._f.disabled);\n        if (!isBlurEvent || shouldDirty) {\n            if (_proxyFormState.isDirty) {\n                isPreviousDirty = _formState.isDirty;\n                _formState.isDirty = output.isDirty = _getDirty();\n                shouldUpdateField = isPreviousDirty !== output.isDirty;\n            }\n            const isCurrentFieldPristine = disabledField || deepEqual(get(_defaultValues, name), fieldValue);\n            isPreviousDirty = !!(!disabledField && get(_formState.dirtyFields, name));\n            isCurrentFieldPristine || disabledField\n                ? unset(_formState.dirtyFields, name)\n                : set(_formState.dirtyFields, name, true);\n            output.dirtyFields = _formState.dirtyFields;\n            shouldUpdateField =\n                shouldUpdateField ||\n                    (_proxyFormState.dirtyFields &&\n                        isPreviousDirty !== !isCurrentFieldPristine);\n        }\n        if (isBlurEvent) {\n            const isPreviousFieldTouched = get(_formState.touchedFields, name);\n            if (!isPreviousFieldTouched) {\n                set(_formState.touchedFields, name, isBlurEvent);\n                output.touchedFields = _formState.touchedFields;\n                shouldUpdateField =\n                    shouldUpdateField ||\n                        (_proxyFormState.touchedFields &&\n                            isPreviousFieldTouched !== isBlurEvent);\n            }\n        }\n        shouldUpdateField && shouldRender && _subjects.state.next(output);\n        return shouldUpdateField ? output : {};\n    };\n    const shouldRenderByError = (name, isValid, error, fieldState) => {\n        const previousFieldError = get(_formState.errors, name);\n        const shouldUpdateValid = _proxyFormState.isValid &&\n            isBoolean(isValid) &&\n            _formState.isValid !== isValid;\n        if (props.delayError && error) {\n            delayErrorCallback = debounce(() => updateErrors(name, error));\n            delayErrorCallback(props.delayError);\n        }\n        else {\n            clearTimeout(timer);\n            delayErrorCallback = null;\n            error\n                ? set(_formState.errors, name, error)\n                : unset(_formState.errors, name);\n        }\n        if ((error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n            !isEmptyObject(fieldState) ||\n            shouldUpdateValid) {\n            const updatedFormState = {\n                ...fieldState,\n                ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n                errors: _formState.errors,\n                name,\n            };\n            _formState = {\n                ..._formState,\n                ...updatedFormState,\n            };\n            _subjects.state.next(updatedFormState);\n        }\n    };\n    const _executeSchema = async (name) => {\n        _updateIsValidating(name, true);\n        const result = await _options.resolver(_formValues, _options.context, getResolverOptions(name || _names.mount, _fields, _options.criteriaMode, _options.shouldUseNativeValidation));\n        _updateIsValidating(name);\n        return result;\n    };\n    const executeSchemaAndUpdateState = async (names) => {\n        const { errors } = await _executeSchema(names);\n        if (names) {\n            for (const name of names) {\n                const error = get(errors, name);\n                error\n                    ? set(_formState.errors, name, error)\n                    : unset(_formState.errors, name);\n            }\n        }\n        else {\n            _formState.errors = errors;\n        }\n        return errors;\n    };\n    const executeBuiltInValidation = async (fields, shouldOnlyCheckValid, context = {\n        valid: true,\n    }) => {\n        for (const name in fields) {\n            const field = fields[name];\n            if (field) {\n                const { _f, ...fieldValue } = field;\n                if (_f) {\n                    const isFieldArrayRoot = _names.array.has(_f.name);\n                    const isPromiseFunction = field._f && hasPromiseValidation(field._f);\n                    if (isPromiseFunction && _proxyFormState.validatingFields) {\n                        _updateIsValidating([name], true);\n                    }\n                    const fieldError = await validateField(field, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation && !shouldOnlyCheckValid, isFieldArrayRoot);\n                    if (isPromiseFunction && _proxyFormState.validatingFields) {\n                        _updateIsValidating([name]);\n                    }\n                    if (fieldError[_f.name]) {\n                        context.valid = false;\n                        if (shouldOnlyCheckValid) {\n                            break;\n                        }\n                    }\n                    !shouldOnlyCheckValid &&\n                        (get(fieldError, _f.name)\n                            ? isFieldArrayRoot\n                                ? updateFieldArrayRootError(_formState.errors, fieldError, _f.name)\n                                : set(_formState.errors, _f.name, fieldError[_f.name])\n                            : unset(_formState.errors, _f.name));\n                }\n                !isEmptyObject(fieldValue) &&\n                    (await executeBuiltInValidation(fieldValue, shouldOnlyCheckValid, context));\n            }\n        }\n        return context.valid;\n    };\n    const _removeUnmounted = () => {\n        for (const name of _names.unMount) {\n            const field = get(_fields, name);\n            field &&\n                (field._f.refs\n                    ? field._f.refs.every((ref) => !live(ref))\n                    : !live(field._f.ref)) &&\n                unregister(name);\n        }\n        _names.unMount = new Set();\n    };\n    const _getDirty = (name, data) => (name && data && set(_formValues, name, data),\n        !deepEqual(getValues(), _defaultValues));\n    const _getWatch = (names, defaultValue, isGlobal) => generateWatchOutput(names, _names, {\n        ...(_state.mount\n            ? _formValues\n            : isUndefined(defaultValue)\n                ? _defaultValues\n                : isString(names)\n                    ? { [names]: defaultValue }\n                    : defaultValue),\n    }, isGlobal, defaultValue);\n    const _getFieldArray = (name) => compact(get(_state.mount ? _formValues : _defaultValues, name, props.shouldUnregister ? get(_defaultValues, name, []) : []));\n    const setFieldValue = (name, value, options = {}) => {\n        const field = get(_fields, name);\n        let fieldValue = value;\n        if (field) {\n            const fieldReference = field._f;\n            if (fieldReference) {\n                !fieldReference.disabled &&\n                    set(_formValues, name, getFieldValueAs(value, fieldReference));\n                fieldValue =\n                    isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n                        ? ''\n                        : value;\n                if (isMultipleSelect(fieldReference.ref)) {\n                    [...fieldReference.ref.options].forEach((optionRef) => (optionRef.selected = fieldValue.includes(optionRef.value)));\n                }\n                else if (fieldReference.refs) {\n                    if (isCheckBoxInput(fieldReference.ref)) {\n                        fieldReference.refs.length > 1\n                            ? fieldReference.refs.forEach((checkboxRef) => (!checkboxRef.defaultChecked || !checkboxRef.disabled) &&\n                                (checkboxRef.checked = Array.isArray(fieldValue)\n                                    ? !!fieldValue.find((data) => data === checkboxRef.value)\n                                    : fieldValue === checkboxRef.value))\n                            : fieldReference.refs[0] &&\n                                (fieldReference.refs[0].checked = !!fieldValue);\n                    }\n                    else {\n                        fieldReference.refs.forEach((radioRef) => (radioRef.checked = radioRef.value === fieldValue));\n                    }\n                }\n                else if (isFileInput(fieldReference.ref)) {\n                    fieldReference.ref.value = '';\n                }\n                else {\n                    fieldReference.ref.value = fieldValue;\n                    if (!fieldReference.ref.type) {\n                        _subjects.values.next({\n                            name,\n                            values: { ..._formValues },\n                        });\n                    }\n                }\n            }\n        }\n        (options.shouldDirty || options.shouldTouch) &&\n            updateTouchAndDirty(name, fieldValue, options.shouldTouch, options.shouldDirty, true);\n        options.shouldValidate && trigger(name);\n    };\n    const setValues = (name, value, options) => {\n        for (const fieldKey in value) {\n            const fieldValue = value[fieldKey];\n            const fieldName = `${name}.${fieldKey}`;\n            const field = get(_fields, fieldName);\n            (_names.array.has(name) ||\n                !isPrimitive(fieldValue) ||\n                (field && !field._f)) &&\n                !isDateObject(fieldValue)\n                ? setValues(fieldName, fieldValue, options)\n                : setFieldValue(fieldName, fieldValue, options);\n        }\n    };\n    const setValue = (name, value, options = {}) => {\n        const field = get(_fields, name);\n        const isFieldArray = _names.array.has(name);\n        const cloneValue = cloneObject(value);\n        set(_formValues, name, cloneValue);\n        if (isFieldArray) {\n            _subjects.array.next({\n                name,\n                values: { ..._formValues },\n            });\n            if ((_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\n                options.shouldDirty) {\n                _subjects.state.next({\n                    name,\n                    dirtyFields: getDirtyFields(_defaultValues, _formValues),\n                    isDirty: _getDirty(name, cloneValue),\n                });\n            }\n        }\n        else {\n            field && !field._f && !isNullOrUndefined(cloneValue)\n                ? setValues(name, cloneValue, options)\n                : setFieldValue(name, cloneValue, options);\n        }\n        isWatched(name, _names) && _subjects.state.next({ ..._formState });\n        _subjects.values.next({\n            name: _state.mount ? name : undefined,\n            values: { ..._formValues },\n        });\n    };\n    const onChange = async (event) => {\n        _state.mount = true;\n        const target = event.target;\n        let name = target.name;\n        let isFieldValueUpdated = true;\n        const field = get(_fields, name);\n        const getCurrentFieldValue = () => target.type ? getFieldValue(field._f) : getEventValue(event);\n        const _updateIsFieldValueUpdated = (fieldValue) => {\n            isFieldValueUpdated =\n                Number.isNaN(fieldValue) ||\n                    deepEqual(fieldValue, get(_formValues, name, fieldValue));\n        };\n        if (field) {\n            let error;\n            let isValid;\n            const fieldValue = getCurrentFieldValue();\n            const isBlurEvent = event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n            const shouldSkipValidation = (!hasValidation(field._f) &&\n                !_options.resolver &&\n                !get(_formState.errors, name) &&\n                !field._f.deps) ||\n                skipValidation(isBlurEvent, get(_formState.touchedFields, name), _formState.isSubmitted, validationModeAfterSubmit, validationModeBeforeSubmit);\n            const watched = isWatched(name, _names, isBlurEvent);\n            set(_formValues, name, fieldValue);\n            if (isBlurEvent) {\n                field._f.onBlur && field._f.onBlur(event);\n                delayErrorCallback && delayErrorCallback(0);\n            }\n            else if (field._f.onChange) {\n                field._f.onChange(event);\n            }\n            const fieldState = updateTouchAndDirty(name, fieldValue, isBlurEvent, false);\n            const shouldRender = !isEmptyObject(fieldState) || watched;\n            !isBlurEvent &&\n                _subjects.values.next({\n                    name,\n                    type: event.type,\n                    values: { ..._formValues },\n                });\n            if (shouldSkipValidation) {\n                if (_proxyFormState.isValid) {\n                    if (props.mode === 'onBlur') {\n                        if (isBlurEvent) {\n                            _updateValid();\n                        }\n                    }\n                    else {\n                        _updateValid();\n                    }\n                }\n                return (shouldRender &&\n                    _subjects.state.next({ name, ...(watched ? {} : fieldState) }));\n            }\n            !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n            if (_options.resolver) {\n                const { errors } = await _executeSchema([name]);\n                _updateIsFieldValueUpdated(fieldValue);\n                if (isFieldValueUpdated) {\n                    const previousErrorLookupResult = schemaErrorLookup(_formState.errors, _fields, name);\n                    const errorLookupResult = schemaErrorLookup(errors, _fields, previousErrorLookupResult.name || name);\n                    error = errorLookupResult.error;\n                    name = errorLookupResult.name;\n                    isValid = isEmptyObject(errors);\n                }\n            }\n            else {\n                _updateIsValidating([name], true);\n                error = (await validateField(field, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation))[name];\n                _updateIsValidating([name]);\n                _updateIsFieldValueUpdated(fieldValue);\n                if (isFieldValueUpdated) {\n                    if (error) {\n                        isValid = false;\n                    }\n                    else if (_proxyFormState.isValid) {\n                        isValid = await executeBuiltInValidation(_fields, true);\n                    }\n                }\n            }\n            if (isFieldValueUpdated) {\n                field._f.deps &&\n                    trigger(field._f.deps);\n                shouldRenderByError(name, isValid, error, fieldState);\n            }\n        }\n    };\n    const _focusInput = (ref, key) => {\n        if (get(_formState.errors, key) && ref.focus) {\n            ref.focus();\n            return 1;\n        }\n        return;\n    };\n    const trigger = async (name, options = {}) => {\n        let isValid;\n        let validationResult;\n        const fieldNames = convertToArrayPayload(name);\n        if (_options.resolver) {\n            const errors = await executeSchemaAndUpdateState(isUndefined(name) ? name : fieldNames);\n            isValid = isEmptyObject(errors);\n            validationResult = name\n                ? !fieldNames.some((name) => get(errors, name))\n                : isValid;\n        }\n        else if (name) {\n            validationResult = (await Promise.all(fieldNames.map(async (fieldName) => {\n                const field = get(_fields, fieldName);\n                return await executeBuiltInValidation(field && field._f ? { [fieldName]: field } : field);\n            }))).every(Boolean);\n            !(!validationResult && !_formState.isValid) && _updateValid();\n        }\n        else {\n            validationResult = isValid = await executeBuiltInValidation(_fields);\n        }\n        _subjects.state.next({\n            ...(!isString(name) ||\n                (_proxyFormState.isValid && isValid !== _formState.isValid)\n                ? {}\n                : { name }),\n            ...(_options.resolver || !name ? { isValid } : {}),\n            errors: _formState.errors,\n        });\n        options.shouldFocus &&\n            !validationResult &&\n            iterateFieldsByAction(_fields, _focusInput, name ? fieldNames : _names.mount);\n        return validationResult;\n    };\n    const getValues = (fieldNames) => {\n        const values = {\n            ...(_state.mount ? _formValues : _defaultValues),\n        };\n        return isUndefined(fieldNames)\n            ? values\n            : isString(fieldNames)\n                ? get(values, fieldNames)\n                : fieldNames.map((name) => get(values, name));\n    };\n    const getFieldState = (name, formState) => ({\n        invalid: !!get((formState || _formState).errors, name),\n        isDirty: !!get((formState || _formState).dirtyFields, name),\n        error: get((formState || _formState).errors, name),\n        isValidating: !!get(_formState.validatingFields, name),\n        isTouched: !!get((formState || _formState).touchedFields, name),\n    });\n    const clearErrors = (name) => {\n        name &&\n            convertToArrayPayload(name).forEach((inputName) => unset(_formState.errors, inputName));\n        _subjects.state.next({\n            errors: name ? _formState.errors : {},\n        });\n    };\n    const setError = (name, error, options) => {\n        const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n        const currentError = get(_formState.errors, name) || {};\n        // Don't override existing error messages elsewhere in the object tree.\n        const { ref: currentRef, message, type, ...restOfErrorTree } = currentError;\n        set(_formState.errors, name, {\n            ...restOfErrorTree,\n            ...error,\n            ref,\n        });\n        _subjects.state.next({\n            name,\n            errors: _formState.errors,\n            isValid: false,\n        });\n        options && options.shouldFocus && ref && ref.focus && ref.focus();\n    };\n    const watch = (name, defaultValue) => isFunction(name)\n        ? _subjects.values.subscribe({\n            next: (payload) => name(_getWatch(undefined, defaultValue), payload),\n        })\n        : _getWatch(name, defaultValue, true);\n    const unregister = (name, options = {}) => {\n        for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n            _names.mount.delete(fieldName);\n            _names.array.delete(fieldName);\n            if (!options.keepValue) {\n                unset(_fields, fieldName);\n                unset(_formValues, fieldName);\n            }\n            !options.keepError && unset(_formState.errors, fieldName);\n            !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n            !options.keepTouched && unset(_formState.touchedFields, fieldName);\n            !options.keepIsValidating &&\n                unset(_formState.validatingFields, fieldName);\n            !_options.shouldUnregister &&\n                !options.keepDefaultValue &&\n                unset(_defaultValues, fieldName);\n        }\n        _subjects.values.next({\n            values: { ..._formValues },\n        });\n        _subjects.state.next({\n            ..._formState,\n            ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n        });\n        !options.keepIsValid && _updateValid();\n    };\n    const _updateDisabledField = ({ disabled, name, field, fields, value, }) => {\n        if ((isBoolean(disabled) && _state.mount) || !!disabled) {\n            const inputValue = disabled\n                ? undefined\n                : isUndefined(value)\n                    ? getFieldValue(field ? field._f : get(fields, name)._f)\n                    : value;\n            set(_formValues, name, inputValue);\n            updateTouchAndDirty(name, inputValue, false, false, true);\n        }\n    };\n    const register = (name, options = {}) => {\n        let field = get(_fields, name);\n        const disabledIsDefined = isBoolean(options.disabled) || isBoolean(props.disabled);\n        set(_fields, name, {\n            ...(field || {}),\n            _f: {\n                ...(field && field._f ? field._f : { ref: { name } }),\n                name,\n                mount: true,\n                ...options,\n            },\n        });\n        _names.mount.add(name);\n        if (field) {\n            _updateDisabledField({\n                field,\n                disabled: isBoolean(options.disabled)\n                    ? options.disabled\n                    : props.disabled,\n                name,\n                value: options.value,\n            });\n        }\n        else {\n            updateValidAndValue(name, true, options.value);\n        }\n        return {\n            ...(disabledIsDefined\n                ? { disabled: options.disabled || props.disabled }\n                : {}),\n            ...(_options.progressive\n                ? {\n                    required: !!options.required,\n                    min: getRuleValue(options.min),\n                    max: getRuleValue(options.max),\n                    minLength: getRuleValue(options.minLength),\n                    maxLength: getRuleValue(options.maxLength),\n                    pattern: getRuleValue(options.pattern),\n                }\n                : {}),\n            name,\n            onChange,\n            onBlur: onChange,\n            ref: (ref) => {\n                if (ref) {\n                    register(name, options);\n                    field = get(_fields, name);\n                    const fieldRef = isUndefined(ref.value)\n                        ? ref.querySelectorAll\n                            ? ref.querySelectorAll('input,select,textarea')[0] || ref\n                            : ref\n                        : ref;\n                    const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n                    const refs = field._f.refs || [];\n                    if (radioOrCheckbox\n                        ? refs.find((option) => option === fieldRef)\n                        : fieldRef === field._f.ref) {\n                        return;\n                    }\n                    set(_fields, name, {\n                        _f: {\n                            ...field._f,\n                            ...(radioOrCheckbox\n                                ? {\n                                    refs: [\n                                        ...refs.filter(live),\n                                        fieldRef,\n                                        ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n                                    ],\n                                    ref: { type: fieldRef.type, name },\n                                }\n                                : { ref: fieldRef }),\n                        },\n                    });\n                    updateValidAndValue(name, false, undefined, fieldRef);\n                }\n                else {\n                    field = get(_fields, name, {});\n                    if (field._f) {\n                        field._f.mount = false;\n                    }\n                    (_options.shouldUnregister || options.shouldUnregister) &&\n                        !(isNameInFieldArray(_names.array, name) && _state.action) &&\n                        _names.unMount.add(name);\n                }\n            },\n        };\n    };\n    const _focusError = () => _options.shouldFocusError &&\n        iterateFieldsByAction(_fields, _focusInput, _names.mount);\n    const _disableForm = (disabled) => {\n        if (isBoolean(disabled)) {\n            _subjects.state.next({ disabled });\n            iterateFieldsByAction(_fields, (ref, name) => {\n                const currentField = get(_fields, name);\n                if (currentField) {\n                    ref.disabled = currentField._f.disabled || disabled;\n                    if (Array.isArray(currentField._f.refs)) {\n                        currentField._f.refs.forEach((inputRef) => {\n                            inputRef.disabled = currentField._f.disabled || disabled;\n                        });\n                    }\n                }\n            }, 0, false);\n        }\n    };\n    const handleSubmit = (onValid, onInvalid) => async (e) => {\n        let onValidError = undefined;\n        if (e) {\n            e.preventDefault && e.preventDefault();\n            e.persist && e.persist();\n        }\n        let fieldValues = cloneObject(_formValues);\n        _subjects.state.next({\n            isSubmitting: true,\n        });\n        if (_options.resolver) {\n            const { errors, values } = await _executeSchema();\n            _formState.errors = errors;\n            fieldValues = values;\n        }\n        else {\n            await executeBuiltInValidation(_fields);\n        }\n        unset(_formState.errors, 'root');\n        if (isEmptyObject(_formState.errors)) {\n            _subjects.state.next({\n                errors: {},\n            });\n            try {\n                await onValid(fieldValues, e);\n            }\n            catch (error) {\n                onValidError = error;\n            }\n        }\n        else {\n            if (onInvalid) {\n                await onInvalid({ ..._formState.errors }, e);\n            }\n            _focusError();\n            setTimeout(_focusError);\n        }\n        _subjects.state.next({\n            isSubmitted: true,\n            isSubmitting: false,\n            isSubmitSuccessful: isEmptyObject(_formState.errors) && !onValidError,\n            submitCount: _formState.submitCount + 1,\n            errors: _formState.errors,\n        });\n        if (onValidError) {\n            throw onValidError;\n        }\n    };\n    const resetField = (name, options = {}) => {\n        if (get(_fields, name)) {\n            if (isUndefined(options.defaultValue)) {\n                setValue(name, cloneObject(get(_defaultValues, name)));\n            }\n            else {\n                setValue(name, options.defaultValue);\n                set(_defaultValues, name, cloneObject(options.defaultValue));\n            }\n            if (!options.keepTouched) {\n                unset(_formState.touchedFields, name);\n            }\n            if (!options.keepDirty) {\n                unset(_formState.dirtyFields, name);\n                _formState.isDirty = options.defaultValue\n                    ? _getDirty(name, cloneObject(get(_defaultValues, name)))\n                    : _getDirty();\n            }\n            if (!options.keepError) {\n                unset(_formState.errors, name);\n                _proxyFormState.isValid && _updateValid();\n            }\n            _subjects.state.next({ ..._formState });\n        }\n    };\n    const _reset = (formValues, keepStateOptions = {}) => {\n        const updatedValues = formValues ? cloneObject(formValues) : _defaultValues;\n        const cloneUpdatedValues = cloneObject(updatedValues);\n        const isEmptyResetValues = isEmptyObject(formValues);\n        const values = isEmptyResetValues ? _defaultValues : cloneUpdatedValues;\n        if (!keepStateOptions.keepDefaultValues) {\n            _defaultValues = updatedValues;\n        }\n        if (!keepStateOptions.keepValues) {\n            if (keepStateOptions.keepDirtyValues) {\n                for (const fieldName of _names.mount) {\n                    get(_formState.dirtyFields, fieldName)\n                        ? set(values, fieldName, get(_formValues, fieldName))\n                        : setValue(fieldName, get(values, fieldName));\n                }\n            }\n            else {\n                if (isWeb && isUndefined(formValues)) {\n                    for (const name of _names.mount) {\n                        const field = get(_fields, name);\n                        if (field && field._f) {\n                            const fieldReference = Array.isArray(field._f.refs)\n                                ? field._f.refs[0]\n                                : field._f.ref;\n                            if (isHTMLElement(fieldReference)) {\n                                const form = fieldReference.closest('form');\n                                if (form) {\n                                    form.reset();\n                                    break;\n                                }\n                            }\n                        }\n                    }\n                }\n                _fields = {};\n            }\n            _formValues = props.shouldUnregister\n                ? keepStateOptions.keepDefaultValues\n                    ? cloneObject(_defaultValues)\n                    : {}\n                : cloneObject(values);\n            _subjects.array.next({\n                values: { ...values },\n            });\n            _subjects.values.next({\n                values: { ...values },\n            });\n        }\n        _names = {\n            mount: keepStateOptions.keepDirtyValues ? _names.mount : new Set(),\n            unMount: new Set(),\n            array: new Set(),\n            watch: new Set(),\n            watchAll: false,\n            focus: '',\n        };\n        _state.mount =\n            !_proxyFormState.isValid ||\n                !!keepStateOptions.keepIsValid ||\n                !!keepStateOptions.keepDirtyValues;\n        _state.watch = !!props.shouldUnregister;\n        _subjects.state.next({\n            submitCount: keepStateOptions.keepSubmitCount\n                ? _formState.submitCount\n                : 0,\n            isDirty: isEmptyResetValues\n                ? false\n                : keepStateOptions.keepDirty\n                    ? _formState.isDirty\n                    : !!(keepStateOptions.keepDefaultValues &&\n                        !deepEqual(formValues, _defaultValues)),\n            isSubmitted: keepStateOptions.keepIsSubmitted\n                ? _formState.isSubmitted\n                : false,\n            dirtyFields: isEmptyResetValues\n                ? {}\n                : keepStateOptions.keepDirtyValues\n                    ? keepStateOptions.keepDefaultValues && _formValues\n                        ? getDirtyFields(_defaultValues, _formValues)\n                        : _formState.dirtyFields\n                    : keepStateOptions.keepDefaultValues && formValues\n                        ? getDirtyFields(_defaultValues, formValues)\n                        : keepStateOptions.keepDirty\n                            ? _formState.dirtyFields\n                            : {},\n            touchedFields: keepStateOptions.keepTouched\n                ? _formState.touchedFields\n                : {},\n            errors: keepStateOptions.keepErrors ? _formState.errors : {},\n            isSubmitSuccessful: keepStateOptions.keepIsSubmitSuccessful\n                ? _formState.isSubmitSuccessful\n                : false,\n            isSubmitting: false,\n        });\n    };\n    const reset = (formValues, keepStateOptions) => _reset(isFunction(formValues)\n        ? formValues(_formValues)\n        : formValues, keepStateOptions);\n    const setFocus = (name, options = {}) => {\n        const field = get(_fields, name);\n        const fieldReference = field && field._f;\n        if (fieldReference) {\n            const fieldRef = fieldReference.refs\n                ? fieldReference.refs[0]\n                : fieldReference.ref;\n            if (fieldRef.focus) {\n                fieldRef.focus();\n                options.shouldSelect && fieldRef.select();\n            }\n        }\n    };\n    const _updateFormState = (updatedFormState) => {\n        _formState = {\n            ..._formState,\n            ...updatedFormState,\n        };\n    };\n    const _resetDefaultValues = () => isFunction(_options.defaultValues) &&\n        _options.defaultValues().then((values) => {\n            reset(values, _options.resetOptions);\n            _subjects.state.next({\n                isLoading: false,\n            });\n        });\n    return {\n        control: {\n            register,\n            unregister,\n            getFieldState,\n            handleSubmit,\n            setError,\n            _executeSchema,\n            _getWatch,\n            _getDirty,\n            _updateValid,\n            _removeUnmounted,\n            _updateFieldArray,\n            _updateDisabledField,\n            _getFieldArray,\n            _reset,\n            _resetDefaultValues,\n            _updateFormState,\n            _disableForm,\n            _subjects,\n            _proxyFormState,\n            _setErrors,\n            get _fields() {\n                return _fields;\n            },\n            get _formValues() {\n                return _formValues;\n            },\n            get _state() {\n                return _state;\n            },\n            set _state(value) {\n                _state = value;\n            },\n            get _defaultValues() {\n                return _defaultValues;\n            },\n            get _names() {\n                return _names;\n            },\n            set _names(value) {\n                _names = value;\n            },\n            get _formState() {\n                return _formState;\n            },\n            set _formState(value) {\n                _formState = value;\n            },\n            get _options() {\n                return _options;\n            },\n            set _options(value) {\n                _options = {\n                    ..._options,\n                    ...value,\n                };\n            },\n        },\n        trigger,\n        register,\n        handleSubmit,\n        watch,\n        setValue,\n        getValues,\n        reset,\n        resetField,\n        clearErrors,\n        unregister,\n        setError,\n        setFocus,\n        getFieldState,\n    };\n}\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n *   const { register, handleSubmit, watch, formState: { errors } } = useForm();\n *   const onSubmit = data => console.log(data);\n *\n *   console.log(watch(\"example\"));\n *\n *   return (\n *     <form onSubmit={handleSubmit(onSubmit)}>\n *       <input defaultValue=\"test\" {...register(\"example\")} />\n *       <input {...register(\"exampleRequired\", { required: true })} />\n *       {errors.exampleRequired && <span>This field is required</span>}\n *       <button>Submit</button>\n *     </form>\n *   );\n * }\n * ```\n */\nfunction useForm(props = {}) {\n    const _formControl = React.useRef();\n    const _values = React.useRef();\n    const [formState, updateFormState] = React.useState({\n        isDirty: false,\n        isValidating: false,\n        isLoading: isFunction(props.defaultValues),\n        isSubmitted: false,\n        isSubmitting: false,\n        isSubmitSuccessful: false,\n        isValid: false,\n        submitCount: 0,\n        dirtyFields: {},\n        touchedFields: {},\n        validatingFields: {},\n        errors: props.errors || {},\n        disabled: props.disabled || false,\n        defaultValues: isFunction(props.defaultValues)\n            ? undefined\n            : props.defaultValues,\n    });\n    if (!_formControl.current) {\n        _formControl.current = {\n            ...createFormControl(props),\n            formState,\n        };\n    }\n    const control = _formControl.current.control;\n    control._options = props;\n    useSubscribe({\n        subject: control._subjects.state,\n        next: (value) => {\n            if (shouldRenderFormState(value, control._proxyFormState, control._updateFormState, true)) {\n                updateFormState({ ...control._formState });\n            }\n        },\n    });\n    React.useEffect(() => control._disableForm(props.disabled), [control, props.disabled]);\n    React.useEffect(() => {\n        if (control._proxyFormState.isDirty) {\n            const isDirty = control._getDirty();\n            if (isDirty !== formState.isDirty) {\n                control._subjects.state.next({\n                    isDirty,\n                });\n            }\n        }\n    }, [control, formState.isDirty]);\n    React.useEffect(() => {\n        if (props.values && !deepEqual(props.values, _values.current)) {\n            control._reset(props.values, control._options.resetOptions);\n            _values.current = props.values;\n            updateFormState((state) => ({ ...state }));\n        }\n        else {\n            control._resetDefaultValues();\n        }\n    }, [props.values, control]);\n    React.useEffect(() => {\n        if (props.errors) {\n            control._setErrors(props.errors);\n        }\n    }, [props.errors, control]);\n    React.useEffect(() => {\n        if (!control._state.mount) {\n            control._updateValid();\n            control._state.mount = true;\n        }\n        if (control._state.watch) {\n            control._state.watch = false;\n            control._subjects.state.next({ ...control._formState });\n        }\n        control._removeUnmounted();\n    });\n    React.useEffect(() => {\n        props.shouldUnregister &&\n            control._subjects.values.next({\n                values: control._getWatch(),\n            });\n    }, [props.shouldUnregister, control]);\n    _formControl.current.formState = getProxyFormState(formState, control);\n    return _formControl.current;\n}\n\nexport { Controller, Form, FormProvider, appendErrors, get, set, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch };\n//# sourceMappingURL=index.esm.mjs.map\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"bundle.\" + \"paella\" + \".\" + \"9a724700f114dd0c24b7\" + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/~assets/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunktobira\"] = self[\"webpackChunktobira\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","import { Translation } from \"react-i18next\";\nimport React, { ReactNode } from \"react\";\n\nimport { APIError, NotJson, ServerError } from \".\";\nimport { Root } from \"../layout/Root\";\nimport { useRouter } from \"../router\";\nimport { Card } from \"@opencast/appkit\";\nimport { ErrorDisplay, NetworkError } from \"../util/err\";\nimport { RouterControl } from \"../rauta\";\nimport { UserProvider, Props as UserProviderProps } from \"../User\";\nimport { COLORS } from \"../color\";\n\n\ntype Props = {\n    router: RouterControl;\n    children: ReactNode;\n};\n\ntype HandledError = NetworkError | ServerError | APIError | NotJson;\n\ntype State = {\n    error?: HandledError;\n};\n\nclass GraphQLErrorBoundaryImpl extends React.Component<Props, State> {\n    private unlisten?: () => void;\n\n    public constructor(props: Props) {\n        super(props);\n        this.state = { error: undefined };\n    }\n\n    public componentDidMount() {\n        this.unlisten = this.props.router.listenAtNav(() => this.setState({ error: undefined }));\n    }\n\n    public componentWillUnmount() {\n        this.unlisten?.();\n    }\n\n    public static getDerivedStateFromError(error: unknown): State {\n        if (error instanceof NetworkError\n            || error instanceof ServerError\n            || error instanceof NotJson\n            || error instanceof APIError) {\n            return { error };\n        }\n\n        // Not our problem, but still an error, so we throw it up to the next boundary\n        throw error;\n    }\n\n    public render(): ReactNode {\n        const error = this.state.error;\n        if (!error) {\n            return this.props.children;\n        }\n\n        // Try to retrieve user data if we have any.\n        let userData: UserProviderProps[\"data\"] = \"error\";\n        if (error instanceof APIError) {\n            // Check that the returned object actually has the fields that are\n            // expected.\n            const isStringArray = (array: unknown): array is readonly string[] =>\n                Array.isArray(array) && array.every(element => typeof element === \"string\");\n\n            const user = error.response?.data?.currentUser as unknown;\n            if (typeof user === \"object\" && user\n                && \"username\" in user && typeof user.username === \"string\"\n                && \"displayName\" in user && typeof user.displayName === \"string\"\n                && \"canUpload\" in user && typeof user.canUpload === \"boolean\"\n                && \"canUseStudio\" in user && typeof user.canUseStudio === \"boolean\"\n                && \"canUseEditor\" in user && typeof user.canUseEditor === \"boolean\"\n                && \"canCreateUserRealm\" in user && typeof user.canCreateUserRealm === \"boolean\"\n                && \"canFindUnlisted\" in user && typeof user.canFindUnlisted === \"boolean\"\n                && \"roles\" in user && isStringArray(user.roles)\n                && \"userRole\" in user && typeof user.userRole === \"string\"\n            ) {\n                // `userData = user` unfortunately doesn't work here as the type\n                // of the `user` object is not sufficiently narrowed. Relevant\n                // issue: https://github.com/microsoft/TypeScript/issues/42384\n                userData = {\n                    username: user.username,\n                    displayName: user.displayName,\n                    canUpload: user.canUpload,\n                    canUseStudio: user.canUseStudio,\n                    canUseEditor: user.canUseEditor,\n                    canCreateUserRealm: user.canCreateUserRealm,\n                    canFindUnlisted: user.canFindUnlisted,\n                    roles: user.roles,\n                    userRole: user.userRole,\n                };\n            }\n        }\n\n        return (\n            <UserProvider data={userData}>\n                <Root nav={[]}>\n                    <Translation>{t => (\n                        <div css={{ margin: \"0 auto\", maxWidth: 600 }}>\n                            <div css={{ display: \"flex\", justifyContent: \"center\" }}>\n                                <Card kind=\"error\"><ErrorDisplay error={error} /></Card>\n                            </div>\n                            <details css={{\n                                border: `1px solid ${COLORS.neutral40}`,\n                                borderRadius: 4,\n                                padding: \"6px 8px\",\n                                marginTop: \"min(150px, 12vh)\",\n                                marginBottom: 16,\n                            }}>\n                                <summary css={{ cursor: \"pointer\" }}>\n                                    {t(\"errors.detailed-error-info\")}\n                                </summary>\n                                <pre css={{\n                                    backgroundColor: COLORS.neutral10,\n                                    borderRadius: 4,\n                                    padding: \"12px 16px\",\n                                    fontSize: 14,\n                                    marginTop: 10,\n                                }}>\n                                    <code css={{ whiteSpace: \"pre-wrap\" }}>\n                                        {error.toString()}\n                                    </code>\n                                </pre>\n                            </details>\n                        </div>\n                    )}</Translation>\n                </Root>\n            </UserProvider>\n        );\n    }\n}\n\n// The actual error boundary is a class component, but we want to use the router\n// control (which is only available via hook). So we have this wrapper.\nexport const GraphQLErrorBoundary: React.FC<{ children: ReactNode }> = ({ children }) => {\n    const router = useRouter();\n    return <GraphQLErrorBoundaryImpl router={router}>{children}</GraphQLErrorBoundaryImpl>;\n};\n","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n *   transition: `opacity ${duration}ms ease-in-out`,\n *   opacity: 0,\n * }\n *\n * const transitionStyles = {\n *   entering: { opacity: 1 },\n *   entered:  { opacity: 1 },\n *   exiting:  { opacity: 0 },\n *   exited:  { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n *   <Transition in={inProp} timeout={duration}>\n *     {state => (\n *       <div style={{\n *         ...defaultStyle,\n *         ...transitionStyles[state]\n *       }}>\n *         I'm a fade Transition!\n *       </div>\n *     )}\n *   </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n *  - `'entering'`\n *  - `'entered'`\n *  - `'exiting'`\n *  - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n *   const [inProp, setInProp] = useState(false);\n *   return (\n *     <div>\n *       <Transition in={inProp} timeout={500}>\n *         {state => (\n *           // ...\n *         )}\n *       </Transition>\n *       <button onClick={() => setInProp(true)}>\n *         Click to Enter\n *       </button>\n *     </div>\n *   );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n  _inheritsLoose(Transition, _React$Component);\n\n  function Transition(props, context) {\n    var _this;\n\n    _this = _React$Component.call(this, props, context) || this;\n    var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n    var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n    var initialStatus;\n    _this.appearStatus = null;\n\n    if (props.in) {\n      if (appear) {\n        initialStatus = EXITED;\n        _this.appearStatus = ENTERING;\n      } else {\n        initialStatus = ENTERED;\n      }\n    } else {\n      if (props.unmountOnExit || props.mountOnEnter) {\n        initialStatus = UNMOUNTED;\n      } else {\n        initialStatus = EXITED;\n      }\n    }\n\n    _this.state = {\n      status: initialStatus\n    };\n    _this.nextCallback = null;\n    return _this;\n  }\n\n  Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n    var nextIn = _ref.in;\n\n    if (nextIn && prevState.status === UNMOUNTED) {\n      return {\n        status: EXITED\n      };\n    }\n\n    return null;\n  } // getSnapshotBeforeUpdate(prevProps) {\n  //   let nextStatus = null\n  //   if (prevProps !== this.props) {\n  //     const { status } = this.state\n  //     if (this.props.in) {\n  //       if (status !== ENTERING && status !== ENTERED) {\n  //         nextStatus = ENTERING\n  //       }\n  //     } else {\n  //       if (status === ENTERING || status === ENTERED) {\n  //         nextStatus = EXITING\n  //       }\n  //     }\n  //   }\n  //   return { nextStatus }\n  // }\n  ;\n\n  var _proto = Transition.prototype;\n\n  _proto.componentDidMount = function componentDidMount() {\n    this.updateStatus(true, this.appearStatus);\n  };\n\n  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n    var nextStatus = null;\n\n    if (prevProps !== this.props) {\n      var status = this.state.status;\n\n      if (this.props.in) {\n        if (status !== ENTERING && status !== ENTERED) {\n          nextStatus = ENTERING;\n        }\n      } else {\n        if (status === ENTERING || status === ENTERED) {\n          nextStatus = EXITING;\n        }\n      }\n    }\n\n    this.updateStatus(false, nextStatus);\n  };\n\n  _proto.componentWillUnmount = function componentWillUnmount() {\n    this.cancelNextCallback();\n  };\n\n  _proto.getTimeouts = function getTimeouts() {\n    var timeout = this.props.timeout;\n    var exit, enter, appear;\n    exit = enter = appear = timeout;\n\n    if (timeout != null && typeof timeout !== 'number') {\n      exit = timeout.exit;\n      enter = timeout.enter; // TODO: remove fallback for next major\n\n      appear = timeout.appear !== undefined ? timeout.appear : enter;\n    }\n\n    return {\n      exit: exit,\n      enter: enter,\n      appear: appear\n    };\n  };\n\n  _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n    if (mounting === void 0) {\n      mounting = false;\n    }\n\n    if (nextStatus !== null) {\n      // nextStatus will always be ENTERING or EXITING.\n      this.cancelNextCallback();\n\n      if (nextStatus === ENTERING) {\n        if (this.props.unmountOnExit || this.props.mountOnEnter) {\n          var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n          // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n          // To make the animation happen,  we have to separate each rendering and avoid being processed as batched.\n\n          if (node) forceReflow(node);\n        }\n\n        this.performEnter(mounting);\n      } else {\n        this.performExit();\n      }\n    } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n      this.setState({\n        status: UNMOUNTED\n      });\n    }\n  };\n\n  _proto.performEnter = function performEnter(mounting) {\n    var _this2 = this;\n\n    var enter = this.props.enter;\n    var appearing = this.context ? this.context.isMounting : mounting;\n\n    var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n        maybeNode = _ref2[0],\n        maybeAppearing = _ref2[1];\n\n    var timeouts = this.getTimeouts();\n    var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n    // if we are mounting and running this it means appear _must_ be set\n\n    if (!mounting && !enter || config.disabled) {\n      this.safeSetState({\n        status: ENTERED\n      }, function () {\n        _this2.props.onEntered(maybeNode);\n      });\n      return;\n    }\n\n    this.props.onEnter(maybeNode, maybeAppearing);\n    this.safeSetState({\n      status: ENTERING\n    }, function () {\n      _this2.props.onEntering(maybeNode, maybeAppearing);\n\n      _this2.onTransitionEnd(enterTimeout, function () {\n        _this2.safeSetState({\n          status: ENTERED\n        }, function () {\n          _this2.props.onEntered(maybeNode, maybeAppearing);\n        });\n      });\n    });\n  };\n\n  _proto.performExit = function performExit() {\n    var _this3 = this;\n\n    var exit = this.props.exit;\n    var timeouts = this.getTimeouts();\n    var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n    if (!exit || config.disabled) {\n      this.safeSetState({\n        status: EXITED\n      }, function () {\n        _this3.props.onExited(maybeNode);\n      });\n      return;\n    }\n\n    this.props.onExit(maybeNode);\n    this.safeSetState({\n      status: EXITING\n    }, function () {\n      _this3.props.onExiting(maybeNode);\n\n      _this3.onTransitionEnd(timeouts.exit, function () {\n        _this3.safeSetState({\n          status: EXITED\n        }, function () {\n          _this3.props.onExited(maybeNode);\n        });\n      });\n    });\n  };\n\n  _proto.cancelNextCallback = function cancelNextCallback() {\n    if (this.nextCallback !== null) {\n      this.nextCallback.cancel();\n      this.nextCallback = null;\n    }\n  };\n\n  _proto.safeSetState = function safeSetState(nextState, callback) {\n    // This shouldn't be necessary, but there are weird race conditions with\n    // setState callbacks and unmounting in testing, so always make sure that\n    // we can cancel any pending setState callbacks after we unmount.\n    callback = this.setNextCallback(callback);\n    this.setState(nextState, callback);\n  };\n\n  _proto.setNextCallback = function setNextCallback(callback) {\n    var _this4 = this;\n\n    var active = true;\n\n    this.nextCallback = function (event) {\n      if (active) {\n        active = false;\n        _this4.nextCallback = null;\n        callback(event);\n      }\n    };\n\n    this.nextCallback.cancel = function () {\n      active = false;\n    };\n\n    return this.nextCallback;\n  };\n\n  _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n    this.setNextCallback(handler);\n    var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n    var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n    if (!node || doesNotHaveTimeoutOrListener) {\n      setTimeout(this.nextCallback, 0);\n      return;\n    }\n\n    if (this.props.addEndListener) {\n      var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n          maybeNode = _ref3[0],\n          maybeNextCallback = _ref3[1];\n\n      this.props.addEndListener(maybeNode, maybeNextCallback);\n    }\n\n    if (timeout != null) {\n      setTimeout(this.nextCallback, timeout);\n    }\n  };\n\n  _proto.render = function render() {\n    var status = this.state.status;\n\n    if (status === UNMOUNTED) {\n      return null;\n    }\n\n    var _this$props = this.props,\n        children = _this$props.children,\n        _in = _this$props.in,\n        _mountOnEnter = _this$props.mountOnEnter,\n        _unmountOnExit = _this$props.unmountOnExit,\n        _appear = _this$props.appear,\n        _enter = _this$props.enter,\n        _exit = _this$props.exit,\n        _timeout = _this$props.timeout,\n        _addEndListener = _this$props.addEndListener,\n        _onEnter = _this$props.onEnter,\n        _onEntering = _this$props.onEntering,\n        _onEntered = _this$props.onEntered,\n        _onExit = _this$props.onExit,\n        _onExiting = _this$props.onExiting,\n        _onExited = _this$props.onExited,\n        _nodeRef = _this$props.nodeRef,\n        childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n    return (\n      /*#__PURE__*/\n      // allows for nested Transitions\n      React.createElement(TransitionGroupContext.Provider, {\n        value: null\n      }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n    );\n  };\n\n  return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * A React reference to DOM element that need to transition:\n   * https://stackoverflow.com/a/51127130/4671932\n   *\n   *   - When `nodeRef` prop is used, `node` is not passed to callback functions\n   *      (e.g. `onEnter`) because user already has direct access to the node.\n   *   - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n   *     `nodeRef` need to be provided to `Transition` with changed `key` prop\n   *     (see\n   *     [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n   */\n  nodeRef: PropTypes.shape({\n    current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n      var value = propValue[key];\n      return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n    }\n  }),\n\n  /**\n   * A `function` child can be used instead of a React element. This function is\n   * called with the current transition status (`'entering'`, `'entered'`,\n   * `'exiting'`, `'exited'`), which can be used to apply context\n   * specific props to a component.\n   *\n   * ```jsx\n   * <Transition in={this.state.in} timeout={150}>\n   *   {state => (\n   *     <MyComponent className={`fade fade-${state}`} />\n   *   )}\n   * </Transition>\n   * ```\n   */\n  children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n  /**\n   * Show the component; triggers the enter or exit states\n   */\n  in: PropTypes.bool,\n\n  /**\n   * By default the child component is mounted immediately along with\n   * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n   * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n   * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n   */\n  mountOnEnter: PropTypes.bool,\n\n  /**\n   * By default the child component stays mounted after it reaches the `'exited'` state.\n   * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n   */\n  unmountOnExit: PropTypes.bool,\n\n  /**\n   * By default the child component does not perform the enter transition when\n   * it first mounts, regardless of the value of `in`. If you want this\n   * behavior, set both `appear` and `in` to `true`.\n   *\n   * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n   * > only adds an additional enter transition. However, in the\n   * > `<CSSTransition>` component that first enter transition does result in\n   * > additional `.appear-*` classes, that way you can choose to style it\n   * > differently.\n   */\n  appear: PropTypes.bool,\n\n  /**\n   * Enable or disable enter transitions.\n   */\n  enter: PropTypes.bool,\n\n  /**\n   * Enable or disable exit transitions.\n   */\n  exit: PropTypes.bool,\n\n  /**\n   * The duration of the transition, in milliseconds.\n   * Required unless `addEndListener` is provided.\n   *\n   * You may specify a single timeout for all transitions:\n   *\n   * ```jsx\n   * timeout={500}\n   * ```\n   *\n   * or individually:\n   *\n   * ```jsx\n   * timeout={{\n   *  appear: 500,\n   *  enter: 300,\n   *  exit: 500,\n   * }}\n   * ```\n   *\n   * - `appear` defaults to the value of `enter`\n   * - `enter` defaults to `0`\n   * - `exit` defaults to `0`\n   *\n   * @type {number | { enter?: number, exit?: number, appear?: number }}\n   */\n  timeout: function timeout(props) {\n    var pt = timeoutsShape;\n    if (!props.addEndListener) pt = pt.isRequired;\n\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n\n    return pt.apply(void 0, [props].concat(args));\n  },\n\n  /**\n   * Add a custom transition end trigger. Called with the transitioning\n   * DOM node and a `done` callback. Allows for more fine grained transition end\n   * logic. Timeouts are still used as a fallback if provided.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * ```jsx\n   * addEndListener={(node, done) => {\n   *   // use the css transitionend event to mark the finish of a transition\n   *   node.addEventListener('transitionend', done, false);\n   * }}\n   * ```\n   */\n  addEndListener: PropTypes.func,\n\n  /**\n   * Callback fired before the \"entering\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool) -> void\n   */\n  onEnter: PropTypes.func,\n\n  /**\n   * Callback fired after the \"entering\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool)\n   */\n  onEntering: PropTypes.func,\n\n  /**\n   * Callback fired after the \"entered\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool) -> void\n   */\n  onEntered: PropTypes.func,\n\n  /**\n   * Callback fired before the \"exiting\" status is applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExit: PropTypes.func,\n\n  /**\n   * Callback fired after the \"exiting\" status is applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExiting: PropTypes.func,\n\n  /**\n   * Callback fired after the \"exited\" status is applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n  in: false,\n  mountOnEnter: false,\n  unmountOnExit: false,\n  appear: false,\n  enter: true,\n  exit: true,\n  onEnter: noop,\n  onEntering: noop,\n  onEntered: noop,\n  onExit: noop,\n  onExiting: noop,\n  onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n  t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","export var forceReflow = function forceReflow(node) {\n  return node.scrollTop;\n};","import { useRef } from \"react\";\nimport { Transition } from \"react-transition-group\";\nimport { match } from \"@opencast/appkit\";\n\nimport { useRouter } from \"../router\";\nimport { isSearchActive } from \"../routes/Search\";\nimport { COLORS } from \"../color\";\n\n\n/** A thin colored line at the top of the page indicating a page load */\nexport const LoadingIndicator: React.FC = () => {\n    const router = useRouter();\n    const ref = useRef<HTMLDivElement>(null);\n\n    // If search is active, there is a loading indicator next to the search input.\n    if (isSearchActive()) {\n        return null;\n    }\n\n    const START_DURATION = 1200;\n    const EXIT_DURATION = 150;\n\n    // TODO: maybe disable this for `prefers-reduced-motion: reduce`\n    return <Transition nodeRef={ref} in={router.isTransitioning} timeout={EXIT_DURATION}>{state => (\n        <div ref={ref} css={{\n            position: \"fixed\",\n            zIndex: 2000,\n            left: 0,\n            top: 0,\n            height: 4,\n            backgroundColor: COLORS.primary0,\n            ...match(state, {\n                \"entering\": () => ({\n                    width: \"70%\",\n                    transition: `width ${START_DURATION}ms`,\n                }),\n                \"entered\": () => ({\n                    width: \"70%\",\n                    transition: `width ${START_DURATION}ms`,\n                }),\n                \"exiting\": () => ({\n                    width: \"100%\",\n                    opacity: 0,\n                    transition: `width ${EXIT_DURATION}ms, `\n                        + `opacity ${0.2 * EXIT_DURATION}ms ease ${0.8 * EXIT_DURATION}ms`,\n                }),\n                \"exited\": () => ({\n                    width: \"0%\",\n                    transition: \"none\",\n                }),\n                \"unmounted\": () => ({}),\n            }),\n        }} />\n    )}</Transition>;\n};\n","import { useRef } from \"react\";\nimport CONFIG from \"../config\";\nimport { currentRef, getTranslatedString, translatedConfig } from \"../util\";\nimport { Modal, ModalHandle } from \"./Modal\";\nimport { TextBlock } from \"./Blocks/Text\";\nimport { useTranslation } from \"react-i18next\";\nimport { Button, notNullish } from \"@opencast/appkit\";\n\nconst LOCAL_STORAGE_KEY = \"tobiraUserConsent\";\n\ntype Props = {\n    consentGiven: boolean | null;\n};\n\nexport const InitialConsent: React.FC<Props> = ({ consentGiven: initialConsentGiven }) => {\n    const { i18n } = useTranslation();\n    const modalRef = useRef<ModalHandle>(null);\n\n    if (initialConsentGiven !== false || !CONFIG.initialConsent) {\n        return null;\n    }\n\n    const onConsent = async () => {\n        // Figure out the language in which the main text is shown. This is what\n        // we store as \"user given consent in that language\".\n        const currentLanguage = i18n.resolvedLanguage ?? \"en\";\n        const usedLang = currentLanguage in notNullish(CONFIG.initialConsent).text\n            ? currentLanguage\n            : \"en\";\n\n        const hash = await calcHash(usedLang);\n        localStorage.setItem(LOCAL_STORAGE_KEY, `${usedLang}:${hash}`);\n        currentRef(modalRef).close?.();\n    };\n\n    return (\n        <Modal\n            open\n            ref={modalRef}\n            title={translatedConfig(CONFIG.initialConsent.title, i18n)}\n            closable={false}\n            initialFocus={false}\n        >\n            <TextBlock content={translatedConfig(CONFIG.initialConsent.text, i18n)} />\n            <div css={{ display: \"flex\" }}>\n                <Button css={{ marginTop: 20, marginLeft: \"auto\" }} onClick={onConsent}>\n                    {translatedConfig(CONFIG.initialConsent.button, i18n)}\n                </Button>\n            </div>\n        </Modal>\n    );\n};\n\nconst calcHash = async (language: string): Promise<string> => {\n    const conditions = notNullish(CONFIG.initialConsent);\n\n    const data = getTranslatedString(conditions.title, language)\n        + \"\\0\" + getTranslatedString(conditions.button, language)\n        + \"\\0\" + getTranslatedString(conditions.text, language);\n    const msg = new TextEncoder().encode(data);\n    const hashBuffer = await crypto.subtle.digest(\"SHA-256\", msg);\n    const hashArray = Array.from(new Uint8Array(hashBuffer));\n    return hashArray.map(b => b.toString(16).padStart(2, \"0\")).join(\"\");\n};\n\nexport const checkInitialConsent = async () => {\n    if (!CONFIG.initialConsent) {\n        return null;\n    }\n\n    const stored = localStorage.getItem(LOCAL_STORAGE_KEY);\n    if (!stored) {\n        return false;\n    }\n\n    const split = stored.split(\":\");\n    if (split.length !== 2) {\n        // eslint-disable-next-line no-console\n        console.warn(\"Consent in local storage in unknown format\");\n        return false;\n    }\n\n    const [storedLang, storedHash] = split;\n    const hash = await calcHash(storedLang);\n    return hash === storedHash;\n};\n","import React, { ReactNode, StrictMode } from \"react\";\nimport { RelayEnvironmentProvider } from \"react-relay/hooks\";\nimport { CacheProvider } from \"@emotion/react\";\nimport createEmotionCache from \"@emotion/cache\";\n\nimport { GlobalErrorBoundary } from \"./util/err\";\nimport { environment } from \"./relay\";\nimport { GlobalStyle } from \"./GlobalStyle\";\nimport { ActiveRoute, Router } from \"./router\";\nimport { MatchedRoute } from \"./rauta\";\nimport { MenuProvider } from \"./layout/MenuState\";\nimport { GraphQLErrorBoundary } from \"./relay/boundary\";\nimport { LoadingIndicator } from \"./ui/LoadingIndicator\";\nimport {\n    AppkitConfig,\n    AppkitConfigProvider,\n    ColorSchemeProvider,\n    DEFAULT_CONFIG,\n} from \"@opencast/appkit\";\nimport { COLORS } from \"./color\";\nimport { InitialConsent } from \"./ui/InitialConsent\";\n\n\ntype Props = {\n    initialRoute: MatchedRoute;\n    consentGiven: boolean | null;\n};\n\nexport const App: React.FC<Props> = ({ initialRoute, consentGiven }) => (\n    <StrictMode>\n        <SilenceEmotionWarnings>\n            <ColorSchemeProvider allowedSchemes={[\"light\", \"dark\"]}>\n                <AppkitConfigProvider config={APPKIT_CONFIG}>\n                    <GlobalStyle />\n                    <GlobalErrorBoundary>\n                        <RelayEnvironmentProvider {...{ environment }}>\n                            <Router initialRoute={initialRoute}>\n                                <GraphQLErrorBoundary>\n                                    <MenuProvider>\n                                        <LoadingIndicator />\n                                        <InitialConsent {...{ consentGiven }} />\n                                        <ActiveRoute />\n                                    </MenuProvider>\n                                </GraphQLErrorBoundary>\n                            </Router>\n                        </RelayEnvironmentProvider>\n                    </GlobalErrorBoundary>\n                </AppkitConfigProvider>\n            </ColorSchemeProvider>\n        </SilenceEmotionWarnings>\n    </StrictMode>\n);\n\nconst APPKIT_CONFIG: AppkitConfig = {\n    ...DEFAULT_CONFIG,\n    colors: {\n        ...DEFAULT_CONFIG.colors,\n\n        accent7: COLORS.primary0,\n        accent8: COLORS.primary1,\n        accent9: COLORS.primary2,\n        accent7BwInverted: COLORS.primary0BwInverted,\n        accent8BwInverted: COLORS.primary1BwInverted,\n        accent9BwInverted: COLORS.primary2BwInverted,\n\n        happy7: COLORS.primary0,\n        happy8: COLORS.primary1,\n        happy9: COLORS.primary2,\n        happy7BwInverted: COLORS.primary0BwInverted,\n        happy8BwInverted: COLORS.primary1BwInverted,\n        happy9BwInverted: COLORS.primary2BwInverted,\n\n        danger4: COLORS.danger0,\n        danger5: COLORS.danger1,\n        danger4BwInverted: COLORS.danger0BwInverted,\n        danger5BwInverted: COLORS.danger1BwInverted,\n\n        focus: COLORS.focus,\n    },\n};\n\n/**\n * This thingy is kind of sad. In short: emotion-js emits warnings whenever one\n * uses `:first-child` selectors in CSS. That's because stuff can break when\n * doing server side rendering and using those selectors, since emotion will\n * insert `<style>` tags. This is the best way to disable the warning globally.\n * We don't need that warning because we won't do SSR.\n *\n * Full story: https://github.com/emotion-js/emotion/issues/1105\n */\nconst SilenceEmotionWarnings: React.FC<{ children: ReactNode }> = ({ children }) => {\n    const cache = createEmotionCache({\n        key: \"css\",\n        nonce: document.documentElement.dataset.tobiraStyleNonce,\n        ...(process.env.NODE_ENV === \"development\" && { stylisPlugins: [] }),\n    });\n    cache.compat = true;\n\n    return <CacheProvider value={cache}>{children}</CacheProvider>;\n};\n","import ReactDOM from \"react-dom/client\";\n\nimport { App } from \"./App\";\nimport \"./i18n\";\nimport { matchInitialRoute } from \"./router\";\nimport { LoginRoute, REDIRECT_STORAGE_KEY } from \"./routes/Login\";\nimport { checkInitialConsent } from \"./ui/InitialConsent\";\nimport CONFIG from \"./config\";\n\n\nconst redirect = (target: string) => {\n    const newUri = new URL(target, document.baseURI).href;\n    // eslint-disable-next-line no-console\n    console.debug(`Requested login page after login: redirecting to previous page ${newUri}`);\n    const state = {\n        scrollY: 0,\n        index: 0,\n        ...window.history.state,\n    };\n    window.history.replaceState(state, \"\", newUri);\n    window.sessionStorage.removeItem(REDIRECT_STORAGE_KEY);\n};\n\n(async () => {\n    // This a special route mostly useful for using custom login pages. Those\n    // pages can usually be configured where they should redirect after\n    // successful login.\n    if (window.location.pathname === \"/~session\") {\n        // eslint-disable-next-line no-console\n        console.debug(\"Sending 'POST /~session' request and then redirecting\");\n        await fetch(\"/~session\", { method: \"POST\" });\n        redirect(window.sessionStorage.getItem(REDIRECT_STORAGE_KEY) ?? \"/\");\n    }\n\n    // Potentially redirect to previous page after login.\n    //\n    // When clicking on the login button, the (then) current page is stored in\n    // session storage. If the login button is configured to be a link to some\n    // external page, the user is likely redirected to `/~login` from that external\n    // login page. In that case, we want to redirect the user to the page they are\n    // coming from.\n    //\n    // We previously had this logic in the `LoginPage` component and redirected in\n    // an effect. But this is not the proper tool: we don't want to cause rendering\n    // a component to trigger a redirect. In fact, that approach would break in\n    // `StrictMode`.\n    const target = window.sessionStorage.getItem(REDIRECT_STORAGE_KEY);\n    if (window.location.pathname === LoginRoute.url && target && CONFIG.auth.loginLink) {\n        // eslint-disable-next-line no-console\n        console.debug(`Requested login page after login: redirecting to previous page ${target}`);\n        redirect(target);\n    }\n\n    const initialRoute = matchInitialRoute();\n    const consentGiven = await checkInitialConsent();\n    const root = document.createElement(\"div\");\n    root.style.height = \"100svh\";\n    document.body.appendChild(root);\n    const reactRoot = ReactDOM.createRoot(root);\n    reactRoot.render(<App {...{ initialRoute, consentGiven }} />);\n})();\n"],"names":["leafPrototypes","getProto","inProgress","dataWebpackPrefix","StyleSheet","options","_this","this","_insertTag","tag","before","tags","length","insertionPoint","nextSibling","prepend","container","firstChild","insertBefore","push","isSpeedy","undefined","speedy","ctr","nonce","key","_proto","prototype","hydrate","nodes","forEach","insert","rule","document","createElement","setAttribute","appendChild","createTextNode","createStyleElement","sheet","i","styleSheets","ownerNode","sheetForTag","insertRule","cssRules","e","flush","_tag$parentNode","parentNode","removeChild","abs","Math","from","String","fromCharCode","assign","Object","trim","value","replace","pattern","replacement","indexof","search","indexOf","charat","index","charCodeAt","substr","begin","end","slice","strlen","sizeof","append","array","line","column","position","character","characters","node","root","parent","type","props","children","return","copy","prev","next","peek","caret","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","count","commenter","identifier","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","KEYFRAMES","serialize","callback","output","stringify","element","join","compile","parse","rules","rulesets","pseudo","points","declarations","offset","atrule","property","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","size","j","k","x","y","z","identifierWithPointTracking","fixedElements","WeakMap","compat","isImplicitRule","get","set","parsed","toRules","getRules","parentRules","removeLabel","prefix","hash","defaultStylisPlugins","map","combine","exec","match","createCache","ssrStyles","querySelectorAll","Array","call","getAttribute","head","_insert","stylisPlugins","inserted","nodesToHydrate","attrib","split","currentSheet","collection","finalizingPlugins","serializer","concat","selector","serialized","shouldCache","styles","cache","name","registered","isBrowser","EmotionCacheContext","React","HTMLElement","CacheProvider","Provider","withEmotionCache","func","forwardRef","ref","useContext","ThemeContext","hasOwn","hasOwnProperty","typePropName","createEmotionProps","newProps","Insertion","_ref","isStringTag","registerStyles","useInsertionEffectAlwaysWithSyncFallback","insertStyles","_ref2","serializedNames","dangerouslySetInnerHTML","__html","Emotion$1","cssProp","css","WrappedComponent","registeredStyles","className","getRegisteredStyles","serializeStyles","jsx","args","arguments","apply","argsLength","createElementArgArray","Emotion","Global","serializedStyles","sheetRef","useInsertionEffectWithLayoutFallback","constructor","rehydrating","querySelector","current","sheetRefCurrent","nextElementSibling","_len","_key","keyframes","insertable","anim","toString","Fragment","ReactJSXRuntime","jsxs","unitlessKeys","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","order","orphans","scale","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","memoize","fn","create","arg","isDevelopment","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","toLowerCase","processStyleValue","p1","p2","cursor","unitless","noComponentSelectorMessage","handleInterpolation","mergedProps","interpolation","componentSelector","__emotion_styles","obj","string","isArray","asString","Error","interpolated","_i","createStringFromObject","previousCursor","result","cached","labelPattern","stringMode","strings","raw","lastIndex","identifierName","str","h","len","hashString","useInsertionEffect","classNames","rawClassName","ProtoButton","rest","_jsx","border","padding","background","color","Button","kind","extraCss","config","useAppkitConfig","isHighContrast","useColorScheme","notDisabledStyle","normal","colors","neutral40","neutral90","neutral60","backgroundColor","neutral15","danger","danger4","danger5","danger4BwInverted","call-to-action","happy8","happy7BwInverted","happy7","happy9","happy8BwInverted","borderRadius","display","alignItems","gap","whiteSpace","neutral10","transition","textDecoration","fontSize","neutral25","focusStyle","buttonStyle","Card","iconPos","_jsxs","flexDirection","minWidth","error","danger0","danger0BwInverted","info","LuAlertTriangle","LuInfo","assertNever","_n","bug","Bug","msg","unreachable","notNullish","v","COLOR_SCHEMES","LOCAL_STORAGE_KEY","ColorSchemeContext","ColorSchemeProvider","allowedSchemes","includes","isValidScheme","attrValue","documentElement","dataset","colorScheme","initialScheme","scheme","setScheme","useState","stored","window","localStorage","getItem","isAuto","setIsAuto","context","update","pref","setItem","lightness","matchMedia","matches","contrast","perfectMatch","inverseHighContrast","DEFAULT_CONFIG","neutral00","neutral05","neutral20","neutral30","neutral50","neutral70","neutral80","danger1","danger1BwInverted","danger2","danger2BwInverted","danger5BwInverted","happy4","happy4BwInverted","happy5","happy5BwInverted","happy6","happy6BwInverted","happy9BwInverted","accent9","accent9BwInverted","accent8","accent8BwInverted","accent7","accent7BwInverted","accent6","accent6BwInverted","accent5","accent5BwInverted","accent4","accent4BwInverted","focus","breakpoints","small","medium","large","Context","AppkitConfigProvider","arms","fallback","screenWidthAtMost","w","screenWidthAbove","currentRef","ConfirmationModal","title","titleOverride","buttonContent","onSubmit","text","areYouSure","inFlight","setInFlight","setError","modalRef","useRef","useImperativeHandle","open","done","close","reportError","Modal","closable","event","preventDefault","stopPropagation","marginTop","justifyContent","flexWrap","disabled","onClick","cancel","Spinner","boxError","ErrorBox","err","useLayoutEffect","useEffect","deepEqual","a","b","keys","$$typeof","getDPR","ownerDocument","defaultView","devicePixelRatio","roundByDPR","dpr","round","useLatestRef","arrow$1","state","shift","deps","flip","arrow","serverHandoffComplete","genId","useId","id","setId","FloatingNodeContext","FloatingTreeContext","useFloatingParentNodeId","_React$useContext","useFloatingTree","getDocument","getPlatform","uaData","navigator","userAgentData","platform","getWindow","isElement","Element","isHTMLElement","isVirtualClick","mozInputSource","isTrusted","androidRe","test","brands","brand","version","userAgent","getUserAgent","pointerType","buttons","detail","isVirtualPointerEvent","width","height","pressure","isMouseLikePointerType","strict","values","contains","child","rootNode","getRootNode","ShadowRoot","host","createAttribute","safePolygonIdentifier","getDelay","prop","activeElement","doc","_activeElement","_activeElement$shadow","shadowRoot","rafId","enqueueFocus","el","preventScroll","cancelPrevious","sync","cancelAnimationFrame","requestAnimationFrame","getChildren","allChildren","filter","_node$context","parentId","currentChildren","_currentChildren","some","n","_node$context2","getTarget","composedPath","target","stopEvent","isButtonTarget","tagName","isSpaceIgnored","isTypeableElement","useSafeInsertionEffect","useEffectEvent","isEventTargetWithin","bubbleHandlerKeys","pointerdown","mousedown","click","captureHandlerKeys","useFloating","_options$elements","onOpenChange","unstable_onOpenChange","nodeId","_domReference","setDomReference","domReference","elements","placement","strategy","middleware","externalReference","floating","externalFloating","transform","whileElementsMounted","data","setData","middlewareData","isPositioned","latestMiddleware","setLatestMiddleware","_reference","_setReference","_floating","_setFloating","setReference","referenceRef","setFloating","floatingRef","referenceEl","floatingEl","dataRef","hasWhileElementsMounted","whileElementsMountedRef","platformRef","openRef","then","fullData","isMountedRef","refs","floatingStyles","initialStyles","left","top","willChange","useFloating$1","tree","openEvent","domReferenceRef","events","Map","emit","_map$get","handler","on","listener","off","_map$get2","l","createPubSub","floatingId","setPositionReference","positionReference","getBoundingClientRect","contextElement","nodesRef","find","mergeProps","userProps","propsList","elementKey","tabIndex","reduce","acc","entries","has","val","isPreventScrollSupported","ARROW_UP","ARROW_DOWN","ARROW_LEFT","ARROW_RIGHT","isDifferentRow","cols","prevRow","floor","isIndexOutOfBounds","listRef","findNonDisabledIndex","_temp","startingIndex","decrement","disabledIndices","amount","list","_list$index","_list$index2","hasAttribute","doSwitch","orientation","vertical","horizontal","isMainOrientationKey","isMainOrientationToEndKey","rtl","getMinIndex","getMaxIndex","isPointInPolygon","point","polygon","isInside","xi","yi","xj","yj","safePolygon","buffer","blockPointerEvents","requireIntent","timeoutId","hasLanded","lastX","lastY","lastCursorTime","performance","now","onClose","clearTimeout","clientX","clientY","clientPoint","isLeave","isOverFloatingEl","isOverReferenceEl","refRect","rect","side","cursorLeaveFromRight","right","cursorLeaveFromBottom","bottom","isOverReferenceRect","isFloatingWider","isFloatingTaller","relatedTarget","rectPoly","cursorSpeed","currentTime","elapsedTime","deltaX","deltaY","distance","sqrt","getCursorSpeed","_ref3","cursorPointOne","cursorPointTwo","getPolygon","setTimeout","__options","FloatingContext","useFloatingContext","useFloatingItemProps","activeIndex","getItemProps","FloatingContainer","idealPlacement","arrowSize","viewPortMargin","ariaRole","setActiveIndex","setOpen","actualOpen","arrowRef","div","floatContext","autoUpdate","hover","enabled","delay","handleClose","mouseOnly","restMs","move","handleCloseRef","delayRef","pointerTypeRef","timeoutRef","handlerRef","restTimeoutRef","blockMouseMoveRef","performedPointerEventsMutationRef","unbindMouseMoveRef","isHoverOpen","_dataRef$current$open","onDismiss","onLeave","html","addEventListener","removeEventListener","closeWithDelay","runElseBranch","closeDelay","cleanupMouseMoveHandler","clearPointerEvents","body","style","pointerEvents","removeAttribute","onScrollMouseLeave","onMouseEnter","once","onMouseLeave","isClickLikeOpenEvent","openDelay","_handleCloseRef$curre","_tree$nodesRef$curren","_tree$nodesRef$curren2","parentFloating","setPointerRef","onPointerDown","onPointerEnter","onMouseMove","nativeEvent","returnFocus","useHover","trigger","keyboardOnly","blockFocusRef","win","onBlur","payload","onFocus","movedToFocusGuard","useFocus","eventOption","toggle","ignoreMouse","keyboardHandlers","didKeyDownRef","onMouseDown","button","onKeyDown","defaultPrevented","onKeyUp","useClick","dismiss","escapeKey","outsidePress","unstable_outsidePress","outsidePressEvent","referencePress","referencePressEvent","ancestorScroll","bubbles","nested","outsidePressFn","insideReactTreeRef","escapeKeyBubbles","outsidePressBubbles","_bubbles$escapeKey","_bubbles$outsidePress","normalizeBubblesProp","closeOnEscapeKeyDown","shouldDismiss","_child$context","__escapeKeyBubbles","isReactEvent","closeOnPressOutside","insideReactTree","canScrollX","clientWidth","scrollWidth","canScrollY","clientHeight","scrollHeight","xCond","offsetX","getComputedStyle","direction","offsetWidth","offsetY","targetIsInsideChildren","_child$context2","__outsidePressBubbles","onScroll","ancestors","getOverflowAncestors","ancestor","_doc$defaultView","visualViewport","passive","useDismiss","role","referenceId","floatingProps","useRole","listNavigation","onNavigate","unstable_onNavigate","selectedIndex","allowEscape","loop","virtual","focusItemOnOpen","focusItemOnHover","openOnArrowKeyDown","scrollItemIntoView","focusItemOnOpenRef","indexRef","keyRef","isPointerModalityRef","previousOnNavigateRef","previousMountedRef","forceSyncFocus","forceScrollIntoViewRef","disabledIndicesRef","latestOpenRef","scrollItemIntoViewRef","activeId","setActiveId","focusItem","forceScrollIntoView","item","startsWith","maxTouchPoints","vendor","scrollIntoViewOptions","scrollIntoView","block","inline","runs","waitForListPopulated","queueMicrotask","_nodes$find","_nodes$find$context","activeEl","treeContainsActiveEl","hasActiveIndex","syncCurrentTarget","currentTarget","onPointerLeave","_ref4","isCrossOrientationCloseKey","currentIndex","minIndex","maxIndex","prevIndex","col","maxCol","lastRow","min","max","checkVirtualMouse","ariaActiveDescendantProp","isArrowKey","isNavigationKey","isMainKey","isCrossKey","isCrossOrientationOpenKey","onPointerMove","useListNavigation","getReferenceProps","getFloatingProps","useInteractions","settings","calculated","FloatingTrigger","Floating","borderColor","borderWidth","shadowColor","shadowBlur","hideArrowTip","pos","sideOfPlacement","arrowSideLen","SQRT2","mergedRefs","f","r","invSide","maxWidth","boxShadow","outline","overflow","WithTooltip","tooltip","tooltipCss","FiArrowLeft","GenIcon","FiCheck","WithHeaderMenu","menu","floatingContainer","HeaderMenu","items","label","breakpoint","itemProps","bgColor","light","dark","dark-high-contrast","light-high-contrast","margin","paddingLeft","listStyle","li","ReturnButton","keepOpenAfterClick","HeaderMenuItem","icon","wrapper","focusBgColor","focusTextColor","maxHeight","inset","outerProps","wrapperElem","_Fragment","borderTop","checkboxMenuItem","checked","borderBottom","textOverflow","strokeColor","viewBox","animation","fill","stroke","strokeLinecap","cx","cy","closeOnOutsideClick","initialFocus","isOpen","isDark","handleEscape","ReactDOM","FocusTrap","focusTrapOptions","LuX","outlineOffset","toStr","defineProperty","gOPD","getOwnPropertyDescriptor","arr","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","enumerable","configurable","newValue","writable","getProperty","module","exports","extend","src","copyIsArray","clone","deep","aStackPool","bStackPool","eq","aStack","bStack","objToStr","isNaN","Number","source","global","multiline","ignoreCase","valueOf","pop","makeEmptyFunction","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","warning","require","_typeof","o","Symbol","iterator","_defineProperties","t","_toPropertyKey","_isNativeReflectConstruct","Boolean","Reflect","construct","_getPrototypeOf","setPrototypeOf","getPrototypeOf","bind","__proto__","_setPrototypeOf","toPrimitive","TypeError","_toPrimitive","PropTypes","createFocusTrap","isFocusable","_React$Component","_classCallCheck","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_callSuper","optionName","_this$internalOptions","optionValue","internalOptions","originalOptions","params","_this$getDocument","handleDeactivate","handlePostDeactivate","handleClickOutsideDeactivates","returnFocusOnDeactivate","checkCanReturnFocus","onDeactivate","onPostDeactivate","clickOutsideDeactivates","outsideClick","focusTrapElements","containerElements","updatePreviousElement","_inherits","getNodeForOption","previouslyFocusedElement","currentDocument","focusTrap","active","deactivate","allowDeactivation","deactivateTrap","_this2","finishDeactivation","returnFocusNode","getReturnFocusNode","canReturnFocus","tabbableOptions","_this2$internalOption","activate","paused","pause","_createFocusTrap","setupFocusTrap","prevProps","updateContainerElements","hasActivated","hasDeactivated","hasPaused","hasUnpaused","unpause","_this3","Children","only","cloneElement","Component","ElementType","Function","propTypes","bool","shape","object","onActivate","onPostActivate","checkCanFocusTrap","onPause","onPostPause","onUnpause","onPostUnpause","oneOfType","instanceOf","fallbackFocus","escapeDeactivates","setReturnFocus","allowOutsideClick","displayCheck","oneOf","getShadowRoot","trapStack","isKeyForward","isKeyBackward","arrayOf","defaultProps","isTabEvent","keyCode","shiftKey","findIndex","idx","every","valueOrHandler","getActualTarget","internalTrapStack","userOptions","trap","_objectSpread2","delayInitialFocus","containers","containerGroups","tabbableGroups","nodeFocusedBeforeActivation","mostRecentlyFocusedNode","delayInitialFocusTimer","recentNavEvent","getOption","configOverrideOptions","configOptionName","findContainerIndex","tabbableNodes","_len2","_key2","getInitialFocusNode","firstTabbableGroup","firstTabbableNode","updateTabbableNodes","tabbable","focusableNodes","focusable","lastTabbableNode","firstDomTabbableNode","isTabbable","lastDomTabbableNode","reverse","posTabIndexesFound","getTabIndex","nextTabbableNode","forward","nodeIdx","group","g","_getActiveElement","_tryFocus","select","isSelectableInput","previousActiveElement","findNextNavNode","_ref2$isBackward","isBackward","destinationNode","containerIndex","containerGroup","startOfGroupIndex","destinationGroupIndex","destinationGroup","lastOfGroupIndex","_destinationGroupIndex","_destinationGroup","checkPointerDown","checkFocusIn","targetContained","Document","nextNode","stopImmediatePropagation","navAcrossContainers","mruContainerIdx","mruTabIdx","checkTabKey","checkKeyNav","checkEscapeKey","checkClick","addListeners","activeTrap","trapIndex","splice","activeFocusTraps","capture","removeListeners","mutationObserver","MutationObserver","mutations","mutation","removedNodes","updateObservedNodes","disconnect","observe","subtree","childList","activateOptions","finishActivation","deactivateOptions","pauseOptions","unpauseOptions","elementsAsArray","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","getOwnPropertyNames","getOwnPropertySymbols","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","EMPTY_STRING","lineno","updatePosition","lines","lastIndexOf","start","Position","content","errorsList","reason","filename","silent","re","m","comments","c","charAt","ret","decl","decls","condition","format","d","argIndex","framesToPop","ReactPropTypesSecret","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","location","propFullName","secret","getShim","isRequired","ReactPropTypes","bigint","number","symbol","any","elementType","objectOf","exact","checkPropTypes","aa","ca","p","encodeURIComponent","da","Set","ea","fa","ha","add","ia","ja","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","ra","sa","toUpperCase","ta","pa","qa","oa","setAttributeNS","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","for","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","A","Ma","stack","Na","Oa","prepareStackTrace","Pa","Qa","_context","_payload","_init","Ra","Sa","Ta","nodeName","Va","_valueTracker","getValue","setValue","stopTracking","Ua","Wa","Xa","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","cb","db","eb","fb","selected","defaultSelected","gb","hb","ib","jb","textContent","kb","lb","mb","nb","namespaceURI","innerHTML","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeType","nodeValue","pb","gridArea","lineClamp","qb","rb","sb","substring","tb","menuitem","area","base","br","embed","hr","img","input","keygen","link","meta","param","track","wbr","ub","vb","is","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","flags","Wb","memoizedState","dehydrated","Xb","Zb","sibling","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","B","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","clz32","pc","qc","log","LN2","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","C","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","delete","pointerId","Tc","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","fd","gd","hd","Uc","jd","kd","ld","md","nd","od","charCode","pd","qd","rd","_reactName","_targetInst","isDefaultPrevented","returnValue","isPropagationStopped","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","cancelable","timeStamp","Date","td","ud","view","vd","Ad","screenX","screenY","pageX","pageY","ctrlKey","altKey","metaKey","getModifierState","zd","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","code","repeat","locale","which","Rd","Td","tangentialPressure","tiltX","tiltY","twist","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","date","datetime","email","month","password","range","tel","time","url","week","me","ne","oe","listeners","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","href","Ne","contentEditable","Oe","focusedElem","selectionRange","selectionStart","selectionEnd","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","instance","D","of","pf","qf","rf","random","sf","J","u","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","unshift","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","Promise","Jf","resolve","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","H","Wf","Xf","Yf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","deletions","Cg","pendingProps","treeContext","retryLane","Dg","mode","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","_owner","_stringRef","Mg","Ng","Og","Pg","Qg","Rg","implementation","Sg","Tg","q","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","_currentValue","bh","childLanes","ch","dependencies","firstContext","lanes","dh","eh","memoizedValue","fh","gh","hh","interleaved","ih","jh","kh","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","lh","mh","eventTime","lane","nh","K","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","L","Ch","revealOrder","Dh","Eh","_workInProgressVersionPrimary","Fh","ReactCurrentDispatcher","Gh","Hh","M","N","O","Ih","Jh","Kh","Lh","P","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","baseQueue","queue","Uh","Vh","Wh","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","dispatch","Xh","Yh","Zh","$h","ai","getSnapshot","bi","ci","Q","di","lastEffect","stores","ei","fi","gi","hi","ii","destroy","ji","ki","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","zi","Ai","R","Bi","readContext","useCallback","useMemo","useReducer","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","unstable_isNewReconciler","identifierPrefix","Ci","Di","Ei","isMounted","_reactInternals","enqueueSetState","enqueueReplaceState","enqueueForceUpdate","Fi","shouldComponentUpdate","isPureReactComponent","Gi","updater","Hi","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ii","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Ji","message","digest","Ki","Li","console","Mi","Ni","Oi","Pi","Qi","componentDidCatch","Ri","componentStack","Si","pingCache","Ti","Ui","Vi","Wi","ReactCurrentOwner","Xi","Yi","Zi","$i","aj","bj","cj","dj","baseLanes","cachePool","transitions","ej","fj","gj","hj","ij","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","jj","kj","pendingContext","lj","zj","Aj","Bj","Cj","mj","nj","oj","pj","qj","sj","dgst","tj","uj","_reactRetry","rj","subtreeFlags","vj","wj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","Dj","S","Ej","Fj","wasMultiple","multiple","suppressHydrationWarning","onclick","createElementNS","autoFocus","T","Gj","Hj","Ij","Jj","U","Kj","WeakSet","V","Lj","W","Mj","Nj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","_reactRootContainer","Wj","X","Xj","Yj","Zj","onCommitFiberUnmount","componentWillUnmount","ak","bk","ck","dk","ek","isHidden","fk","gk","hk","ik","jk","kk","__reactInternalSnapshotBeforeUpdate","Vk","lk","ceil","mk","nk","ok","Y","Z","pk","qk","rk","sk","tk","Infinity","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","finishedWork","finishedLanes","Pk","timeoutHandle","Qk","Rk","Sk","Tk","Uk","mutableReadLanes","Bc","Oj","onCommitFiberRoot","mc","onRecoverableError","Wk","onPostCommitFiberRoot","Xk","Yk","$k","isReactComponent","pendingChildren","al","mutableSourceEagerHydrationData","bl","pendingSuspenseBoundaries","dl","fl","gl","hl","il","Zk","kl","ll","_internalRoot","ml","nl","ol","pl","rl","ql","unmount","unstable_scheduleHydration","JSON","form","sl","usingClientEntryPoint","Events","tl","findFiberByHostInstance","bundleType","rendererPackageName","ul","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","vl","isDisabled","supportsFiber","inject","createPortal","cl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","HiOutlineFire","HiOutlineSearch","HiOutlineStatusOffline","HiOutlineTranslate","DefaultContext","attr","IconContext","__assign","s","__rest","propertyIsEnumerable","Tree2Element","IconBase","elem","conf","svgProps","computedSize","xmlns","Consumer","LuAlertCircle","LuArrowDownNarrowWide","LuArrowDown","LuArrowLeft","LuArrowRightCircle","LuArrowUpWideNarrow","LuArrowUp","LuCalendarRange","LuCheckCircle","LuCheck","LuChevronDown","LuChevronLeft","LuChevronRight","LuClock","LuCode","LuColumns","LuCopy","LuCornerLeftUp","LuDownload","LuEye","LuFilm","LuFolder","LuFrown","LuHash","LuHome","LuLayoutGrid","LuLayoutTemplate","LuLayout","LuLibrary","LuLink","LuListVideo","LuList","LuLogIn","LuLogOut","LuMenu","LuMoon","LuPenLine","LuPenSquare","LuPlayCircle","LuPlay","LuPlusCircle","LuPlus","LuQrCode","LuRadio","LuRss","LuSettings","LuShare2","LuShield","LuSun","LuSunrise","LuTrash","LuTruck","LuType","LuUpload","LuUserCheck","LuUserCircle","LuVideo","LuVolume2","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","getComponentName","getContainerName","createRelayContext","__internal","_interopRequireDefault","_objectWithoutPropertiesLoose2","_assertThisInitialized2","_inheritsLoose2","_defineProperty2","_excluded","buildReactRelayContainer","assertRelayContext","areEqual","_require3","createFragmentSpecResolver","getDataIDsFromObject","isScalarAndEqual","createContainerWithFragments","fragments","_class","containerName","_props$__rootIsQueryR","resolverFromThisUpdate","resolver","setState","updatedState","relayProp","getRelayProp","environment","relayContext","__relayContext","rootIsQueryRenderer","__rootIsQueryRenderer","prevPropsContext","nextProps","prevState","_nextProps$__rootIsQu","prevIDs","nextIDs","setProps","_subscribeToNewResolverAndRerenderIfStoreHasChanged","dispose","_rerenderIfStoreHasChanged","nextState","_this$state","maybeNewData","_this$state2","setCallback","_handleFragmentDataUpdate","_this$props","componentRef","relay","createContainer","fragmentSpec","ReactRelayContext","ReactRelayQueryRendererContext","_require","createOperationDescriptor","getRequest","deepFreeze","queryRendererContext","latestValue","query","variables","latestVariables","operation","request","forceUpdate","cleanupFnRef","snapshot","check","res","lookup","fragment","retainDisposable","retain","subscribeDisposable","subscribe","newSnapshot","disposed","cleanupFn","_extends2","_objectSpread3","_excluded2","_excluded3","getRootVariablesForFragments","ReactRelayQueryFetcher","invariant","ConnectionInterface","Observable","RelayFeatureFlags","getVariablesFromObject","FORWARD","toObserver","observerOrCallback","complete","unsubscribe","subscription","connectionConfig","ComponentClass","metadata","foundConnectionMetadata","isRelayModern","fragmentName","connectionMetadata","connection","findConnectionMetadata","getConnectionFromProps","path","createGetConnectionFromProps","getFragmentVariables","countVariable","prevVars","totalCount","createGetFragmentVariables","_resolver","connectionData","_getConnectionData","hasMore","_refetchSubscription","refetchVariables","_canFetchPage","_refetchVariables","paginatingVariables","_fetchPage","force","pageSize","observer","sink","edgeCount","_refetchConnection","_ConnectionInterface$","END_CURSOR","START_CURSOR","_isARequestInFlight","ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT","prevContext","contextForChildren","_buildRelayProp","resolverGeneration","_isUnmounted","_hasFetched","prevRootVariables","nextRootVariables","_cleanup","_hasMore","isLoading","_isLoading","loadMore","_loadMore","refetchConnection","restProps","_ConnectionInterface$2","EDGES","PAGE_INFO","HAS_NEXT_PAGE","HAS_PREV_PAGE","edges","pageInfo","_getQueryFetcher","_queryFetcher","method","fragmentVariables","_this$props2","rootVariables","fetchVariables","getVariables","cacheConfig","refetchSubscription","cleanup","execute","preservePreviousReferences","mergeMap","prevData","setVariables","nextData","onNext","_this$props3","fetchQuery","isRelayModernEnvironment","_cacheSelectionReference","cacheSelectionReference","_selectionReferences","selectionReferences","getSelectionReferences","lookupInStore","fetchPolicy","status","_retainCachedOperation","getFetchResult","_didFetchFinish","_error","_snapshot","_ref$preservePrevious","disposeSelectionReferences","setOnDataChange","onDataChange","_fetchOptions","onDataChangeCallbacks","fetch","fetchOptions","cacheConfigOverride","fetchHasReturned","disposeRequest","oldOnDataChangeCallbacks","operationOverride","_pendingRequest","_onQueryDataAvailable","notifyFirstResult","retry","_rootSubscription","_disposeCacheSelectionReference","_this$_fetchOptions","maybeNewOnDataChangeCallbacks","requestCache","ReactRelayQueryRenderer","prevRequestCacheKey","requestCacheKey","renderProps","getRenderProps","queryFetcher","retryCallbacks","handleDataChange","handleRetryAfterError","getRequestCacheKey","_maybeHiddenOrFastRefresh","prevPropsEnvironment","prevPropsVariables","prevQuery","fetchQueryAndComputeStateFromProps","resetQueryStateForUpdate","newState","_handleDataChange","_prevProps","_this$state3","syncSnapshot","cacheID","prevSelectionReferences","genericEnvironment","storeSnapshot","createContext","refetch","taggedNode","renderVariables","_getFragmentVariables","localVariables","latestState","response","_refetch","isRelayEnvironment","isRelayContext","assertFragmentMap","getFragment","Container","_queryRendererContext","getSelector","_selector$selectors$","_selector$selectors$2","_selector$owner$varia","fragmentNode","fragmentRef","fragmentOwnerVariables","selectors","owner","EntryPointContainer","loadEntryPoint","loadQuery","ProfilerContext","RelayEnvironmentProvider","useEntryPointLoader","useFragment","useLazyLoadQuery","useMutation","usePaginationFragment","usePreloadedQuery","useQueryLoader","useRefetchableFragment","useRelayEnvironment","useSubscribeToInvalidationState","useSubscription","RelayRuntime","ConnectionHandler","applyOptimisticMutation","commitLocalUpdate","commitMutation","graphql","readInlineData","requestSubscription","ReactRelayFragmentContainer","ReactRelayLocalQueryRenderer","ReactRelayPaginationContainer","ReactRelayRefetchContainer","useClientQuery","QueryRenderer","LocalQueryRenderer","MutationTypes","RangeOperations","createFragmentContainer","createPaginationContainer","createRefetchContainer","fetchQuery_DEPRECATED","entryPointReference","getComponent","queries","entryPoints","extraProps","rootModuleID","profilerContext","__log","impl","LRUCache","capacity","_capacity","_map","firstKey","clear","wrapPrepareQueryResource","SuspenseResource","isPromise","DEFAULT_FETCH_POLICY","DEFAULT_LIVE_FETCH_POLICY","WEAKMAP_SUPPORTED","operationIsLiveQuery","live","getQueryCacheIdentifier","maybeFetchPolicy","maybeRenderPolicy","cacheBreaker","renderPolicy","UNSTABLE_getDefaultRenderPolicy","cacheIdentifier","getQueryResult","rootFragmentRef","__id","dataID","__fragments","__fragmentOwner","nextID","createCacheEntry","operationAvailability","networkSubscription","onDispose","isLiveQuery","currentValue","currentNetworkSubscription","suspenseResource","retention","cacheEntry","processedPayloadsCount","setNetworkSubscription","temporaryRetain","permanentRetain","releaseTemporaryRetain","QueryResourceImpl","_cache","_environment","prepare","fetchObservable","prepareWithIdentifier","temporaryRetainDisposable","entryWasCached","_fetchAndSaveQuery","observerUnsubscribe","cachedValue","isPromiseCached","queryAvailability","queryResult","_getOrCreateCacheEntry","disposable","resourceID","TESTS_ONLY__getCacheEntry","_clearCacheEntry","shouldFetch","shouldAllowRender","queryStatus","hasFullQuery","canPartialRender","resolveNetworkPromise","_cacheEntry","_queryResult","observerStart","observerNext","observerError","observerComplete","_cacheEntry2","networkPromise","createQueryResource","dataResources","getQueryResourceForEnvironment","newDataResource","getEnvironmentForActor","_retain","_retainCount","_retainDisposable","_this$_releaseTempora","isServer","releaseQueryTimeout","_releaseTemporaryRetain","_this$_releaseTempora2","_this$_releaseTempora3","getRetainCount","_toConsumableArray2","_require2","_require2$__internal","getPromiseForActiveRequest","getFragmentIdentifier","getPendingOperationsForFragment","getVariablesFromFragment","handlePotentialSnapshotErrors","recycleNodesInto","CONSTANT_READONLY_EMPTY_ARRAY","freeze","isMissingData","missingLiveResolverFields","flat","getFragmentResult","cacheKey","storeEpoch","ClientEdgeQueryResultsCache","fragmentIdentifier","_this$_cache$get$","_this$_cache$get","recordQueryResults","existing","existingResults","_suspenseResource","_this$_retainCounts$g","retainCount","_retainCounts","_this$_retainCounts$g2","newRetainCount","FragmentResourceImpl","ENABLE_CLIENT_EDGES","_clientEdgeQueryResultsCache","_proto2","read","componentDisplayName","fragmentKey","readWithIdentifier","_fragmentNode$metadat","_fragmentNode$metadat2","_missingLiveResolverF2","_missingLiveResolverF3","getStore","getEpoch","plural","_missingLiveResolverF","promise","isRelayHooks","pendingOperations","_throwOrLogErrorsInSnapshot","fragmentSelector","fragmentResult","ENABLE_RELAY_OPERATION_TRACKER_SUSPENSE","clientEdgeRequests","hasClientEdges","_snapshot$missingClie","_snapshot$missingClie2","_s$missingClientEdges","_s$missingClientEdges2","missingClientEdges","hasMissingClientEdges","queryResource","queryResults","singularOrPluralForEach","snap","_snap$missingClientEd","_clientEdgeRequests","clientEdgeDestinationID","_this3$_performClient","_performClientEdgeQuery","requestDescriptor","clientEdgePromises","fragmentOwner","parentQueryPromiseResult","_getAndSavePromiseForFragmentRequestInFlight","parentQueryPromiseResultPromise","missingResolverFieldPromises","liveStateID","getLiveResolverPromise","_parentQueryPromiseRe","_clientEdgeRequests2","promises","all","originalVariables","_this4","missingRequiredFields","relayResolverErrors","errorResponseFields","readSpec","fragmentNodes","fragmentRefs","_this5","renderedSnapshot","_this$checkMissedUpda","checkMissedUpdates","didMissUpdates","currentSnapshot","disposables","latestSnapshot","_updatePluralSnapshot","_this$_clientEdgeQuer","_this$_clientEdgeQuer2","clientEdgeQueryResults","subscribeSpec","fragmentResults","_this6","currentSnapshots","renderData","currentData","updatedData","updatedCurrentSnapshot","seenRecords","_result","checkMissedUpdatesSpec","_this7","_this8","pendingOperationsResult","baseSnapshots","_currentFragmentResul","currentFragmentResult","reportInvalidCachedData","nextSnapshots","createFragmentResource","getFragmentResourceForEnvironment","useUnsafeRef_DEPRECATED","FragmentResource","isListeningForUpdatesRef","handleDataUpdate","LOG_MISSING_RECORDS_IN_PROD","disableStoreUpdates","enableStoreUpdates","useIsMountedRef","useFragmentNode","_require4","getRefetchMetadata","getValueAtPath","reducer","_action$refetchEnviro","mirroredEnvironment","refetchEnvironment","onComplete","refetchQuery","mirroredFragmentIdentifier","parentFragmentRef","parentEnvironment","_getRefetchMetadata","refetchableRequest","fragmentRefPathInResponse","_useReducer","refetchState","QueryResource","shouldReset","_useQueryLoader","queryRef","disposeQuery","identifierInfo","handleQueryCompleted","maybeError","fetchKey","queryData","_useFragmentNode","fragmentData","identifierValue","identifierField","providedRefetchVariables","parentVariables","__environment","UNSTABLE_renderPolicy","_fragmentSelector$sel","_fragmentSelector$sel2","_fragmentSelector$sel3","_fragmentSelector$sel4","identifierQueryVariableName","__nameForWarning","useRefetchFunction","environmentProvider","entryPoint","entryPointParams","loadingPromise","getModuleIfRequired","load","preloadProps","getPreloadProps","preloadedQueries","preloadedEntryPoints","queryPropName","_queries$queryPropNam","environmentProviderOptions","parameters","getEnvironment","networkCacheConfig","entryPointPropName","entryPointDescription","nestedEntryPoint","nestedParams","isDisposed","innerDispose","_loadingPromise","componentModule","getModuleId","fetchQueryDeduped","PreloadableQueryRegistry","ReplaySubject","getRequestIdentifier","RenderDispatcher","preloadableRequest","_React$__SECRET_INTER3","_React$__SECRET_INTER4","_options$fetchPolicy","retainReference","unsubscribeFromNetworkRequest","unsubscribeFromExecution","cancelOnLoadCallback","queryId","didExecuteNetworkSource","executeWithNetworkSource","networkObservable","executeWithSource","executionSubject","returnedObservable","networkError","didMakeNetworkRequest","makeNetworkRequest","observable","subject","ENABLE_LOAD_QUERY_REQUEST_DEDUPING","getNetwork","subjectSubscription","executeDeduped","fetchFn","_fetchQueryDeduped$su","checkAvailabilityAndExecute","concreteRequest","_module","_PreloadableQueryRegi","onLoad","preloadedModule","isReleased","isNetworkRequestCancelled","releaseQuery","cancelNetworkRequest","useTrackLoadQueryInRender","_React$__SECRET_INTER","_React$__SECRET_INTER2","gqlQuery","_createForOfIteratorHelper2","initialNullEntryPointReferenceState","_options$TEST_ONLY__i","_options$TEST_ONLY__i2","_options$TEST_ONLY__i3","_options$TEST_ONLY__i4","initialEntryPointReferenceInternal","TEST_ONLY__initialEntryPointData","initialEntryPointParamsInternal","undisposedEntryPointReferencesRef","_useState","setEntryPointReference","_useState2","setEntryPointParams","disposeEntryPoint","nullEntryPointReference","entryPointLoaderCallback","updatedEntryPointReference","maybeHiddenOrFastRefresh","undisposedEntryPointReferences","_step","_iterator","undisposedEntryPointReference","_step2","_iterator2","unhandledStateChange","subscriptionRef","isFetchingRef","disposeFetch","startFetch","completeFetch","HooksImplementation","useStaticFragmentNodeWarning","useFragment_LEGACY","getObservableForActiveRequest","isActive","setIsActive","onCompleteOrError","useLazyLoadQueryNode","useMemoOperationDescriptor","useFetchTrackingRef","forceUpdateKey","_useFetchTrackingRef","preparedQueryResult","useFragment__internal","useFragmentNodeImpl","useIsOperationNodeActive","getPaginationVariables","connectionPathInFragmentData","paginationRequest","paginationMetadata","onReset","setMirroredEnvironment","setMirroredFragmentIdentifier","isParentQueryActive","_getConnectionState","_pageInfo$END_CURSOR","_pageInfo$START_CURSO","getConnectionState","extraVariables","UNSTABLE_extraVariables","baseVariables","paginationVariables","paginationQuery","useMemoVariables","memoVariables","memoCacheConfig","mirroredVariables","setMirroredVariables","defaultCommitMutation","commitMutationFn","environmentRef","mutationRef","inFlightMutationsRef","isMutationInFlight","setMutationInFlight","onCompleted","errors","_config$onCompleted","_config$onError","onUnsubscribe","_config$onUnsubscribe","_config$onNext","useRefetchableFragmentNode","useLoadMoreFunction","getPaginationMetadata","useLoadMore","isLoadingMore","setIsLoadingMore","_useLoadMoreFunction","fragmentInput","_getPaginationMetadat","_useRefetchableFragme","_useLoadMore","loadPrevious","hasPrevious","isLoadingPrevious","disposeFetchPrevious","_useLoadMore2","loadNext","hasNext","isLoadingNext","disposeFetchNext","usePaginationFragment_LEGACY","_require3$__internal","preloadedQuery","useLazyLoadQueryNodeParams","fallbackFetchObservable","ifEmpty","initialNullQueryReferenceState","requestIsLiveQuery","initialQueryReference","initialQueryReferenceInternal","undisposedQueryReferencesRef","queryReference","setQueryReference","previousInitialQueryReference","setPreviousInitialQueryReference","queryLoaderCallback","mergedOptions","_options$__environmen","updatedQueryReference","undisposedQueryReferences","undisposedQueryReference","useRefetchableFragment_LEGACY","warningContext","dataIDs","disposableRef","stableDataIDs","sort","store","invalidationState","lookupInvalidationState","subscribeToInvalidationState","requestSubscriptionFn","actualRequestSubscription","init","toPropertyKey","safeIsNaN","areInputsEqual","newInputs","lastInputs","first","second","A11yText$1","_extends","defaultAriaLiveMessages","guidance","isSearchable","isMulti","tabSelectsValue","isInitialFocus","onChange","_props$label","labels","focused","_props$label2","selectValue","isSelected","isAppleDevice","getArrayIndex","onFilter","inputValue","resultsMessage","LiveRegion$1","ariaSelection","focusedOption","focusedValue","focusableOptions","isFocused","selectProps","ariaLiveMessages","getOptionLabel","isOptionDisabled","menuIsOpen","screenReaderStatus","ariaLabel","ariaLive","messages","_objectSpread","ariaSelected","option","selectedOptions","removedValue","removedValues","multiSelected","onChangeProps","ariaFocused","focusMsg","onFocusProps","ariaResults","resultsMsg","ariaGuidance","guidanceMsg","ScreenReaderText","diacritics","letters","anyDiacritic","RegExp","diacriticToBase","diacritic","stripDiacritics","memoizedStripDiacriticsForInput","resultFn","isEqual","memoized","newArgs","lastThis","lastArgs","lastResult","memoizeOne","trimString","defaultStringify","DummyInput","innerRef","_objectWithoutProperties","filteredProps","removeProps","caretColor","STYLE_KEYS","LOCK_STYLES","boxSizing","preventTouchMove","allowTouchMove","preventInertiaScroll","totalScroll","currentScroll","offsetHeight","isTouchDevice","canUseDOM","activeScrollLocks","listenerOptions","blurSelectInput","blur","_ref2$1","ScrollManager","lockEnabled","_ref$captureEnabled","captureEnabled","setScrollCaptureTarget","isEnabled","onBottomArrive","onBottomLeave","onTopArrive","onTopLeave","isBottom","isTop","touchStart","scrollTarget","handleEventDelta","delta","_scrollTarget$current","isDeltaPositive","availableScroll","shouldCancelScroll","cancelScroll","onWheel","onTouchStart","onTouchMove","startListening","notPassive","supportsPassiveEvents","stopListening","useScrollCapture","setScrollLockTarget","_ref$accountForScroll","accountForScrollbars","originalStyles","addScrollLock","touchScrollTarget","targetStyle","currentPadding","parseInt","paddingRight","adjustedPadding","innerWidth","removeScrollLock","useScrollLock","RequiredInput$1","required","testPlatform","_window$navigator$use","isMac","getOptionLabel$1","getOptionValue$1","defaultStyles","clearIndicator","clearIndicatorCSS","containerCSS","control","css$1","dropdownIndicator","dropdownIndicatorCSS","groupCSS","groupHeading","groupHeadingCSS","indicatorsContainer","indicatorsContainerCSS","indicatorSeparator","indicatorSeparatorCSS","inputCSS","loadingIndicator","loadingIndicatorCSS","loadingMessage","loadingMessageCSS","menuCSS","menuList","menuListCSS","menuPortal","menuPortalCSS","multiValue","multiValueCSS","multiValueLabel","multiValueLabelCSS","multiValueRemove","multiValueRemoveCSS","noOptionsMessage","noOptionsMessageCSS","optionCSS","placeholder","placeholderCSS","singleValue","css$2","valueContainer","valueContainerCSS","defaultTheme","primary","primary75","primary50","primary25","dangerLight","neutral0","neutral5","spacing","baseUnit","controlHeight","menuGutter","backspaceRemovesValue","blurInputOnSelect","isTouchCapable","captureMenuScroll","closeMenuOnSelect","closeMenuOnScroll","components","controlShouldRenderValue","escapeClearsValue","filterOption","rawInput","__isNew__","_ignoreCase$ignoreAcc","ignoreAccents","matchFrom","candidate","formatGroupLabel","getOptionValue","isRtl","maxMenuHeight","minMenuHeight","menuPlacement","menuPosition","menuShouldBlockScroll","menuShouldScrollIntoView","isMobileDevice","openMenuOnFocus","openMenuOnClick","unstyled","toCategorizedOption","_isOptionDisabled","_isOptionSelected","buildCategorizedOptions","groupOrOption","groupOrOptionIndex","categorizedOptions","optionIndex","categorizedOption","buildFocusableOptionsFromCategorizedOptions","optionsAccumulator","_toConsumableArray","buildFocusableOptionsWithIds","optionId","_props$inputValue","shouldHideSelectedOptions","_filterOption","getFocusedOptionId","focusableOptionsWithIds","_focusableOptionsWith","isOptionSelected","hideSelectedOptions","instanceId","Select","_Component","_super","isNativeReflectConstruct","assertThisInitialized","possibleConstructorReturn","_props","focusedOptionId","inputIsHidden","clearFocusValueOnUpdate","prevWasFocused","inputIsHiddenAfterUpdate","instancePrefix","blockOptionHover","isComposing","commonProps","initialTouchX","initialTouchY","openAfterFocus","scrollToFocusedOptionOnUpdate","userIsDragging","controlRef","getControlRef","focusedOptionRef","getFocusedOptionRef","menuListRef","getMenuListRef","inputRef","getInputRef","focusInput","blurInput","actionMeta","ariaOnChange","onInputChange","prevInputValue","onMenuClose","selectOption","deselected","multiValueAsValue","singleValueAsValue","removeValue","newValueArray","valueTernary","clearValue","popValue","lastSelectedValue","getFocusableOptionsWithIds","getElementId","classNamePrefix","getStyles","custom","getClassNames","_this$props$className","_this$props$className2","getComponents","defaultComponents","getCategorizedOptions","buildFocusableOptions","getFocusableOptions","onMenuMouseDown","onMenuMouseMove","onControlMouseDown","openMenu","onDropdownIndicatorMouseDown","_this$props4","onClearIndicatorMouseDown","isDocumentElement","onCompositionStart","onCompositionEnd","touch","onTouchEnd","onControlTouchEnd","onClearIndicatorTouchEnd","onDropdownIndicatorTouchEnd","handleInputChange","onMenuOpen","onInputFocus","onInputBlur","onOptionHover","focusedOptionIndex","onValueInputFocus","_this$props5","isClearable","focusValue","focusOption","cleanValue","_createClass","startListeningComposition","startListeningToTouch","_this$props6","stopListeningComposition","stopListeningToTouch","openAtIndex","focusedIndex","nextFocus","theme","hasValue","getTheme","_this$props7","formatOptionLabel","_inputValue","_selectValue","_this$props8","inputId","Input","_this$state4","ariaAttributes","autoCapitalize","autoComplete","autoCorrect","spellCheck","noop","inputMode","_this$getComponents2","MultiValue","MultiValueContainer","MultiValueLabel","MultiValueRemove","SingleValue","Placeholder","_this$props9","_this$state5","innerProps","opt","isOptionFocused","Label","Remove","ClearIndicator","_this$props10","LoadingIndicator","_this$props11","_this$getComponents5","DropdownIndicator","IndicatorSeparator","_this$getComponents7","Group","GroupHeading","MenuList","MenuPortal","LoadingMessage","NoOptionsMessage","Option","_this$props12","menuPortalTarget","onMenuScrollToTop","onMenuScrollToBottom","menuUI","onHover","onSelect","onMouseOver","hasOptions","_data","groupIndex","groupId","headingId","Heading","headingProps","_message","menuPlacementProps","menuElement","MenuPlacer","_ref4$placerProps","placerProps","scrollTargetRef","appendTo","controlElement","_this$props13","_value","_this$state6","_this$getComponents8","IndicatorsContainer","SelectContainer","ValueContainer","_this$props14","getCommonProps","renderLiveRegion","renderPlaceholderOrValue","renderInput","renderClearIndicator","renderLoadingIndicator","renderIndicatorSeparator","renderDropdownIndicator","renderMenu","renderFormField","newMenuOptionsState","nextSelectValue","lastFocusedIndex","getNextFocusedValue","lastFocusedOption","getNextFocusedOption","newInputIsHiddenState","newAriaSelection","hasKeptFocus","_excluded$4","applyPrefixToName","classNameList","cleanCommonProps","getStyleProps","classNamesState","_newValue","getScrollTop","pageYOffset","scrollTo","animatedScrollTo","to","duration","change","animateScroll","menuEl","focusedEl","menuRect","focusedRect","overScroll","offsetTop","createEvent","passiveOptionAccessed","propsObj","properties","_slicedToArray","_excluded$3","_excluded2$1","_templateObject","coercePlacement","_ref2$theme","_defineProperty","alignToControl","marginBottom","PortalPlacementContext","setPortalPlacement","setMaxHeight","_useState3","_useState4","setPlacement","isFixedPosition","preferredMaxHeight","minHeight","preferredPlacement","shouldScroll","scrollParent","excludeStaticParent","overflowRx","parentElement","overflowY","overflowX","getScrollParent","defaultState","offsetParent","_menuEl$getBoundingCl","menuBottom","menuHeight","menuTop","containerTop","viewHeight","innerHeight","viewSpaceAbove","viewSpaceBelow","scrollSpaceAbove","scrollSpaceBelow","scrollDown","scrollUp","scrollDuration","_constrainedHeight","spaceAbove","_constrainedHeight2","getMenuPlacement","WebkitOverflowScrolling","paddingBottom","paddingTop","noticeCSS","_ref5","_ref5$theme","textAlign","_ref8","alignSelf","_excluded$2","Svg","CrossIcon","DownChevron","baseCSS","_ref3$theme","_ref4$theme","loadingDotAnimations","defineProperties","marginRight","verticalAlign","LoadingDot","_ref6","marginLeft","_ref$theme","borderStyle","_excluded$1","textTransform","visibility","containerStyle","spacingStyle","font","gridTemplateColumns","inputStyle","cropWithEllipsis","MultiValueGeneric","userSelect","WebkitTapHighlightColor","indicator","_cleanCommonProps","indicators","inputClassName","_ref7","_ref7$size","menuPortalRef","cleanupRef","_useState5","_useState6","portalPlacementContext","_useState7","_useState8","computedPosition","setComputedPosition","updateComputedPosition","getBoundingClientObj","scrollDistance","runAutoUpdate","elementResize","setMenuPortalElement","menuPortalElement","menuWrapper","_ref7$children","_ref6$children","useAsync","_ref$defaultOptions","defaultOptions","propsDefaultOptions","_ref$cacheOptions","cacheOptions","propsLoadOptions","loadOptions","_ref$isLoading","propsIsLoading","propsOnInputChange","_ref$filterOption","restSelectProps","propsInputValue","lastRequest","mounted","setDefaultOptions","stateInputValue","setStateInputValue","setIsLoading","loadedInputValue","setLoadedInputValue","_useState9","_useState10","loadedOptions","setLoadedOptions","_useState11","_useState12","passEmptyOptions","setPassEmptyOptions","_useState13","_useState14","optionsCache","setOptionsCache","_useState15","_useState16","prevDefaultOptions","setPrevDefaultOptions","_useState17","_useState18","prevCacheOptions","setPrevCacheOptions","loader","useStateManager","_ref$defaultInputValu","defaultInputValue","_ref$defaultMenuIsOpe","defaultMenuIsOpen","_ref$defaultValue","propsMenuIsOpen","propsOnChange","propsOnMenuClose","propsOnMenuOpen","propsValue","stateMenuIsOpen","setStateMenuIsOpen","stateValue","setStateValue","__self","__source","escape","_status","default","toArray","PureComponent","act","_currentValue2","_threadCount","_defaultValue","_globalName","createFactory","createRef","isValidElement","lazy","memo","startTransition","unstable_act","MutationHandlers","handle","DeleteRecordHandler","DeleteEdgeHandler","AppendEdgeHandler","PrependEdgeHandler","AppendNodeHandler","PrependNodeHandler","generateClientID","getStableStorageKey","getRelayHandleKey","CONNECTION","NEXT_EDGE_INDEX","buildConnectionEdge","edge","edgeIndex","edgeID","getDataID","connectionEdge","getType","copyFieldsFrom","mergeEdges","sourceEdges","targetEdges","nodeIDs","NODE","getLinkedRecord","nodeID","createEdge","record","edgeType","setLinkedRecord","deleteNode","_ConnectionInterface$5","getLinkedRecords","nextEdges","setLinkedRecords","getConnection","filters","handleKey","getConnectionID","recordID","storageKey","insertEdgeAfter","newEdge","CURSOR","foundCursor","insertEdgeBefore","_ConnectionInterface$4","PAGE_INFO_TYPE","serverConnection","fieldKey","serverPageInfo","clientConnectionID","clientConnectionField","clientConnection","clientPageInfo","_connection","_serverEdges","prevEdges","prevPageInfo","after","_clientPageInfo","clientEndCursor","serverEndCursor","_nodeIDs","startCursor","endCursor","serverEdges","CONNECTION_CALLS","surrounds","newConfig","isConnectionCall","idOrIds","connections","handleArgs","connectionID","edgeUpdater","nodeUpdater","insertFn","singleServerEdge","_unused","_unused2","serverEdgeList","_loop","serverEdge","serverNode","_step3","serverNodeId","_iterator3","_connection$getLinked","_edge$getLinkedRecord","clientEdge","_serverNodes","singleServerNode","serverNodes","_payload$handleArgs","edgeTypeName","_unused3","_unused4","_step4","serverNodeList","_iterator4","_loop2","_step5","_iterator5","_connection$getLinked2","_edge$getLinkedRecord2","RelayDefaultHandlerProvider","RelayDeclarativeMutationConfig","RelayNetwork","RelayObservable","RelayQueryResponseCache","fetchQueryInternal","GraphQLTag","generateUniqueClientID","isClientID","isSuspenseSentinel","suspenseSentinel","normalizeResponse","RelayConcreteVariables","RelayModernEnvironment","RelayModernOperationDescriptor","RelayModernRecord","RelayModernSelector","RelayModernStore","RelayOperationTracker","RelayRecordSource","RelayStoreUtils","ResolverFragments","ViewerPattern","createPayloadFor3DField","RelayConcreteNode","RelayDefaultHandleKey","RelayError","RelayProfiler","RelayReplaySubject","stableCopy","withProvidedVariables","Environment","Network","QueryResponseCache","RecordSource","Record","Store","areEqualSelectors","createNormalizationSelector","createReaderSelector","createRequestDescriptor","getArgumentValues","getDataIDsFromFragment","getNode","getInlineDataFragment","getModuleComponentKey","getModuleOperationKey","getPaginationFragment","getPluralSelector","getRefetchableFragment","getSelectorsFromObject","getSingularSelector","getStorageKey","getVariablesFromPluralFragment","getVariablesFromSingularFragment","isInlineDataFragment","isRequest","DefaultHandlerProvider","VIEWER_ID","VIEWER_TYPE","DEFAULT_HANDLE_KEY","FRAGMENTS_KEY","FRAGMENT_OWNER_KEY","ID_KEY","REF_KEY","REFS_KEY","ROOT_ID","ROOT_TYPE","TYPENAME_KEY","OperationTracker","getOperationVariables","getLocalVariables","INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE","assertInternalActorIdentifier","actorIdentifier","getActorIdentifier","actorID","getDefaultActorIdentifier","ACTOR_IDENTIFIER_FIELD_NAME","getActorIdentifierFromPayload","RANGE_ADD","RANGE_DELETE","NODE_DELETE","APPEND","PREPEND","getRootField","selections","convert","configs","optimisticUpdater","configOptimisticUpdates","configUpdates","nodeDeleteResult","deletedIDFieldName","rootField","deleteID","nodeDelete","rangeAddResult","parentID","connectionInfo","edgeName","rangeBehavior","rangeAdd","rangeDeleteResult","connectionKeys","pathToConnection","deleteIDs","deletedIDField","eachField","idObject","recordProxy","rangeDelete","eachOptimisticUpdater","eachUpdater","RelayRecordProxy","mutator","_dataID","_mutator","copyFields","isValidLeafValue","setValue__UNSAFE","linkedID","getLinkedRecordID","setLinkedRecordID","getOrCreateLinkedRecord","typeName","linkedRecord","_this$_source$get","clientID","linkedIDs","getLinkedRecordIDs","records","setLinkedRecordIDs","invalidateRecord","markIDForInvalidation","EXISTENT","RelayRecordSourceMutator","__sources","_base","_sink","unstable_getRawRecordWithChanges","baseRecord","sinkRecord","_getSinkRecord","sourceID","sinkID","sinkSource","baseSource","copyFieldsFromRecord","getStatus","NONEXISTENT","_readUpdatableFragment","readUpdatableFragment","_readUpdatableQuery","readUpdatableQuery","RelayRecordSourceProxy","handlerProvider","missingFieldHandlers","__mutator","_handlerProvider","_proxies","_getDataID","_invalidatedStore","_idsMarkedForInvalidation","_missingFieldHandlers","publishSource","fieldPayloads","getRecordIDs","sourceRecord","fieldPayload","getRoot","invalidateStore","isStoreMarkedForInvalidation","getIDsMarkedForInvalidation","fragmentReference","RelayRecordSourceSelectorProxy","recordSource","readSelector","__recordSource","_readSelector","getOperationRoot","_getRootField","fieldName","field","selection","getPluralRootField","operationKind","optimisticResponse","applyMutation","commitUpdate","uploadables","_RelayDeclarativeMuta","executeMutation","ACTOR_CHANGE","ALIASED_FRAGMENT_SPREAD","ALIASED_INLINE_FRAGMENT_SPREAD","CLIENT_EDGE_TO_CLIENT_OBJECT","CLIENT_EDGE_TO_SERVER_OBJECT","CLIENT_EXTENSION","CONDITION","DEFER","FRAGMENT_SPREAD","INLINE_DATA_FRAGMENT_SPREAD","INLINE_FRAGMENT","LINKED_FIELD","MODULE_IMPORT","RELAY_LIVE_RESOLVER","RELAY_RESOLVER","REQUIRED_FIELD","SCALAR_FIELD","STREAM","nonUpdatableKeys","updateProxyFromSelections","mutableUpdatableProxy","updatableProxyRootRecord","recordSourceProxy","_selection$alias3","_selection$alias","alias","createGetterForPluralLinkedField","createSetterForPluralLinkedField","_selection$alias2","createGetterForSingularLinkedField","createSetterForSingularLinkedField","scalarFieldName","_selection$args","newVariables","getScalarUsingMissingFieldHandlers","_selection$args2","_selection$args3","recordProxies","newValueRecord","_selection$args4","_selection$args5","linkedRecords","newIds","newId","getPluralLinkedRecordUsingMissingFieldHandlers","updatableProxy","_selection$args6","getLinkedRecordUsingMissingFieldHandlers","createUpdatableProxy","proxy","updatableFragment","fragmentRoot","updatableData","getUpdatableQuery","updatableQuery","CLIENT_COMPONENT","LINKED_HANDLE","SCALAR_HANDLE","TYPE_DISCRIMINATOR","convertFetch","logRequestInfo","observeFetch","operationVariables","providedVariables","pollInterval","poll","hostReportError","_isUncaughtThrownError","onUnhandledError","isObservable","fromObservable","fromPromise","fromValue","sub","_error2","error2","both","closed","withClosed","doCleanup","_error3","isUncaughtThrownError","_subscribe","mapValue","subscriptions","_sub","timeout","toPromise","_this9","reject","resolved","ttl","_responses","_size","_ttl","queryID","getCacheKey","fetchTime","extensions","cacheTimestamp","generateID","env","network","networkRequestId","logObserver","FRAGMENT","REQUEST","isUpdatableQuery","UPDATABLE_QUERY","INLINE_DATA_FRAGMENT","_fragment$metadata","_fragment$metadata2","preloadableQueryRegistry","_preloadableQueries","_callbacks","callbacks","_this$_callbacks$get","getNetworkObservable","queryNode","readData","requestCachesByEnvironment","getRequestCache","cachedRequest","subjectForInFlightStatus","cachedReq","getCachedRequest","cachedRequestInstance","getObserverCount","getObservableForCachedRequest","getActiveStatusObservableForCachedRequest","isRequestActive","resolveOnNext","intern","PREFIX","localID","STRING_INTERN_LEVEL","MAX_DATA_ID_LENGTH","generateClientObjectClientID","typename","localId","getOperation","cloneRelayHandleSourceField","cloneRelayScalarHandleSourceField","UNKNOWN","TYPE_SCHEMA_TYPE","generateTypeID","DataChecker","getSourceForActor","getTargetForActor","defaultActorIdentifier","handlers","operationLoader","shouldProcessClientComponents","_getSourceForActor","_getTargetForActor","_mutatorRecordSourceProxyCache","_this$_getMutatorAndR","_getMutatorAndRecordProxyForActor","_mostRecentlyInvalidatedAt","_handlers","_operationLoader","_recordSourceProxy","_recordWasMissing","_variables","_shouldProcessClientComponents","tuple","_assignClientAbstractTypes","_traverse","mostRecentlyInvalidatedAt","_getVariableValue","_handleMissing","_handleMissingScalarField","_handleMissingLinkField","_handleMissingPluralLinkField","invalidatedAt","getInvalidationEpoch","_traverseSelections","_checkScalar","_checkPluralLink","_checkLink","_checkActorChange","linkedField","passingValue","_abstractKey","abstractKey","_recordType","_typeID","_implementsInterface","handleField","_handleField","_checkModuleImport","prevVariables","argumentDefinitions","recordWasMissing","recordType","typeID","_checkResolver","backingField","moduleImport","operationKey","documentName","operationReference","normalizationRootNode","fieldValue","getActorLinkedRecordID","prevSource","prevMutator","prevRecordSourceProxy","_this$_getMutatorAndR2","clientAbstractTypes","_Object$keys","abstractType","concreteType","withDuration","Executor","getPublishQueue","isClientPayload","operationExecutions","operationTracker","optimisticConfig","scheduler","treatMissingFieldsAsNull","_actorIdentifier","_treatMissingFieldsAsNull","_incrementalPayloadsPending","_incrementalResults","_log","_executeId","_nextSubscriptionId","_operation","_operationExecutions","_operationTracker","_operationUpdateEpochs","_optimisticUpdates","_pendingModulePayloadsCount","_getPublishQueue","_scheduler","_state","_getStore","_subscriptions","_updater","_isClientPayload","_isSubscriptionOperation","_retainDisposables","_seenActors","_completeFns","_normalizeResponse","_complete","_next","_this$_operation$requ","_start","executeId","_processOptimisticResponse","optimisticUpdates","_getPublishQueueAndSaveActor","revertUpdate","_runPublishQueue","_asyncStoreUpdateDisposable","_completeOperationTracker","_disposeRetainedData","_updateActiveState","activeState","_schedule","task","cancellationToken","schedule","_id","_handleNext","_maybeCompleteSubscriptionOperationTracking","_handleErrorResponse","responses","results","responseWithData","_handleOptimisticResponses","_response$extensions","responsePart","_responsePart$extensi","isOptimistic","responsesWithData","_x$extensions","is_final","_partitionGraphQLResp","nonIncrementalResponses","incrementalResponses","partitionGraphQLResponses","hasNonIncrementalResponses","payloadFollowups","_processResponses","_processPayloadFollowups","_payloadFollowups","_processIncrementalResponses","__relay_subscription_root_id","updatedOwners","_retainData","_updateOperationTracker","validateOptimisticResponsePayload","_processOptimisticFollowups","incrementalPlaceholders","followupPayloads","isFinal","applyUpdate","ENABLE_OPERATION_TRACKER_OPTIMISTIC_UPDATES","followupPayload","_expectOperationLoader","_processAsyncOptimisticModuleImport","moduleImportOptimisticUpdates","_processOptimisticModuleImport","_normalizeFollowupPayload","normalizationNode","moduleImportPayload","modulePayload","_this$_optimisticUpda","payloadPart","relayPayload","commitPayload","payloads","_followupPayload$acto","prevActorIdentifier","_processFollowupPayload","incrementalPlaceholder","_incrementalPlacehold","_processIncrementalPlaceholder","relayPayloads","_processDeferResponse","_this10","_processFollowupPayloadWithNormalizationNode","decrementPendingCount","loadedNode","publishModuleImportPayload","batchAsyncModuleUpdatesFN","BATCH_ASYNC_MODULE_UPDATES_FN","shouldScheduleAsyncStoreUpdate","_handleFollowupPayload","_scheduleAsyncStoreUpdate","operationName","_error4","_relayPayload$fieldPa","pathKey","resultForLabel","resultForPath","pendingResponses","nextParentRecord","nextParentPayloads","parentRecord","parentPayloads","fieldID","previousParentEntry","handlePayloads","dedupePayload","_JSON$stringify","_this11","incrementalResponse","_pathKey","_resultForPath","_placeholder","_processStreamResponse","_placeholder$actorIde","parentEntry","_response$extensions2","handleFieldsRelayPayload","_this$_normalizeStrea","_normalizeStreamItem","itemID","itemIndex","currentParentRecord","currentItems","currentItem","nextItems","normalizationPath","_field$alias","_field$concreteType","_this$_getDataID","responseKey","finalPathEntry","scheduleFn","completeFn","_this12","_getActorsToVisit","run","currentVariables","nextVariables","nextArgs","def","_nextArgs$def$name","argumentVariables","definition","varName","_wrapNativeSuper2","SELF","RelayFieldError","_Error","recursivelyCopyErrorsIntoArray","trieOrSet","_step2$value","childKey","oldLength","newLength","buildErrorTrie","ENABLE_FIELD_ERROR_HANDLING","trie","_step$value","locations","currentTrie","existingValue","lastKey","getNestedErrorTrieByKey","getErrorsByKey","wrapNetworkWithLogObserver","registerEnvironmentWithDevTools","defaultGetDataID","defaultRelayFieldLogger","OperationExecutor","RelayPublishQueue","_config$log","_config$relayFieldLog","_config$UNSTABLE_defa","_config$getDataID","_config$missingFieldH","_config$handlerProvid","_config$scheduler","_config$isServer","_config$normalizeResp","_config$operationTrac","configName","relayFieldLogger","_defaultRenderPolicy","UNSTABLE_defaultRenderPolicy","_network","_publishQueue","_store","_isServer","__setNet","newNet","getOperationTracker","getScheduler","requestIdentifier","optimisticUpdate","_scheduleUpdates","replaceUpdate","newUpdate","_execute","createSource","operationHasClientAbstractTypes","_checkSelectorAndHandleMissingFields","getSource","commitSource","executeSubscription","toJSON","_this$configName","publishQueue","executor","RelayModernFragmentSpecResolver","_stale","_callback","_fragments","_resolvers","_rootIsQueryRenderer","disposeCallback","prevItem","nextItem","_nextItem","ownedSelectors","ownedSelector","SelectorListResolver","_onChange","setSelector","SelectorResolver","subscribeOnConstruction","_isMissingData","_missingRequiredFields","_errorResponseFields","_relayResolverErrors","_selector","_subscription","_pendingOperationsRes","_subscribeOnConstruction","_proto3","_toPropertyKey2","ACTOR_IDENTIFIER_KEY","ERRORS_KEY","INVALIDATED_AT_KEY","RELAY_RESOLVER_VALUE_KEY","setErrors","errorsByStorageKey","otherStorageKey","fromObject","json","getErrors","_record$ERRORS_KEY","getFields","maybeLink","links","hasLinkedRecordID","hasLinkedRecordIDs","merge","record1","record2","errors1","fields1","errors2","fields2","updated","updatedErrors","_storageKey3","_storageKey","prevRecord","nextRecord","_updated2","prevErrorsByKey","nextErrorsByKey","_updated","_storageKey2","nextValue","nextErrors","prevValue","prevErrors","setActorLinkedRecordID","getResolverLinkedRecordID","getResolverLinkedRecordIDs","resolverValue","CLIENT_EDGE_TRAVERSAL_PATH","FRAGMENT_POINTER_IS_WITHIN_UNMATCHED_TYPE_REFINEMENT","mixedOwner","mixedClientEdgeTraversalPath","clientEdgeTraversalPath","ids","itemVariables","areEqualSingularSelectors","thisSelector","thatSelector","thisOwner","thatOwner","ENABLE_STRICT_EQUAL_SELECTORS","isWithinUnmatchedTypeRefinement","thisPath","thatPath","readerClientEdge","areEqualClientEdgeTraversalPaths","resolveImmediate","RelayOptimisticRecordSource","RelayReader","RelayReferenceMarker","RelayStoreSubscriptions","RecordResolverCache","_options$gcReleaseBuf","_options$gcScheduler","_options$getDataID","_options$log","_options$operationLoa","_gcRun","_gcScheduler","_gcStep","_currentWriteEpoch","_gcHoldCounter","_gcReleaseBufferSize","gcReleaseBufferSize","gcScheduler","_globalInvalidationEpoch","_invalidationSubscriptions","_invalidatedRecordIDs","_queryCacheExpirationTime","queryCacheExpirationTime","_optimisticSource","_recordSource","_releaseBuffer","_roots","_shouldScheduleGC","_resolverCache","_getMutableRecordSource","_storeSubscriptions","_updatedRecordIDs","rootRecord","initializeRecordSource","_this$_optimisticSour","_this$_optimisticSour2","_options$handlers","_options$getSourceFor","_options$getTargetFor","_options$defaultActor","globalInvalidationEpoch","rootEntry","operationLastWrittenAt","epoch","operationFetchTime","getAvailabilityStatus","refCount","scheduleGC","notify","sourceOperation","ENABLE_RELAY_RESOLVERS","invalidateDataIDs","updateSubscriptions","_updateInvalidationSubscription","updatedRecordIDs","invalidatedRecordIDs","temporaryRootEntry","publish","idsMarkedForInvalidation","currentWriteEpoch","targetRecord","updateTargetFromSource","optimistic","holdGC","__getUpdatedRecordIDs","invalidations","_RelayModernRecord$ge","checkInvalidationState","prevInvalidationState","currentInvalidations","prevInvalidations","invalidatedStore","snapshotSubscriptions","restore","restoreSubscriptions","_collect","__gc","gcRun","startEpoch","references","mark","storeIDs","remove","_ownersToPendingOperations","_pendingOperationsToOwners","_ownersToPendingPromise","pendingOperation","affectedOwners","pendingOperationIdentifier","newlyAffectedOwnersIdentifier","ownerIdentifier","pendingOperationsAffectingOwner","ownersAffectedByPendingOperation","_ownerIdentifier","_resolveOwnerResolvers","affectedOwnersIdentifier","completedOwnersIdentifier","updatedOwnersIdentifier","_ownerIdentifier2","_ownerIdentifier3","promiseEntry","getPendingOperationsAffectingOwner","pendingOperationsForOwner","cachedPromiseEntry","UNPUBLISH_RECORD_SENTINEL","__UNPUBLISH_RECORD_SENTINEL","merged","getOptimisticRecordIDs","_global$ErrorUtils$ap","_global$ErrorUtils","_global","applyWithGuard","ErrorUtils","_hasStoreSnapshot","_pendingBackupRebase","_pendingData","_pendingOptimisticUpdates","_appliedOptimisticUpdates","_gcHold","revertAll","runWillClearGcHold","_commitData","_applyUpdates","_publishSourceFromPayload","pendingPayload","lookupSelector","payloadInvalidatedStore","processUpdate","storeUpdater","selectorData","recordSourceSelectorProxy","FRAGMENT_PROP_NAME_KEY","MODULE_COMPONENT_KEY","NoopResolverCache","_require5","RESOLVER_FRAGMENT_MISSING_DATA_SENTINEL","withResolverContext","resolverCache","_selector$clientEdgeT","_clientEdgeTraversalPath","_missingClientEdges","_missingLiveResolverFields","_isWithinUnmatchedTypeRefinement","_seenRecords","_resolverErrors","_fragmentName","_updatedDataIDs","_this$_selector","isDataExpectedToBePresent","implementsInterface","notifyUpdatedSubscribers","_maybeAddErrorResponseFields","_error$path","_markDataAsMissing","_maybeReportUnexpectedNull","fieldPath","_this$_missingRequire","fields","_readRequiredField","_readScalar","_readPluralLink","_readLink","_readInlineFragment","_readResolverField","_createFragmentPointer","_createAliasedFragmentSpread","_fieldValue","_readModuleImport","_createInlineDataOrResolverFragmentPointer","alreadyMissingClientEdges","_hasExpectedData","_readActorChange","_readClientEdge","parentRecordID","_readResolverFieldImpl","getDataForResolverFragment","singularReaderSelector","_this$_resolverCache$","readFromCacheOrEvaluate","_getResolverValue","getResolverValue","resolverResult","resolverError","_getResolverValue2","seenRecord","cachedSnapshot","suspenseID","updatedDataIDs","_propogateResolverMetadata","_addMissingRequiredFields","missing","missingResolverField","_backingField$alias","applicationName","backingFieldData","clientEdgeResolverResponse","validClientEdgeResolverResponse","extractIdFromResponse","assertValidClientEdgeResolverResponse","normalizationInfo","ensureClientRecord","getStoreIDsForPluralClientEdgeResolver","validStoreIDs","modelResolver","storeID","edgeValues","_readLinkedIds","_getStoreIDAndTravers","getStoreIDAndTraversalPathSegmentForSingularClientEdgeResolver","traversalPathSegment","edgeValue","_field$alias2","_field$alias3","_field$alias4","externalRef","fragmentSpread","__fragmentRef","__viewer","_field$alias5","linkedArray","nextIndex","componentKey","fragmentPropName","namedFragmentSpread","fieldData","inlineFragment","parentIsMissingData","parentIsWithinUnmatchedTypeRefinement","fragmentPointers","fragmentSpreadOrFragment","inlineData","parentFragmentName","additional","typeRecord","resolverFunction","resolverModule","resolverFunctionArgs","individualResponse","errorMessage","RelayRecordState","_records","getOutputTypeRecordIDs","_operationName","_references","_traverseLink","_traversePluralLink","_typeName","_typeName2","_traverseModuleImport","_traverseResolverField","_traverseClientEdgeToClientObject","resolverRecord","isOutputType","outputTypeRecordIDs","_dataID2","_dataID3","_require7","getHandleStorageKey","_require8","RelayResponseNormalizer","_getDataId","_handleFieldPayloads","_incrementalPlaceholders","_isClientExtension","_isUnmatchedAbstractType","_followupPayloads","_path","_errorTrie","_getRecordType","_normalizeField","_typeRecord","_normalizeModuleImport","_normalizeDefer","_normalizeStream","isClientExtension","_normalizeActorChange","_normalizeResolver","defer","stream","componentReference","componentModuleProvider","operationModuleProvider","oldErrorTrie","_normalizePluralLink","_normalizeLink","errorTrie","_field$concreteType2","_field$concreteType3","_validateRecordType","_field$concreteType4","_validateConflictingFieldsWithIdenticalId","_validateConflictingLinkedFieldsWithIdenticalId","prevID","normalize","hasOverlappingIDs","hasSignificantOverlappingIDs","backup","stale","hasUpdatedRecords","_updateSubscription","hasOverlappingUpdates","nextSnapshot","ENABLE_NOTIFY_SUBSCRIPTION","ENABLE_LOOSE_SUBSCRIPTION_ATTRIBUTION","VARIABLE","LITERAL","OBJECT_VALUE","LIST_VALUE","getArgumentValue","getStableVariableValue","variableName","formatStorageKey","argValues","argName","RELAY_RESOLVER_INVALIDATION_KEY","RELAY_RESOLVER_SNAPSHOT_KEY","RELAY_RESOLVER_ERROR_KEY","RELAY_RESOLVER_OUTPUT_TYPE_RECORD_IDS","dynamicKey","handleName","filterArgs","_field$fragment2","_field$fragment","getArguments","shallowFreeze","emptySet","evaluate","_evaluate","addDependencyEdge","getRecordSource","_resolverIDToRecordIDs","_recordIDToResolverIDs","_getRecordSource","_isInvalid","_linkedID","evaluationResult","ENABLE_SHALLOW_FREEZE_RESOLVER_VALUES","currentRecord","_evaluationResult$sna","fragmentStorageKey","resolverID","seenRecordIds","seenRecordID","answer","visited","recordsToVisit","_this$_recordIDToReso","_this$_resolverIDToRe","anotherRecordID","_markInvalidatedResolverRecord","originalInputs","readerSelector","latestValues","contextStack","readFragment","_context$getDataForRe","isTypeID","sourceField","firstReact","react","LIVE_RESOLVER_SUSPENSE_SENTINEL","__LIVE_RESOLVER_SUSPENSE_SENTINEL","maybeOutputTypeRecordIDs","ITERATOR_KEY","_RelayModernRecord","_RelayRecordSource","_RelayResponseNormalizer","_fragmentRef$FRAGMENT","inlineDataFragment","_responses$","_responses$$extension","_responses$extensions","LOCAL_ARGUMENT","OPERATION","ROOT_ARGUMENT","SPLIT_OPERATION","createError","messageFormat","messageParams","taalOpcodes","createWarning","_len3","_key3","ENABLE_VARIABLE_CONNECTION_KEY","ENABLE_GETFRAGMENTIDENTIFIER_OPTIMIZATION","ENABLE_FRIENDLY_QUERY_NAME_GQL_URL","ENABLE_DO_NOT_WRAP_LIVE_QUERY","ENABLE_FIELD_ERROR_HANDLING_THROW_BY_DEFAULT","ENABLE_FIELD_ERROR_HANDLING_CATCH_DIRECTIVE","profileHandlersByName","defaultProfiler","stop","profile","stopHandlers","stopHandler","attachProfileHandler","detachProfileHandler","_observable","_sinks","_events","internTable","digits","initDigitTable","limit","internedString","isFrozen","isEmptyObject","fragmentOwnerIdentifier","sel","_ids","refetchMetadata","_objectSpread4","backwardMetadata","backward","forwardMetadata","_paginationVariables","_pendingOperations$ma","_pendingOperations","_result$pendingOperat","_result$promise","pendingOperationName","op","promiseDisplayName","fragmentPathInResult","requestID","_RelayErrorTrie","_RelayFeatureFlags","fieldError","_missingRequiredField","valueA","valueB","recycleNodesIntoImpl","canMutate","canRecycle","prevArray","nextArray","canMutateNext","wasEqual","prevObject","nextObject","prevKeys","nextKeys","_canMutateNext","devToolsHook","__RELAY_DEVTOOLS_HOOK__","registerEnvironment","resolvedPromise","throwNext","stable","_window","_window$performance","isPerformanceNowAvailable","currentTimestamp","startTime","debugCache","userSuppliedVariables","providerFunction","providerResult","cachedResult","tests_only_resetDebugCache","sortIndex","setImmediate","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","styleObject","inline_style_parser_1","hasIterator","__importDefault","candidateSelectors","candidateSelector","NoElement","msMatchesSelector","webkitMatchesSelector","_element$getRootNode","isInert","lookUp","_node$getAttribute","inertAtt","getCandidates","includeContainer","candidates","getCandidatesIteratively","elementsToCheck","assigned","assignedElements","nestedCandidates","flatten","scopeParent","validShadowRoot","shadowRootFilter","_nestedCandidates","hasTabIndex","_node$getAttribute2","attValue","isContentEditable","sortOrderedTabbables","documentOrder","isInput","isZeroArea","_node$getBoundingClie","isNodeMatchingSelectorFocusable","isHiddenInput","nodeUnderDetails","originalNode","assignedSlot","_nodeRoot","_nodeRootHost","_nodeRootHost$ownerDo","_node$ownerDocument","nodeRoot","nodeRootHost","attached","_nodeRoot2","_nodeRootHost2","_nodeRootHost2$ownerD","isNodeAttached","getClientRects","isDetailsWithSummary","isDisabledFromFieldset","isNodeMatchingSelectorTabbable","isRadio","radioSet","radioScope","queryRadios","CSS","getCheckedRadio","isTabbableRadio","isNonTabbableRadio","isValidShadowRootTabbable","shadowHostNode","sortByOrder","regularTabbables","orderedTabbables","isScope","candidateTabindex","getSortOrderTabIndex","sortable","focusableCandidateSelector","GlobalStyle","CSS_RESETS","GLOBAL_STYLE","BREAKPOINT_SMALL","BREAKPOINT_MEDIUM","scrollBehavior","accentColor","COLORS","primary0","WebkitTextSizeAdjust","textDecorationSkipInk","fontFamily","h1","h2","h3","primary1","isRealUser","UserContext","useUser","UserProvider","user","userDataFragment","_UserData","primary0BwInverted","primary1BwInverted","primary2","primary2BwInverted","happy0","happy0BwInverted","happy1","happy1BwInverted","happy2","happy2BwInverted","ID","CONFIG","parseConfig","getElementById","HTMLScriptElement","consoleLogger","warn","Logger","concreteLogger","logger","debug","deprecate","_len4","_key4","lvl","debugOnly","moduleName","baseLogger","EventEmitter","observers","numListeners","numTimesAdded","rej","makeString","lastOfPathSeparatorRegExp","cleanKey","canNotTraverseDeeper","getLastOfPath","Empty","stackIndex","setPath","getPath","deepExtend","overwrite","regexEscape","_entityMap","chars","looksLikeObjectPathRegExpCache","regExpMap","regExpQueue","getRegExp","regExpFromCache","regExpNew","deepFind","keySeparator","tokens","nextPath","getCleanedCode","ResourceStore","ns","defaultNS","super","ignoreJSONStructure","addNamespaces","removeNamespaces","getResource","lng","addResource","addResources","resources","addResourceBundle","skipCopy","pack","removeResourceBundle","hasResourceBundle","getResourceBundle","compatibilityAPI","getDataByLanguage","hasLanguageSomeTranslations","postProcessor","processors","addPostProcessor","translator","processor","process","checkedLoadedFor","Translator","services","changeLanguage","language","exists","extractFromKey","nsSeparator","namespaces","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","looksLikeObjectPath","possibleChars","matched","interpolator","nestingRegexp","parts","translate","overloadTranslationOptionHandler","returnDetails","namespace","appendNamespaceToCIMode","usedKey","exactUsedKey","usedLng","usedNS","usedParams","getUsedParamsDetails","resUsedKey","resExactUsedKey","resType","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","defaultValueSuffixOrdinalFallback","ordinal","needsZeroSuffixLookup","shouldUseIntlApi","pluralSeparator","isValidLookup","resForMissing","missingKeyNoValueFallbackToKey","updateMissing","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","send","specificDefaultValue","defaultForMissing","missingKeyHandler","backendConnector","saveMissing","saveMissingPlurals","suffixes","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","defaultVariables","skipInterpolation","skipOnVariables","nestBef","interpolate","nest","reset","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","found","extracted","fallbackNS","needsContextHandling","codes","utils","hasLoadedNamespace","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","ordinalPrefix","contextKey","contextSeparator","possibleKey","returnNull","returnEmptyString","resourceStore","optionsKeys","useOptionsReplaceForData","capitalize","LanguageUtil","supportedLngs","getScriptPartFromCode","formatLanguageCode","getLanguagePartFromCode","specialCases","lowerCaseLng","part","cleanCode","isSupportedCode","nonExplicitSupportedLngs","getBestMatchFromCodes","cleanedLng","lngOnly","supportedLng","fallbacks","fallbackCode","fallbackCodes","addCode","sets","nr","_rulesPluralsTypes","nonIntlVersions","intlVersions","suffixesOrder","zero","one","two","few","many","other","PluralResolver","compatibilityJSON","Intl","PluralRules","createRules","numbers","plurals","pluralRulesCache","addRule","clearCache","getRule","cleanedCode","needsPlural","resolvedOptions","pluralCategories","getPluralFormsOfKey","pluralCategory1","pluralCategory2","pluralCategory","getSuffixRetroCompatible","noAbs","simplifyPluralSuffix","returnSuffix","deepFindWithDefaults","defaultData","getPathWithDefaults","regexSafe","Interpolator","escapeValue","escape$1","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapeSuffix","unescapePrefix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","getOrResetRegExp","existingRegExp","regexp","regexpUnescape","replaces","handleFormat","interpolationkey","missingInterpolationHandler","regex","safeValue","todo","matchedVar","temp","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","formatters","doReduce","createCachedFormatter","optForCache","formatParams","formatter","Formatter","formats","NumberFormat","currency","DateTimeFormat","relativetime","RelativeTimeFormat","ListFormat","iOpts","addCached","mem","formatName","formatOptions","formatStr","optStr","trimmedKey","parseFormatStr","formatted","valOptions","Connector","backend","waitingReads","maxParallelReads","readingCalls","maxRetries","retryTimeout","queueLoad","languages","toLoad","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","pendingCount","loaded","pushPath","removePending","loadedKeys","fcName","tried","wait","prepareLoading","loadOne","fallbackValue","isUpdate","clb","opts","initImmediate","preload","partialBundledLanguages","tDescription","transformOptions","I18n","inst","modules","external","isInitialized","isClone","isInitializing","defOpts","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","deferred","finish","initializedStoreOnce","loadResources","usedCallback","resolvedLanguage","setResolvedLanguage","reloadResources","use","lngInLngs","isLanguageChangingTo","setLngProps","setLng","cacheUserLanguage","async","detect","getFixedT","keyPrefix","fixedT","resultKey","setDefaultNamespace","lastLng","loadNotPending","loadState","precheck","preResult","loadNamespaces","loadLanguages","preloaded","newLngs","dir","createInstance","cloneInstance","forkResourceStore","fieldContentRegExp","cookie","minutes","domain","cookieOptions","sameSite","expires","setTime","getTime","serializeCookie","maxAge","toUTCString","httpOnly","secure","nameEQ","cookie$1","lookupCookie","cookieMinutes","cookieDomain","querystring","lookupQuerystring","hasLocalStorageSupport","localStorageAvailable","testKey","removeItem","lookupLocalStorage","hasSessionStorageSupport","sessionStorageAvailable","sessionStorage","lookupSessionStorage","navigator$1","userLanguage","htmlTag","internalHtmlTag","lookupFromPathIndex","pathname","subdomain","lookupFromSubdomainIndex","internalLookupFromSubdomainIndex","hostname","Browser","detectors","i18nOptions","defaults","caches","excludeCacheFor","convertDetectedLanguage","lookupFromUrlIndex","addDetector","detector","detectionOrder","detected","detectorName","cacheName","en","translation","general","language_one","language_other","loading","home","homepage","page","save","back","share","yes","no","welcome","unknown","embedded","actions","description","footer","auto","login","logout","heading","video","created","upcoming","ended","license","started","starts","rss","caption","download","presenter","slides","manage","ends","main","playlist","series","deleted","unauthorized","unauthorized_one","unauthorized_other","missing_one","missing_other","videos","original","layout","gallery","slider","realm","unavailable","upload","reselect","starting","finishing","seconds","hours","finished","acl","groups","admins","everyone","access","users","table","yourself","inherited","write","moderate","admin","unlisted","note","explanation","confirm","dashboard","navigation","ascending","descending","details","failed","tracks","audio","synced","permissions","edit","invalid","i18n","initReactI18next","LanguageDetector","transKeepBasicHtmlNodesFor","Footer","useTranslation","_css","footerLinks","entry","Link","AboutRoute","htmlLink","translatedConfig","toggleMenu","MenuContext","useMenu","MenuProvider","BREAKPOINT","Nav","fragRef","_NavigationData","isUserRoot","isMainRoot","hasRealmParent","sortRealms","childOrder","LinkWithIcon","SIDE_BOX_BORDER_RADIUS","MissingRealmName","borderLeft","borderRight","LinkList","Item","ellipsisOverflowCss","BurgerMenu","hide","nav","MAIN_PADDING","Root","navElements","navExists","Outer","disableScrolling","Header","hideNavIcon","Main","NAV_BREAKPOINT","SideBox","OUTER_CONTAINER_MARGIN","InitialLoading","pulsing","RootLoader","RootLoaderImpl","noindex","useNoindexTag","userData","currentUser","v0","v1","v2","SearchField","variant","router","useRouter","debounce","useDebounce","handleShortcut","ev","iconStyle","lastTimeout","onSearchRoute","isSearchActive","getSearchParam","searchParameter","searchParams","URLSearchParams","expression","itemType","isValidSearchItemType","goto","SearchRoute","isTransitioning","handleNavigation","Logo","logo","largeDark","smallDark","invertLargeDark","invertSmallDark","alt","siteTitle","invertCss","HEADER_BASE_PADDING","resolution","UserBox","iconCss","boxContent","LoggedOut","LoggedIn","LanguageSettings","ColorSchemeSettings","LoginLink","svg","ICON_STYLE","span","currentPref","menuItems","choice","ActionIcon","isCurrentLanguage","logoutState","setLogoutState","deleteSession","keepalive","auth","logoutLink","indent","ManageRoute","canCreateUserRealm","username","ManageVideosRoute","canUpload","UploadRoute","canUseStudio","ExternalLink","service","idle","usesTobiraSessions","menuProps","polyline","loginMode","DefaultMode","SearchMode","burger","OpenMenuMode","LoginMode","ButtonContainer","buttonOutline","PageTitle","useTitle","makeRoute","Listeners","callAll","makeRouter","debugLog","history","replaceState","scrollY","pushState","updateScrollPos","shouldPreventNav","useRouterImpl","listenAtNav","atNav","listenBeforeNav","beforeNav","uri","replaceEntry","URL","baseURI","newRoute","matchRoute","setActiveRoute","route","initialScroll","internalOrigin","routes","matchInitialRoute","ActiveRoute","scroll","activeRoute","Router","initialRoute","setActiveRouteRaw","isPending","navigatedAway","ignoreNextPop","onPopState","newIndexRaw","newIndex","go","timer","scrollRestoration","contextData","EDITOR","opencast","editorUrl","STUDIO","studioUrl","serviceUrl","preAuthExternalLinks","LinkButton","redirect","jwt","getJwt","submit","out","gotResult","_authJwtQuery","NotJson","inner","ServerError","statusText","APIError","headers","NetworkError","gqlResponse","hasErrors","relayLoadQuery","_ChildOrderEditData","_ChildOrderMutation","ChildOrder","initialSortOrder","sortOrder","setSortOrder","setChildren","anyChange","commitError","setCommitError","commit","isInFlight","SortOrderOption","sortedChildren","ChildList","swap","indices","displayCommitError","_ref9","ChildEntry","numChildren","realmName","_ref11","_ref10","borderTopLeftRadius","borderBottomLeftRadius","_GeneralRealmData","renameMutation","_GeneralRealmRenameMutation","General","nameSource","NameForm","_ref12","initial","__typename","register","handleSubmit","watch","formState","useForm","defaultValues","plain","validation","isPlain","canSave","name-from-block","plain-name","suitableBlocks","blocks","Form","PathSegmentInput","spinner","endsWith","_DangerZoneRealmData","DangerZone","Section","ChangePath","RemoveRealm","changePathMutation","_DangerZoneChangePathMutation","pathSegmentRegex","currentPathSegment","typedPathSegment","pathSegment","newPath","ManageRealmRoute","realmPath","failure","realmValidations","removeRealmMutation","_DangerZoneRemoveRealmMutation","numberOfDescendants","Trans","i18nKey","numSubPages","typedResponse","removeRealm","failedAction","AddButtons","AddButtonsMenu","menuId","realmId","_AddButtonsRealmData","addBlock","prepareBlock","buttonProps","AddItem","Icon","ButtonGroup","borderTopRightRadius","RemoveButton","blockRef","onConfirm","nameSourceBlock","_RemoveButtonData","_RemoveButtonMutation","cannotDeleteModalRef","MoveButtons","onCommit","_MoveButtonsData","commitMove","_MoveButtonsMutation","indexA","indexB","EditButtons","realmRef","onEdit","_EditButtonsRealmData","BaseButtonGroup","float","borderBottomRightRadius","_EditBlockUpdateRealmNameData","EditTitleBlock","_TitleEditModeBlockData","useFormContext","_TitleEditSaveMutation","_TitleEditCreateMutation","EditModeForm","EditTextBlock","_TextEditModeBlockData","_TextEditSaveMutation","_TextEditCreateMutation","TextArea","VideoListFormFields","showTitle","showMetadata","allowOriginalOrder","optionProps","rowGap","columnGap","DisplayOptionGroup","EditSeriesBlock","_SeriesEditModeBlockData","_SeriesEditSaveMutation","_SeriesEditCreateMutation","seriesField","useController","canFindUnlisted","InfoTooltip","VideoListSelector","syncedData","EditVideoBlock","showLink","_VideoEditModeBlockData","_VideoEditSaveMutation","_VideoEditCreateMutation","currentEvent","seriesTitle","Controller","EventSelector","_VideoEditModeSearchQuery","SearchableSelect","loadEvents","ErrorDisplay","formatOption","MovingTruck","Thumbnail","audioOnly","Creators","creators","EditPlaylistBlock","_PlaylistEditModeBlockData","_PlaylistEditSaveMutation","_PlaylistEditCreateMutation","playlistField","EditModeFormContext","EditMode","_EditModeRealmData","FormProvider","TitleBlock","TextBlock","SeriesBlock","VideoBlock","PlaylistBlock","onSave","onCancel","isDirty","handleOnCancel","useOnOutsideClick","_EditModeFormRealmData","EditModeButtons","EditBlock","_BlockRealmData","editMode","onBlockCommit","onBlockCompleted","onBlockError","relayEnv","setEditMode","cleanUp","Block","PATH","ManageRealmContentRoute","RealmEditLinks","canCurrentUserModerate","ManageContent","NotAuthorized","PathInvalid","_ContentManageQuery","ContentManageQueryContext","_ContentManageRealmData","onCommitted","editedBlock","hasUnsavedChanges","useNavBlocker","blockRefs","behavior","breadcrumbs","realmBreadcrumbs","RealmSettingsContainer","Breadcrumbs","AddChildRoute","AddChild","_AddChildQuery","addChildMutation","_AddChildMutation","nameFieldId","pathFieldId","addRealm","validations","htmlFor","illegalChars","ILLEGAL_CHARS","reservedChars","RESERVED_CHARS","_RealmPermissionsData","RealmPermissions","knownRoles","knownRolesFragment","ownerDisplayName","saveModalRef","initialAcl","inheritedAcl","ownAcl","setSelections","_RealmPermissionsMutation","mapSelections","moderatorRoles","adminRoles","AclSelector","addAnonymous","permissionLevels","MODERATE_ADMIN_ACTIONS","AclEditButtons","userIsOwner","SettingsPage","_RealmManageQuery","isCurrentUserPageAdmin","CenteredContent","InvalidUrlRoute","decodeURIComponent","URIError","InvalidUrl","_InvalidUrlQuery","ErrorPage","ManageVideoAccessRoute","makeManageVideoRoute","AclPage","ManageVideoDetailsRoute","videoId","hostRealms","UnlistedNote","AccessUI","READ_WRITE_ACTIONS","DirectPlaylistOCRoute","ocID","opencastId","_PlaylistByOpencastIdQuery","rootRealm","PlaylistPage","playlistFrag","DirectPlaylistRoute","playlistId","keyOfId","b64regex","_PlaylistByIdQuery","_PlaylistRouteData","PlaylistBlockFromPlaylist","basePath","NotFound","RautaLink","NotFoundRoute","BlockEmbedRoute","LoginRoute","RealmRoute","OpencastVideoRoute","VideoRoute","DirectVideoRoute","DirectOpencastVideoRoute","DirectSeriesRoute","DirectSeriesOCRoute","ManageVideoTechnicalDetailsRoute","EmbedVideoRoute","EmbedOpencastVideoRoute","isExternalLink","origin","About","_AboutQuery","gitCommitHash","gitWasDirty","buildDateUtc","_EmbedQuery","eventId","matchedEmbedRoute","_EmbedDirectOpencastQuery","ErrorBoundary","PlayerPlaceholder","PlayerContextProvider","Embed","embedEventFragment","_EmbedEventData","isSynced","Player","Translation","GlobalErrorBoundary","REDIRECT_STORAGE_KEY","Login","_LoginQuery","isLoggedIn","LoginBox","BackButton","userId","userFieldId","passwordFieldId","loginError","setLoginError","loginPageNote","redirectTo","noValidate","Field","isEmpty","userIdLabel","userid","passwordLabel","success","raisedStyle","_NotFoundQuery","checkPathSegment","segment","TextEncoder","encode","characterClass","isValidPathSegment","isValidRealmPath","pathSegments","showCreateUserRealmPage","ManageNav","mainNav","RealmPage","NoRealm","_RealmQuery","useTranslatedConfig","isUserRealm","UserRealmNote","WelcomeMessage","Blocks","CreateUserRealm","createUserRealmMutation","_RealmCreateForUserMutation","_ref13","_ref14","encodedPath","pathToQuery","_ref15","mergeClasses","classes","defaultAttributes","strokeLinejoin","absoluteStrokeWidth","iconNode","attrs","LetterText","createLucideIcon","iconName","prepareFilters","SearchPage","outcome","itemTypes","parseTime","timeString","toISOString","_SearchQuery","CenteredNote","SearchResults","hits","totalHits","isExperimentalFlagSet","FilterButton","DatePicker","handleChange","startDate","endDate","translationKey","handleClick","unwrapUndefined","SearchEvent","thumbnail","seriesId","isLive","endTime","textMatches","SearchSeries","thumbnails","SearchRealm","fullPath","ancestorNames","WithIcon","_ref16","iconSize","hideIconOnMobile","_ref18","_ref17","videoID","SmallDescription","PartOfSeriesLink","TextMatchTimeline","thumbnailCss","slidePreviewQuery","_SearchSlidePreviewQuery","_ref20","_ref19","ty","TextMatchTooltipWithMaybeImage","textMatch","TextMatchTooltip","CAPTION","SLIDE_TEXT","%future added value","startMs","secondsToTimeString","_ref21","segments","eventById","currBest","currBestDiff","diff","previewImage","_ref23","_ref24","_ref25","_ref22","startDuration","formatDuration","endDuration","highlightCss","highlightText","highlights","_ref26","ThumbnailStack","_ref27","gridAutoColumns","SeriesThumbnail","_ref29","_ref28","ThumbnailImg","ThumbnailReplacement","overlay","ThumbnailOverlay","ThumbnailOverlayContainer","_ref30","BreadcrumbsContainer","BreadcrumbSeparator","_ref32","_ref31","byteSlice","isCharBoundary","byteLength","at","bytes","decoder","TextDecoder","decode","spans","textParts","remainingText","highlightStart","middle","_SeriesByOpencastIdQuery","SeriesPage","seriesFrag","_SeriesByIdQuery","_SeriesRouteData","SeriesBlockFromSeries","WaitingPage","Upload","knownRolesRef","_UploadQuery","UploadMain","CancelButton","abortController","abort","files","setFiles","uploadState","setUploadState","useRefState","setMetadata","progressHistory","AbortController","FileSelect","startUpload","progress","onProgress","mediaPackage","finishUpload","onMetadataSave","hasUploadError","UploadState","MetaDataEdit","timestamp","windowStart","secondsLeft","windowLength","progressPerSecond","progressLeft","UploadErrorBox","OcNetworkError","causes","probablyOurFault","potentiallyInternetProblem","OcServerError","JwtInvalid","errorDisplayInfo","isValidForUpload","file","fileInput","dragCounter","setDragCounter","isDragging","onSelectRaw","onDragEnter","old","onDragOver","onDragLeave","onDrop","accept","BarWithText","roundedPercent","toLocaleString","minimumFractionDigits","maximumFractionDigits","prettyTime","ProgressBar","animatedStripes","angle","color0","color1","realSize","sin","PI","backgroundSize","backgroundPositionX","titleFieldId","descriptionFieldId","seriesFieldId","defaultAcl","userRole","implies","COMMON_ROLES","ANONYMOUS","requireSeries","InputContainer","TitleLabel","FieldIsRequiredNote","writableOnly","userIsRequired","ocUrl","uploadNode","ocRequest","onDone","userInfo","org","flavor","uploadTracks","totalBytes","sizeFinishedTracks","FormData","xhr","XMLHttpRequest","signal","cancelUpload","setRequestHeader","onload","responseURL","responseText","onerror","onprogress","uploadedBytes","dcc","constructDcc","constructAcl","Blob","workflow","XMLSerializer","serializeToString","Text","encodeValue","flatMap","makeRule","qrcodegen","__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","__objRest","exclude","qrcodegen2","_QrCode","errorCorrectionLevel","dataCodewords","msk","isFunction","MIN_VERSION","MAX_VERSION","RangeError","row","drawFunctionPatterns","allCodewords","addEccAndInterleave","drawCodewords","minPenalty","applyMask","drawFormatBits","penalty","getPenaltyScore","assert","mask","encodeText","ecl","segs","QrSegment","makeSegments","encodeSegments","encodeBinary","seg","makeBytes","minVersion","maxVersion","boostEcl","dataUsedBits","dataCapacityBits2","getNumDataCodewords","usedBits","getTotalBits","newEcl","Ecc","MEDIUM","QUARTILE","HIGH","appendBits","modeBits","numChars","numCharCountBits","getData","dataCapacityBits","padByte","getModule","getModules","setFunctionModule","drawFinderPattern","alignPatPos","getAlignmentPatternPositions","numAlign","drawAlignmentPattern","drawVersion","formatBits","rem","bits","getBit","dy","dx","dist","xx","yy","ver","numBlocks","NUM_ERROR_CORRECTION_BLOCKS","blockEccLen","ECC_CODEWORDS_PER_BLOCK","rawCodewords","getNumRawDataModules","numShortBlocks","shortBlockLen","rsDiv","reedSolomonComputeDivisor","dat","ecc","reedSolomonComputeRemainder","vert","invert","runColor","runX","runHistory","PENALTY_N1","finderPenaltyAddHistory","finderPenaltyCountPatterns","PENALTY_N3","finderPenaltyTerminateAndCount","runY","PENALTY_N2","sum","total","PENALTY_N4","step","degree","reedSolomonMultiply","divisor","_","factor","coef","core","currentRunColor","currentRunLength","cond","QrCode","_QrSegment","bitData","Mode","BYTE","makeNumeric","isNumeric","NUMERIC","makeAlphanumeric","isAlphanumeric","ALPHANUMERIC_CHARSET","ALPHANUMERIC","toUtf8ByteArray","makeEci","assignVal","ECI","NUMERIC_REGEX","ALPHANUMERIC_REGEX","ccbits","encodeURI","QrCode2","_Ecc","LOW","QrSegment2","_Mode","numBitsCharCount","KANJI","qrcodegen_default","ERROR_LEVEL_MAP","DEFAULT_SIZE","DEFAULT_LEVEL","DEFAULT_BGCOLOR","DEFAULT_FGCOLOR","DEFAULT_INCLUDEMARGIN","DEFAULT_MINVERSION","generatePath","ops","cell","excavateModules","excavation","useQRCode","level","includeMargin","marginSize","imageSettings","qrcode","cells","numCells","calculatedImageSettings","cells2","margin2","getMarginSize","numCells2","calculatedImageSettings2","defaultSize","excavate","floorX","floorY","crossOrigin","getImageSettings","SUPPORTS_PATH2D","Path2D","addPath","QRCodeCanvas","forwardedRef","_a","fgColor","_b","otherProps","imgSrc","_canvas","_image","setCanvasRef","isImgLoaded","setIsImageLoaded","canvas","ctx","getContext","cellsToDraw","image","haveImageToRender","naturalHeight","naturalWidth","pixelRatio","fillStyle","fillRect","rdx","cdx","globalAlpha","drawImage","canvasStyle","preserveAspectRatio","fgPath","shapeRendering","getVideoDetailsFromUrl","listId","_VideoPageInRealmQuery","isReferencedByRealm","VideoPage","eventRef","playlistRef","ForwardToDirectRoute","ocId","_VideoPageByOcIdInRealmQuery","ForwardToDirectOcRoute","regEx","urlPath","makeListId","realmPathParts","_VideoPageDirectLinkQuery","matchedDirectRoute","_VideoPageDirectOpencastLinkQuery","realmFragment","_VideoPageRealmData","eventFragment","_VideoPageEventData","rerender","useForceRerender","hasStarted","hasEnded","getEventTimeInfo","isCurrentlyLive","structuredData","thumbnailUrl","uploadDate","toIsoDuration","publication","isLiveBroadcast","InlinePlayer","onEventStateChange","Metadata","moreOfTitle","activeEventId","shrinkOnMobile","VideoTitle","VideoDate","canWrite","showDownloadButton","DownloadButton","ShareButton","overflowWrap","CollapsibleDescription","bottomPadding","MetadataTable","PopoverHeading","TrackInfo","translateFlavors","menuState","setMenuState","setTimestamp","addLinkTimestamp","setAddLinkTimestamp","addEmbedTimestamp","setAddEmbedTimestamp","qrModalRef","paella","playerIsLoaded","usePlayerContext","timeStringPattern","tabStyle","header","ShowQRCodeButton","CopyableInput","InputWithCheckbox","checkboxChecked","setCheckboxChecked","TimeInput","ar","getPlayerAspectRatio","embedCode","rssUrl","player","videoContainer","_ref33","fullOptions","dateStyle","timeStyle","createdFull","startFull","endFull","updatedFull","RelativeDate","noTooltip","createdDate","toLocaleDateString","startedDate","_ref34","pairs","dcterms","languageNames","DisplayNames","metadataLabels","metadataNs","translatedLabel","builtin:license","builtin:source","isValidLink","_ref35","trimmed","v3","v4","v5","v6","v7","v8","v9","v10","v11","v12","v13","v14","v15","v24","v16","v17","v18","v19","v20","v21","v22","v23","v26","v25","v27","v28","v29","v30","v31","v32","v33","validate","valid","too-short","control-char","illegal-chars","reserved-chars-at-beginning","Page","deleteVideoMutation","_DetailsDeleteVideoMutation","PAGE_WIDTH","UpdatedCreatedInfo","canUseEditor","callbackUrl","callbackSystem","DeleteButton","DirectLink","MetadataSection","HostRealms","deleteVideo","DateValue","BackLink","ManageVideoNav","_SharedVideoManageQuery","videoLink","OpencastId","FurtherInfo","flavors","mimetype","isSingleFlavor","trackItems","TrackItem","flavorLabel","flavorTranslation","subtype","typeTranslation","resolutionString","boolToYesNo","printDate","SingleInfo","vars","queryParamsToVars","ManageVideos","myVideos","_VideoManageQuery","LIMIT","PageNavigation","EventTable","headerSticks","setHeaderSticks","tableHeaderRef","tableHeader","IntersectionObserver","isIntersecting","threshold","rootMargin","unobserve","borderSpacing","tableLayout","clipPath","THUMBNAIL_WIDTH","ColumnHeader","sortKey","Row","directionTransKey","varsToLink","ASCENDING","DESCENDING","deletionIsPending","tobiraDeletionTimestamp","deletionDate","pollPeriod","deletionFailed","PendingDeletionBody","toLocaleTimeString","relative","relativeDate","InfoWithTooltip","startIndex","endIndex","PageLink","hasPreviousPage","FirstPage","hasNextPage","LastPage","DEFAULT_SORT_COLUMN","DEFAULT_SORT_DIRECTION","queryParams","sortBy","desc","asc","varsToQueryParams","Manage","_manageDashboardQuery","linkWithIconStyle","realms","collator","Collator","ALPHABETIC_ASC","ALPHABETIC_DESC","shouldBlock","shouldBlockImpl","useBeforeunload","loginLink","compareOption","accessors","optionLabel","builtins","formatCreateLabel","isValidNewOption","selectOptions","getNewOptionData","useCreatable","_ref$allowCreateWhile","allowCreateWhileLoading","_ref$createOptionPosi","createOptionPosition","_ref$formatCreateLabe","_ref$isValidNewOption","_ref$getNewOptionData","onCreateOption","_ref$options","propsOptions","_restSelectProps$getO","_restSelectProps$getO2","newOption","valueArray","newOptionData","newActionMeta","CreatableSelect$1","AsyncCreatableSelect$1","stateManagerProps","AclContext","useAclContext","knownGroups","insertBuiltinRoleInfo","groupAcl","userAcl","splitAcl","inheritedGroupAcl","inheritedUserAcl","groupDag","buildDag","AclSelect","_AccessKnownRolesData","setMenuIsOpen","getLabel","sensitivity","section","sectionDiff","inheritedEntries","userIsAdmin","roles","ADMIN","showAdminEntry","userIsGlobalPageAdmin","TOBIRA_GLOBAL_PAGE_ADMIN","showGlobalPageAdminEntry","showUserEntry","noEntries","commonSelectProps","usersSearchable","validUserRole","isUserRole","validRole","searchableSelectStyles","flexBasis","CreatableSelect","AsyncCreatableSelect","userSearchQuery","Table","colSpan","ListEntry","TableRow","labelCol","actionCol","UnchangeableAllActions","borderCollapse","highest","_AccessUserSearchQuery","entryContainsActions","noteworthyAccessType","supersets","supersetsOf","isSubset","isUser","immutable","prefixes","userRolePrefixes","toLocaleLowerCase","mutedLabel","permission","getActionLabel","ActionsMenu","onRemove","allLabels","currentActionOption","FloatingBaseMenu","triggerContent","triggerStyles","actionOption","ActionMenuItem","changeOption","resetModalRef","selectionIsInitial","areSetsEqual","USER_ADMIN","keyToTranslatedString","fromEntries","anonymousInfo","anonymous","USER","vertices","directSupersets","inverseVertices","subset","blockFragment","_PlaylistBlockData","playlistFragment","_PlaylistBlockPlaylistData","PlaylistBlockFromBlock","VideoListBlockContainer","showViewOptions","VideoListBlock","initialLayout","initialOrder","isPlaylist","listEntries","_SeriesBlockData","seriesFragment","_SeriesBlockSeriesData","SeriesBlockFromBlock","nameRe","nameReJsx","emptyOptions","empty","Schema","space","definitions","Info","attribute","boolean","booleanish","overloadedBoolean","commaSeparated","spaceSeparated","commaOrSpaceSeparated","defined","powers","increment","checks","types","DefinedInfo","own","attributes","xlink","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xml","xmlLang","xmlBase","xmlSpace","caseSensitiveTransform","caseInsensitiveTransform","xmlnsxlink","xmlnsXLink","aria","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabelledBy","ariaLevel","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","acceptcharset","classname","htmlfor","httpequiv","abbr","acceptCharset","accessKey","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","as","autoPlay","blocking","charSet","cite","controls","controlsList","coords","dateTime","decoding","dirName","draggable","encType","enterKeyHint","fetchPriority","formAction","formEncType","formMethod","formNoValidate","formTarget","hidden","high","hrefLang","httpEquiv","imageSizes","imageSrcSet","inert","integrity","isMap","itemId","itemProp","itemRef","itemScope","lang","low","manifest","maxLength","media","minLength","muted","noModule","onAbort","onAfterPrint","onAuxClick","onBeforeMatch","onBeforePrint","onBeforeToggle","onBeforeUnload","onCanPlay","onCanPlayThrough","onContextLost","onContextMenu","onContextRestored","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragExit","onDragStart","onDurationChange","onEmptied","onEnded","onFormData","onHashChange","onInput","onInvalid","onKeyPress","onLanguageChange","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseOut","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPlay","onPlaying","onRateChange","onRejectionHandled","onResize","onScrollEnd","onSecurityPolicyViolation","onSeeked","onSeeking","onSlotChange","onStalled","onStorage","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","optimum","ping","playsInline","popover","popoverTarget","popoverTargetAction","poster","readOnly","referrerPolicy","rel","reversed","rows","rowSpan","sandbox","scope","scoped","seamless","shadowRootClonable","shadowRootDelegatesFocus","shadowRootMode","sizes","slot","srcDoc","srcLang","srcSet","typeMustMatch","useMap","wrap","writingSuggestions","align","aLink","archive","axis","bottomMargin","cellPadding","cellSpacing","charOff","classId","codeBase","codeType","compact","declare","face","frame","frameBorder","hSpace","leftMargin","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","prompt","rev","rightMargin","scrolling","standby","summary","topMargin","valueType","vAlign","vLink","vSpace","allowTransparency","autoSave","disablePictureInPicture","disableRemotePlayback","security","unselectable","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","dominantBaseline","enableBackground","fillRule","floodColor","fontSizeAdjust","fontStretch","fontStyle","fontVariant","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","renderingIntent","stopColor","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","textAnchor","textRendering","transformOrigin","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","bbox","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","defaultAction","descent","diffuseConstant","dur","edgeMode","editable","elevation","exponent","externalResourcesRequired","filterRes","filterUnits","focusHighlight","fr","fx","fy","g1","g2","glyphRef","gradientTransform","gradientUnits","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in","in2","intercept","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","local","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","numOctaves","operator","orient","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","primitiveUnits","propagate","radius","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","resource","restart","rotate","rx","ry","seed","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","u1","u2","unicode","viewTarget","widths","x1","x2","xChannelSelector","y1","y2","yChannelSelector","zoomAndPan","htmlBase","svgBase","dash","cap","kebab","$0","camelcase","hastToReact","pointEnd","pointStart","stringifyPosition","VFileMessage","causeOrReason","optionsOrParentOrPlace","legacyCause","place","cause","ruleId","fatal","actual","expected","emptyMap","dashSomething","tableElements","tableCellElement","docs","parentSchema","schema","findComponentFromName","alignValue","createProperty","tableCellAlignToStyle","stylePropertyNameCase","createElementProps","createChildren","thing","addNode","addChildren","estree","evaluater","evaluateExpression","crashEstree","mdxExpression","objectExpression","argument","createJsxElementProps","mdxJsxElement","evaluateProgram","mdxEsm","passNode","countsByName","passKeys","Type","dashes","padRight","padLeft","commas","styleToObject","toCamel","ignoreInvalidStyle","filePath","parseStyle","domCasing","cssCasing","transformStyleToCssCasing","transformStylesToCssCasing","elementAttributeNameCase","allowExpression","identifiers","isIdentifierName","computed","optional","toDash","$1","urlAttributes","includeImageAlt","includeHtml","chunkStart","SpliceBuffer","setCursor","POSITIVE_INFINITY","deleteCount","trunc","removed","chunkedPush","pushMany","unshiftMany","subtokenize","eventsArray","jumps","lineIndex","otherIndex","otherEvent","subevents","more","_tokenizer","_isInFirstContentOfListItem","contentType","subcontent","_container","eventIndex","startPosition","startPositions","tokenizer","parser","childEvents","gaps","adjust","breaks","sliceStream","defineSkip","_gfmTasklistFirstContentOfListItem","syntaxExtension","extension","hook","constructs","asciiAlpha","regexCheck","asciiAlphanumeric","asciiAtext","asciiControl","asciiDigit","asciiHexDigit","asciiPunctuation","markdownLineEnding","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","factorySpace","enter","consume","exit","tokenize","contentStart","attempt","contentInitial","lineStart","self","childFlow","childToken","lineStartOffset","continued","containerState","continuation","documentContinue","checkNewContainers","_closeFlow","closeFlow","indexBeforeExits","indexBeforeFlow","exitContainers","documentContinued","currentConstruct","concrete","flowStart","interrupt","_gfmTableDynamicInterruptHack","containerConstruct","thereIsANewContainer","thereIsNoNewContainer","containerContinue","flow","flowContinue","writeToChild","eof","seen","nok","disable","null","blankLine","partial","chunkInside","contentEnd","continuationConstruct","contentContinue","prefixed","sliceSerialize","flowInitial","afterConstruct","resolveAll","createResolver","initializeFactory","notText","atBreak","resolveAllLineSuffixes","extraResolver","chunks","tabs","bufferIndex","chunk","_index","_bufferIndex","called","createTokenizer","initialize","columnStart","resolveAllConstructs","consumed","accountForPotentialSkip","constructFactory","addResult","onsuccessfulcheck","expandTabs","atTab","serializeChunks","chunkIndex","expectedCode","startBufferIndex","endBufferIndex","sliceChunks","onreturn","returnState","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","handleConstruct","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","resolveTo","thematicBreak","marker","sequence","initialSize","atMarker","inside","onBlank","listItemPrefixWhitespaceConstruct","endOfPrefix","otherPrefix","initialBlankLine","furtherBlankLines","notInCurrentItem","indentConstruct","blockQuote","contBefore","factoryDestination","literalType","literalMarkerType","rawType","stringType","balance","enclosedBefore","enclosed","enclosedEscape","rawEscape","factoryLabel","markerType","labelInside","labelEscape","factoryTitle","factoryWhitespace","normalizeIdentifier","labelAfter","markerAfter","destinationBefore","destinationAfter","titleBefore","afterWhitespace","beforeMarker","titleAfter","titleAfterOptionalWhitespace","codeIndented","afterPrefix","furtherStart","headingAtx","sequenceOpen","sequenceFurther","setextUnderline","paragraph","htmlBlockNames","htmlRawNames","htmlFlow","closingTag","markerB","declarationOpen","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","slash","basicSelfClosing","completeClosingTagAfter","completeAttributeNameBefore","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCdataInside","continuationStart","blankLineBefore","continuationAfter","nonLazyContinuationStart","continuationStartNonLazy","continuationBefore","continuationRawEndTag","nonLazyContinuation","codeFenced","closeStart","beforeSequenceClose","sequenceClose","sizeOpen","sequenceCloseAfter","initialPrefix","beforeSequenceOpen","infoBefore","atNonLazyBreak","metaBefore","contentBefore","beforeContentChunk","contentChunk","decodeNamedCharacterReference","characterReference","numeric","characterEscape","lineEnding","labelEnd","labelStart","_balanced","_inactive","labelEndNok","resourceConstruct","labelEndOk","referenceFullConstruct","referenceNotFull","referenceCollapsedConstruct","insideSpan","resourceBefore","resourceOpen","resourceEnd","resourceDestinationAfter","resourceDestinationMissing","resourceBetween","resourceTitleAfter","referenceFullAfter","referenceFullMissing","referenceCollapsedOpen","labelStartImage","classifyCharacter","attention","attentionMarkers","_open","_close","openingSequence","closingSequence","nextEvents","movePoint","autolink","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","htmlText","instruction","tagOpen","commentEnd","commentClose","lineEndingBefore","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","lineEndingAfter","lineEndingAfterPrefix","labelStartLink","hardBreakEscape","codeText","between","tailExitIndex","headEnterIndex","resolveText","decodeNumericCharacterReference","fromCodePoint","characterEscapeOrReference","$2","hex","fromMarkdown","encoding","transforms","canContainEols","opener","autolinkProtocol","onenterdata","autolinkEmail","atxHeading","codeFlow","codeFencedFenceInfo","codeFencedFenceMeta","codeTextData","codeFlowValue","definitionDestinationString","definitionLabelString","definitionTitleString","emphasis","hardBreak","hardBreakTrailing","htmlFlowData","htmlTextData","listItem","spread","_spread","listItemValue","expectingFirstListItemValue","listOrdered","listUnordered","referenceType","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","closer","atxHeadingSequence","depth","onexitdata","characterEscapeValue","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","characterReferenceType","resume","flowCodeInside","codeFencedFence","onexithardbreak","inReference","labelText","decodeString","atHardBreak","setextHeadingSlurpLineEnding","setextHeadingLineSequence","codePointAt","setextHeadingText","configure","mdastExtensions","tokenStack","listStack","prepareList","defaultOnError","firstBlankLineIndex","containerBalance","listSpread","tailIndex","tailEvent","and","errorHandler","onExitError","siblings","ordered","compiler","postprocess","combineExtensions","defaultConstructs","atCarriageReturn","endPosition","preprocess","combined","remarkParse","globalThis","deserialize","deserializer","$","unpair","BigInt","EMPTY","shouldSkip","TYPE","lossy","pair","structuredClone","normalizeUri","skip","defaultFootnoteBackContent","rereferenceIndex","defaultFootnoteBackLabel","referenceIndex","castFactory","tests","anyFactory","checkAsRecord","nodeAsRecord","propsFactory","testFunction","looksLikeANode","EXIT","visit","testOrVisitor","visitorOrReverse","maybeReverse","visitor","factory","parents","subresult","grandparents","toResult","nodeAsParent","visitParents","revert","contents","listItemLoose","trimLines","trimLine","blockquote","patch","applyData","break","footnoteReference","clobberPrefix","safeId","footnoteOrder","counter","reuseCounter","footnoteCounts","dataFootnoteRef","sup","allowDangerousHtml","imageReference","definitionById","inlineCode","linkReference","loose","listLoose","firstRow","tableContent","tableCell","tableRow","cellIndex","toml","ignore","yaml","footnoteDefinition","hName","hChildren","hProperties","defaultUnknownHandler","trimMarkdownSpaceStart","toHast","footnoteById","defaultHandlers","passThrough","shallow","unknownHandler","createState","foot","footnoteBackContent","footnoteBackLabel","footnoteLabel","footnoteLabelTagName","footnoteLabelProperties","listItems","backReferences","counts","dataFootnoteBackref","tailTail","dataFootnotes","remarkRehype","destination","hastTree","bail","toStringTag","minpath","extname","assertPath","seenNonSlash","firstNonSlashEnd","extnameIndex","unmatchedSlash","startPart","startDot","preDotState","joined","absolute","allowAboveRoot","lastSlashIndex","lastSegmentLength","lastSlash","dots","normalizeString","minproc","isUrl","fileUrlOrPath","protocol","VFile","isUint8Array","cwd","basename","assertNonEmpty","assertPart","dirname","stem","third","getPathFromURLPosix","urlToPath","fail","CallableInstance","proto","Processor","Compiler","Parser","attachers","freezeIndex","frozen","transformers","fns","pipeline","middlewareIndex","fnExpectsCallback","middelware","trough","attacher","assertUnfrozen","transformer","realFile","vfile","assertParser","assertCompiler","parseTree","realDone","compileTree","compileResult","processSync","assertDone","assertNode","outputTree","resultingTree","runSync","addPlugin","addList","addPreset","plugin","plugins","entryIndex","currentPrimary","isPlainObj","unified","asyncName","looksLikeAVFile","emptyPlugins","emptyRemarkRehypeOptions","safeProtocol","deprecations","Markdown","allowedElements","allowElement","disallowedElements","rehypePlugins","remarkPlugins","remarkRehypeOptions","skipHtml","unwrapDisallowed","urlTransform","defaultUrlTransform","deprecation","mdastTree","development","jsxDEV","isStaticChildren","columnNumber","fileName","lineNumber","developmentCreate","createEvaluater","toJsxRuntime","colon","questionMark","numberSign","_TextBlockData","TextBlockByQuery","ALLOWED_MARKDOWN_TAGS","CODE_BACKGROUND_COLOR","MARKDOWN_COMPONENTS","pre","ReactMarkdown","videoListEventFragment","_VideoListEventData","OrderContext","VIDEO_GRID_BREAKPOINT","eventOrder","setEventOrder","mainItems","upcomingLiveEvents","missingItems","unauthorizedItems","orderItems","renderEvents","Items","showSeries","eventsNotEmpty","UpcomingEventsGrid","HiddenItemsInfo","isUpcomingLiveEvent","isPastLiveEvent","timeMs","compareEvents","reverseTime","NEW_TO_OLD","OLD_TO_NEW","AZ","ZA","aSpecial","bSpecial","LayoutContext","layoutState","setLayoutState","darkModeBoxShadow","OrderMenu","LayoutMenu","ORIGINAL","List","SLIDER","GALLERY","LIST","handleBlur","layoutItems","sharedProps","MenuItem","orderKey","SliderView","GalleryView","ListView","justifySelf","showDescription","rightVisible","setRightVisible","leftVisible","setLeftVisible","setVisibilities","totalSliderWidth","scrollPositionLeft","scrollPositionRight","buttonCss","isPlaceholder","TRANSITION_IN_DURATION","TRANSITION_OUT_DURATION","BaseThumbnailReplacement","placeholderStyle","transitionDuration","listIdParam","_TitleBlockData","Title","_VideoBlockData","_BlocksData","PlayerGroupProvider","_BlocksRealmData","_BlocksBlockData","itemListElement","Segment","TEXT_STYLE","textAreaRef","initialHeight","resize","inputRefs","unit","handleInput","cappedValue","timeStringToSeconds","handleArrowNavigation","inputElement","wasCopied","setWasCopied","copyableInputId","sharedStyle","scrollbarWidth","clipboard","writeText","AppkitModal","AppkitConfirmationModal","AsyncSelect$1","stateManagedProps","baseStyles","_baseStyles","AsyncSelect","seriesQuery","_SearchableSelectSeriesQuery","playlistsQuery","_SearchableSelectPlaylistsQuery","makeLoader","playlists","loadSeries","loadPlaylists","formatVideoListOption","videoList","isUpcoming","currentlyLive","innerOverlay","ActiveIndicator","totalMs","totalSeconds","pad","startingTime","loadError","setLoadError","itemStyle","TRANSITION_DURATION","hoverActiveStyle","WebkitBoxOrient","Description","stripped","paragraphs","isVideo","descriptionRef","descriptionContainerRef","expanded","setExpanded","showButton","setShowButton","resizeObserver","ResizeObserver","InnerDescription","truncated","PlayerContext","setPlayerIsLoaded","PlayerGroupContext","players","unregister","usePlayerGroupContext","handles","delayTill","PlayerFallback","LoadPaellaPlayer","LiveEventPlaceholder","playerProps","controlsFit","setControlsFit","inferredWidth","default_","isHlsTrack","moment","secsAgo","secsDiff","DAY","timeAndUnit","setNow","interval","setInterval","clearInterval","prettyDate","preciseDate","kinds","notOurFault","INTERNAL_SERVER_ERROR","INVALID_INPUT","NOT_AUTHORIZED","OPENCAST_UNAVAILABLE","textColor","specialChar","noSuffix","getTranslatedString","forceRerender","milliseconds","timeSplit","formatTime","padStart","globalPageAdminRole","TOBIRA_GLOBAL_PAGE_MODERATOR","globalPageModeratorRole","__esModule","arrayLikeToArray","unsupportedIterableToArray","ownKeys","getOwnPropertyDescriptors","arrayWithoutHoles","iterableToArray","nonIterableSpread","isNativeFunction","_wrapNativeSuper","Wrapper","createCoords","oppositeSideMap","oppositeAlignmentMap","clamp","getAxisLength","getAlignmentAxis","alignment","getOppositePlacement","expandPaddingObject","computeCoordsFromPlacement","sideAxis","alignmentAxis","alignLength","isVertical","commonX","commonY","commonAlign","detectOverflow","_await$platform$isEle","rects","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","getClippingRect","getDocumentElement","getOffsetParent","offsetScale","getScale","elementClientRect","convertOffsetParentRelativeRectToViewportRelativeRect","getCssDimensions","parseFloat","hasOffset","shouldFallback","unwrapElement","domElement","isFinite","noOffsets","getVisualOffsets","offsetLeft","includeScale","isFixedStrategy","clientRect","visualOffsets","isFixed","floatingOffsetParent","shouldAddVisualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","clientLeft","clientTop","getWindowScrollBarX","leftScroll","getClientRectFromClippingAncestor","clippingAncestor","visualViewportBased","getViewportRect","getDocumentRect","getInnerBoundingClientRect","hasFixedPositionAncestor","stopNode","getRectRelativeToOffsetParent","isOffsetParentAnElement","offsets","offsetRect","htmlX","htmlY","htmlRect","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","svgOffsetParent","topLayer","clippingAncestors","currentContainingBlockComputedStyle","elementIsFixed","currentNode","computedStyle","currentNodeIsContaining","getClippingElementAncestors","_c","firstClippingAncestor","clippingRect","accRect","getElementRects","getOffsetParentFn","getDimensionsFn","getDimensions","floatingDimensions","isRTL","ancestorResize","layoutShift","animationFrame","cleanupIo","onMove","io","_io","refresh","isFirstUpdate","handleObserve","ratio","intersectionRatio","observeMove","frameId","reobserveFrame","firstEntry","_resizeObserver","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","_middlewareData$offse","_middlewareData$arrow","diffCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","crossAxis","convertValueToCoords","alignmentOffset","checkMainAxis","checkCrossAxis","limiter","detectOverflowOptions","mainAxisCoord","crossAxisCoord","maxSide","limitedCoords","_middlewareData$flip","initialPlacement","fallbackPlacements","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment","initialSideAxis","isBasePlacement","oppositePlacement","getExpandedPlacements","hasFallbackAxisSideDirection","isStart","lr","bt","getSideList","getOppositeAxisPlacements","placements","overflows","overflowsData","sides","mainAlignmentSide","_middlewareData$flip2","_overflowsData$filter","nextPlacement","resetPlacement","_overflowsData$filter2","currentSideAxis","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","shouldAddOffset","centerOffset","platformWithCache","validMiddleware","statefulPlacement","resetCount","nextX","nextY","computePosition","hasWindow","getNodeName","isNode","Node","isShadowRoot","isOverflowElement","isTableElement","isTopLayer","isContainingBlock","elementOrCss","webkit","isWebKit","perspective","containerType","backdropFilter","contain","getContainingBlock","getParentNode","isLastTraversableNode","supports","getNodeScroll","scrollX","getNearestOverflowAncestor","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","frameElement","getFrameElement","_arrayLikeToArray","objectWithoutPropertiesLoose","_objectWithoutPropertiesLoose","arrayWithHoles","iterableToArrayLimit","nonIterableRest","_unsupportedIterableToArray","voidElement","isString","alreadyWarned","warnOnce","loadedClb","initialized","isObject","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","useSuspense","unescape","getDefaults","i18nInstance","getI18n","hasChildren","checkLength","i18nIsDynamicList","getAsArray","nodesToString","stringNode","childrenArray","keepArray","childIndex","childPropsCount","shouldKeepChild","childChildren","renderNodes","targetString","combinedTOpts","shouldUnescape","emptyChildrenButNeedsHandling","keep","childs","ast","HTML","renderInner","rootReactNode","mappedChildren","mapAST","hasValidReactChildren","pushTranslatedJSX","isVoid","dummy","reactNode","astNode","reactNodes","translationContent","tmp","newTarget","isValidTranslationWithChildren","isEmptyTransWithHTML","isKnownComponent","wrapTextNodes","setDefaults","setI18n","I18nContext","ReportNamespaces","usedNamespaces","addUsedNamespaces","getUsedNamespaces","tOptions","i18nFromProps","tFromProps","additionalProps","i18nFromContext","defaultNSFromContext","reactI18nextOptions","nodeAsString","hashTransKey","interpolationOverride","comp","useAsParent","defaultTransParent","TransWithoutContext","alwaysNewT","reportNamespaces","notReadyT","optsOrDefaultValue","retNotReady","ready","memoGetT","useMemoizedT","nsMode","getT","getNewT","setT","joinedNS","previousJoinedNS","usePrevious","boundReset","isCheckBoxInput","isDateObject","isNullOrUndefined","isObjectType","getEventValue","isNameInFieldArray","names","getNodeParentName","tempObject","prototypeCopy","isWeb","cloneObject","FileList","isUndefined","isBoolean","isKey","stringToPath","tempPath","objValue","EVENTS","BLUR","FOCUS_OUT","CHANGE","VALIDATION_MODE","onTouched","INPUT_VALIDATION_RULES","HookFormContext","getProxyFormState","localProxyFormState","isRoot","_defaultValues","_proxyFormState","shouldRenderFormState","formStateData","updateFormState","convertToArrayPayload","shouldSubscribeByName","signalName","currentName","useSubscribe","generateWatchOutput","_names","formValues","isGlobal","watchAll","methods","shouldUnregister","isArrayField","_name","_subjects","updateValue","_formValues","_getWatch","_removeUnmounted","useWatch","_formState","_mounted","_localProxyFormState","dirtyFields","touchedFields","validatingFields","isValidating","isValid","_updateFormState","_updateValid","useFormState","_registerProps","_shouldUnregisterField","_options","updateMounted","_fields","_f","mount","_updateDisabledField","elm","setCustomValidity","reportValidity","fieldState","isTouched","appendErrors","validateAllFieldCriteria","getValidationModes","isOnSubmit","isOnBlur","isOnChange","isOnAll","isOnTouch","isWatched","isBlurEvent","watchName","iterateFieldsByAction","fieldsNames","abortEarly","currentField","updateFieldArrayRootError","fieldArrayErrors","isFileInput","isMessage","isRadioInput","isRegex","defaultResult","validResult","getCheckboxValue","defaultReturn","getRadioValue","getValidateError","getValueAndMessage","validationData","validateField","shouldUseNativeValidation","isFieldArray","valueAsNumber","isCheckBox","isRadioOrCheckbox","appendErrorsCurry","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","exceedMin","maxOutput","minOutput","valueDate","valueAsDate","convertTimeToDate","toDateString","isTime","isWeek","valueNumber","maxLengthOutput","minLengthOutput","patternValue","validateError","validationResult","unset","paths","childObject","updatePath","baseGet","isEmptyArray","createSubject","_observers","isPrimitive","object1","object2","keys1","keys2","val1","val2","isMultipleSelect","isConnected","objectHasFunction","markFieldsDirty","isParentNodeArray","getDirtyFieldsFromDefaultValues","dirtyFieldsFromValues","getDirtyFields","getFieldValueAs","setValueAs","NaN","getFieldValue","getResolverOptions","criteriaMode","getRuleValue","ASYNC_FUNCTION","hasPromiseValidation","fieldReference","validateFunction","hasValidation","schemaErrorLookup","foundError","skipValidation","isSubmitted","reValidateMode","unsetEmptyArray","shouldFocusError","createFormControl","delayErrorCallback","submitCount","isSubmitting","isSubmitSuccessful","unMount","validationModeBeforeSubmit","validationModeAfterSubmit","shouldDisplayAllAssociatedErrors","shouldUpdateValid","_executeSchema","executeBuiltInValidation","_updateIsValidating","updateValidAndValue","shouldSkipSetValueAs","setFieldValue","updateTouchAndDirty","shouldDirty","shouldRender","shouldUpdateField","isPreviousDirty","disabledField","_getDirty","isCurrentFieldPristine","isPreviousFieldTouched","shouldOnlyCheckValid","isFieldArrayRoot","isPromiseFunction","getValues","optionRef","checkboxRef","radioRef","shouldTouch","shouldValidate","setValues","cloneValue","isFieldValueUpdated","_updateIsFieldValueUpdated","shouldSkipValidation","watched","previousErrorLookupResult","errorLookupResult","previousFieldError","delayError","updateErrors","updatedFormState","shouldRenderByError","_focusInput","fieldNames","executeSchemaAndUpdateState","shouldFocus","getFieldState","currentError","restOfErrorTree","keepValue","keepError","keepDirty","keepTouched","keepIsValidating","keepDefaultValue","keepIsValid","disabledIsDefined","progressive","fieldRef","radioOrCheckbox","_focusError","onValid","onValidError","fieldValues","_reset","keepStateOptions","updatedValues","cloneUpdatedValues","isEmptyResetValues","keepDefaultValues","keepValues","keepDirtyValues","closest","keepSubmitCount","keepIsSubmitted","keepErrors","keepIsSubmitSuccessful","_updateFieldArray","shouldSetValues","shouldUpdateFieldsAndState","argA","argB","_getFieldArray","_resetDefaultValues","resetOptions","_disableForm","_setErrors","resetField","clearErrors","inputName","setFocus","shouldSelect","_formControl","_values","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","chunkId","script","needAttach","scripts","getElementsByTagName","charset","nc","onScriptComplete","doneFns","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","GraphQLErrorBoundaryImpl","unlisten","isStringArray","GraphQLErrorBoundary","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","initialStatus","appear","isMounting","appearStatus","unmountOnExit","mountOnEnter","nextCallback","updateStatus","nextStatus","cancelNextCallback","getTimeouts","mounting","nodeRef","forceReflow","performEnter","performExit","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","onEnter","safeSetState","onEntering","onTransitionEnd","onEntered","onExit","onExiting","onExited","setNextCallback","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","childProps","TransitionGroupContext","entering","entered","exiting","exited","unmounted","InitialConsent","consentGiven","initialConsentGiven","initialConsent","currentLanguage","usedLang","calcHash","conditions","hashBuffer","crypto","subtle","Uint8Array","App","SilenceEmotionWarnings","APPKIT_CONFIG","createEmotionCache","tobiraStyleNonce","newUri","storedLang","storedHash","checkInitialConsent"],"sourceRoot":""}